Add required labels to kubernetes resources
Explain why selectorlabels are commented out
We tried to add them after the fact, but those are immutable, we'd require downtime if we need to apply them.
Maybe we'll still need to do that, but it does not need to be part of this change. See the docs for more info: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#label-selector-updates
Add a helper to runder dictionaries in yaml
This is stolen from the main gitlab-com repo, it will make it easier to sepcify labels as values.
Apply a type label to all services
This is mostly type: code_suggestions
for the Triton & Model Gateway
workloads.
Separating these into the values allows us to add anything we want to a specific workload.
All the service monitors get type: monitoring
, this is not specified
in values.
For: https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/23724
diff between rendering on main
diff --git a/home/bvl/tmp/helm-ai-assist-test-main.yaml b/home/bvl/tmp/helm-ai-assist-test.yaml
index 5eb93e5..f730926 100644
--- a/home/bvl/tmp/helm-ai-assist-test-main.yaml
+++ b/home/bvl/tmp/helm-ai-assist-test.yaml
@@ -11,10 +11,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: Immediate # Filestore is cross-AZ, no need to wait for binding
allowVolumeExpansion: true
@@ -32,10 +32,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
accessModes:
- ReadWriteMany
@@ -55,10 +55,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
type: ClusterIP
ports:
@@ -82,10 +82,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
type: ClusterIP
selector:
@@ -111,10 +111,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
clusterIP: None
ports:
@@ -135,10 +135,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
replicas: 12
selector:
@@ -150,6 +150,14 @@ spec:
labels:
app: model-gateway
+ helm.sh/chart: ai-assist-0.1.0
+
+ app.kubernetes.io/version: "0.1.0"
+ app.kubernetes.io/managed-by: Helm
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
imagePullSecrets:
- name: gitlab-registry
@@ -169,7 +177,7 @@ spec:
- name: FASTAPI_API_PORT
value: "5052"
# Enable the Google Cloud Profiler
- # See https://console.cloud.google.com/profiler?referrer=search&project=unreview-poc-390200e5
+ # See https://console.cloud.google.com/profiler?referrer=search&project=unreview-poc-390200e5
# for profile output
- name: GOOGLE_CLOUD_PROFILER
value: "1"
@@ -193,10 +201,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
replicas: 12
strategy:
@@ -213,6 +221,14 @@ spec:
labels:
app: model-triton
+ helm.sh/chart: ai-assist-0.1.0
+
+ app.kubernetes.io/version: "0.1.0"
+ app.kubernetes.io/managed-by: Helm
+ shard: default
+ stage: main
+ tier: sv
+ type: code_suggestions
spec:
imagePullSecrets:
- name: gitlab-registry
@@ -231,7 +247,7 @@ spec:
command: ["/bin/bash", "-x", "-c", "--"]
# Metrics options are documented here:
# https://github.com/triton-inference-server/server/blob/main/docs/user_guide/metrics.md
- # TODO: add --allow-cpu-metrics true
+ # TODO: add --allow-cpu-metrics true
# TODO: add --metrics-config summary_latencies=true
args:
- |
@@ -249,7 +265,7 @@ spec:
limits:
nvidia.com/gpu: "1"
readinessProbe:
- httpGet:
+ httpGet:
path: /v2/health/ready
port: 8000
periodSeconds: 10
@@ -276,10 +292,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: monitoring
spec:
endpoints:
- interval: 30s
@@ -299,10 +315,10 @@ metadata:
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
- shard: "default"
- stage: "main"
- tier: "sv"
- type: "ai-assist"
+ shard: default
+ stage: main
+ tier: sv
+ type: monitoring
spec:
endpoints:
- interval: 30s
before | after |
---|---|
before.yaml | after.yaml |