From f7a1a8f73955fa2ac84384288a6df7bd66aece0b Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 20 May 2026 12:06:05 -0700 Subject: [PATCH 01/18] add cpuRequests, set maxSurge to 1, and add pod anti-affinity --- .../mixer/templates/deployment.yaml | 22 +++++++++++++++++-- deploy/helm_charts/mixer/values.yaml | 6 +++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index 009490b2f..052fc49c9 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -38,8 +38,8 @@ spec: type: RollingUpdate rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods - # 25% of default pods (+1 in case default < 4) - maxSurge: {{ $group.maxSurge | default (div $group.replicas 4 | add 1) }} + # Set to 1 to reduce resource overhead during deployment + maxSurge: 1 # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} @@ -60,6 +60,24 @@ spec: nodeSelector: cloud.google.com/gke-nodepool: {{ $group.nodePool }} {{- end }} + {{- if $group.enableAntiAffinity }} + # Soft pod anti-affinity at the node level. + # Encourages the scheduler to place each replica of this service on a distinct node. + # This is a soft rule, so if there are not enough nodes, the scheduler will schedule pods + # on the same node rather than letting them get stuck in a Pending state. + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: service + operator: In + values: + - {{ include "mixer.fullname" $ }}-{{ $serviceName }} + topologyKey: "kubernetes.io/hostname" + {{- end}} serviceAccountName: {{ $.Values.serviceAccount.name }} volumes: - name: schema-mapping diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 765eb7de7..7dd36cedc 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -436,6 +436,7 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" + cpuRequest: "100m" cacheSVG: true # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. @@ -448,6 +449,7 @@ serviceGroups: resources: memoryRequest: "2G" memoryLimit: "2G" + cpuRequest: "100m" observation: urlPaths: - "/bulk/stats" @@ -459,6 +461,8 @@ serviceGroups: resources: memoryRequest: "4G" memoryLimit: "8G" + cpuRequest: "1" + enableAntiAffinity: true node: urlPaths: - "/node/*" @@ -473,6 +477,7 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" + cpuRequest: "500m" cacheSVG: true default: urlPaths: @@ -481,3 +486,4 @@ serviceGroups: resources: memoryRequest: "2G" memoryLimit: "2G" + cpuRequest: "100m" From 010915d62466eea11d8f1fc7d51b439c06460710 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 20 May 2026 16:36:00 -0700 Subject: [PATCH 02/18] add cpu limits --- deploy/helm_charts/mixer/values.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 7dd36cedc..d6aab52f4 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -437,6 +437,7 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "100m" + cpuLimit: "500m" cacheSVG: true # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. @@ -450,6 +451,7 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "100m" + cpuLimit: "500m" observation: urlPaths: - "/bulk/stats" @@ -459,10 +461,10 @@ serviceGroups: - "/v2/observation" replicas: 1 resources: - memoryRequest: "4G" + memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "1" - enableAntiAffinity: true + cpuLimit: "1.5" node: urlPaths: - "/node/*" @@ -478,6 +480,7 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "500m" + cpuLimit: "1.5" cacheSVG: true default: urlPaths: @@ -487,3 +490,4 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "100m" + cpuLimit: "500m" From f6e419a4ca2e7b42b45739d4584000be70b446d1 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 20 May 2026 16:36:36 -0700 Subject: [PATCH 03/18] implement max surge suggestion and remove affinity --- .../mixer/templates/deployment.yaml | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index 052fc49c9..a570b26a6 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -38,8 +38,8 @@ spec: type: RollingUpdate rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods - # Set to 1 to reduce resource overhead during deployment - maxSurge: 1 + # Defaults to 1 to reduce resource overhead during deployment + maxSurge: {{ $group.maxSurge | default 1 }} # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} @@ -60,24 +60,6 @@ spec: nodeSelector: cloud.google.com/gke-nodepool: {{ $group.nodePool }} {{- end }} - {{- if $group.enableAntiAffinity }} - # Soft pod anti-affinity at the node level. - # Encourages the scheduler to place each replica of this service on a distinct node. - # This is a soft rule, so if there are not enough nodes, the scheduler will schedule pods - # on the same node rather than letting them get stuck in a Pending state. - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: service - operator: In - values: - - {{ include "mixer.fullname" $ }}-{{ $serviceName }} - topologyKey: "kubernetes.io/hostname" - {{- end}} serviceAccountName: {{ $.Values.serviceAccount.name }} volumes: - name: schema-mapping From 04ef31c1c71ece543e6acff09482212ed585fd56 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Thu, 21 May 2026 09:52:53 -0700 Subject: [PATCH 04/18] add cpuLimit if statement --- deploy/helm_charts/mixer/templates/deployment.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index a570b26a6..b726a1dc0 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -137,6 +137,9 @@ spec: resources: limits: memory: {{ $group.resources.memoryLimit }} + {{- if $group.resources.cpuLimit }} + cpu: {{ $group.resources.cpuLimit }} + {{- end }} requests: memory: {{ $group.resources.memoryRequest }} {{- if $group.resources.cpuRequest }} From 4cc78faf9705b72cbd473716fa337b2feb41f51c Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Thu, 21 May 2026 16:28:58 -0700 Subject: [PATCH 05/18] Make esp configurable and bump observation esp memory up to 500M --- .../helm_charts/mixer/templates/deployment.yaml | 15 +++++++++++++-- deploy/helm_charts/mixer/values.yaml | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index b726a1dc0..bb7ef60b6 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -354,11 +354,22 @@ spec: - name: esp image: "{{ $.Values.esp.image.repository }}{{- if $.Values.esp.image.tag -}}:{{ $.Values.esp.image.tag }}{{- end }}" imagePullPolicy: {{ $.Values.esp.image.pullPolicy }} + {{- $espResources := $group.espResources | default dict }} + {{- $espGlobalResources := dict }} + {{- if $.Values.esp }} + {{- $espGlobalResources = $.Values.esp.resources | default dict }} + {{- end }} resources: limits: - memory: "300M" + memory: {{ $espResources.memoryLimit | default $espGlobalResources.memoryLimit | default "300M" | quote }} + {{- if or $espResources.cpuLimit $espGlobalResources.cpuLimit }} + cpu: {{ $espResources.cpuLimit | default $espGlobalResources.cpuLimit | quote }} + {{- end }} requests: - memory: "300M" + memory: {{ $espResources.memoryRequest | default $espGlobalResources.memoryRequest | default "300M" | quote }} + {{- if or $espResources.cpuRequest $espGlobalResources.cpuRequest }} + cpu: {{ $espResources.cpuRequest | default $espGlobalResources.cpuRequest | quote }} + {{- end }} volumeMounts: - mountPath: /etc/espv2_config name: service-config-volume diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index d6aab52f4..09b912ad7 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -366,6 +366,9 @@ esp: repository: gcr.io/endpoints-release/endpoints-runtime pullPolicy: IfNotPresent tag: "2" + resources: + memoryRequest: "300M" + memoryLimit: "300M" embeddingsSidecar: image: @@ -465,6 +468,9 @@ serviceGroups: memoryLimit: "8G" cpuRequest: "1" cpuLimit: "1.5" + espResources: + memoryRequest: "500M" + memoryLimit: "500M" node: urlPaths: - "/node/*" From ddd40473873bd6e30fcab016d8aecad557ab72d8 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Thu, 21 May 2026 16:45:09 -0700 Subject: [PATCH 06/18] Right-size only cpu limits and requests --- deploy/helm_charts/mixer/values.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 09b912ad7..4bc070f9f 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -439,8 +439,8 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" - cpuRequest: "100m" - cpuLimit: "500m" + cpuRequest: "125m" + cpuLimit: "250m" cacheSVG: true # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. @@ -453,8 +453,8 @@ serviceGroups: resources: memoryRequest: "2G" memoryLimit: "2G" - cpuRequest: "100m" - cpuLimit: "500m" + cpuRequest: "50m" + cpuLimit: "100m" observation: urlPaths: - "/bulk/stats" @@ -466,7 +466,7 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" - cpuRequest: "1" + cpuRequest: "125m" cpuLimit: "1.5" espResources: memoryRequest: "500M" @@ -485,8 +485,8 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" - cpuRequest: "500m" - cpuLimit: "1.5" + cpuRequest: "250m" + cpuLimit: "500" cacheSVG: true default: urlPaths: @@ -495,5 +495,5 @@ serviceGroups: resources: memoryRequest: "2G" memoryLimit: "2G" - cpuRequest: "100m" - cpuLimit: "500m" + cpuRequest: "50m" + cpuLimit: "100m" From e567cb12e1275274d214a9a038dd3333d8413636 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Thu, 21 May 2026 17:12:49 -0700 Subject: [PATCH 07/18] update cpu request and limits --- deploy/helm_charts/mixer/values.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 4bc070f9f..1edfb019d 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -453,8 +453,8 @@ serviceGroups: resources: memoryRequest: "2G" memoryLimit: "2G" - cpuRequest: "50m" - cpuLimit: "100m" + cpuRequest: "300m" + cpuLimit: "300m" observation: urlPaths: - "/bulk/stats" @@ -466,8 +466,8 @@ serviceGroups: resources: memoryRequest: "8G" memoryLimit: "8G" - cpuRequest: "125m" - cpuLimit: "1.5" + cpuRequest: "300m" + cpuLimit: "3" espResources: memoryRequest: "500M" memoryLimit: "500M" @@ -486,7 +486,7 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "250m" - cpuLimit: "500" + cpuLimit: "1" cacheSVG: true default: urlPaths: From 7ea1f1fd7e896746ee7be1c38197eafe8ac4c21f Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Thu, 21 May 2026 17:35:13 -0700 Subject: [PATCH 08/18] up esp memory limit --- deploy/helm_charts/mixer/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 1edfb019d..8c4dbf881 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -469,8 +469,8 @@ serviceGroups: cpuRequest: "300m" cpuLimit: "3" espResources: - memoryRequest: "500M" - memoryLimit: "500M" + memoryRequest: "512Mi" + memoryLimit: "2Gi" node: urlPaths: - "/node/*" From c49e5db5668d04b67f7393e7221f27f7e823ea2e Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Tue, 26 May 2026 12:08:23 -0700 Subject: [PATCH 09/18] match maxSurge to maxUnavailable and add startupProbe to esp --- .../helm_charts/mixer/templates/deployment.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index bb7ef60b6..1368070d3 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -38,8 +38,8 @@ spec: type: RollingUpdate rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods - # Defaults to 1 to reduce resource overhead during deployment - maxSurge: {{ $group.maxSurge | default 1 }} + # 25% of default pods (+1 in case default < 4) + maxSurge: {{ div $group.replicas 4 | add 1 }} # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} @@ -279,13 +279,11 @@ spec: exec: command: ["/bin/grpc_health_probe", "-addr=:12345"] periodSeconds: 10 - initialDelaySeconds: 60 timeoutSeconds: 10 livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:12345"] periodSeconds: 10 - initialDelaySeconds: 60 timeoutSeconds: 10 {{- if $group.enableEmbeddingsSidecar }} - name: embeddings @@ -386,18 +384,24 @@ spec: configMapKeyRef: name: {{ include "mixer.fullname" $ }}-mixer-config key: serviceName + startupProbe: + httpGet: + path: /healthz + port: 8081 + failureThreshold: 30 + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 10 readinessProbe: httpGet: path: /healthz port: 8081 - initialDelaySeconds: 60 periodSeconds: 5 livenessProbe: httpGet: path: /healthz port: 8081 periodSeconds: 5 - initialDelaySeconds: 5 ports: - containerPort: 8081 {{- $index = add $index 1 }} From babac98c9d1d308cb5776c72ff4bd446a177d0cf Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Tue, 26 May 2026 12:08:34 -0700 Subject: [PATCH 10/18] remove cpuLimits except for observation --- deploy/helm_charts/mixer/values.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 8c4dbf881..1bb4887d8 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -440,7 +440,6 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "125m" - cpuLimit: "250m" cacheSVG: true # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. @@ -454,7 +453,6 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "300m" - cpuLimit: "300m" observation: urlPaths: - "/bulk/stats" @@ -467,7 +465,7 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "300m" - cpuLimit: "3" + cpuLimit: "3" # Prevent CPU spikes from choking out the node. espResources: memoryRequest: "512Mi" memoryLimit: "2Gi" @@ -486,7 +484,6 @@ serviceGroups: memoryRequest: "8G" memoryLimit: "8G" cpuRequest: "250m" - cpuLimit: "1" cacheSVG: true default: urlPaths: @@ -496,4 +493,3 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "50m" - cpuLimit: "100m" From 2a45792d37474986d129bb3e7d453e68e366fe32 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Tue, 26 May 2026 15:56:01 -0700 Subject: [PATCH 11/18] bump memory on mixer container in observation pods too, use scaler recommended values --- deploy/helm_charts/mixer/values.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 1bb4887d8..f7a3683f3 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -462,11 +462,12 @@ serviceGroups: - "/v2/observation" replicas: 1 resources: - memoryRequest: "8G" - memoryLimit: "8G" + memoryRequest: "10Gi" + memoryLimit: "20Gi" cpuRequest: "300m" cpuLimit: "3" # Prevent CPU spikes from choking out the node. espResources: + # Higher memory to accomodate larger payloads memoryRequest: "512Mi" memoryLimit: "2Gi" node: From c8653afdeac22078e2004a51074e44110fb62f39 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Tue, 26 May 2026 17:08:13 -0700 Subject: [PATCH 12/18] Bump up node resources to match observation pods --- deploy/helm_charts/mixer/values.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index f7a3683f3..8a56c54aa 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -367,8 +367,8 @@ esp: pullPolicy: IfNotPresent tag: "2" resources: - memoryRequest: "300M" - memoryLimit: "300M" + memoryRequest: "300Mi" + memoryLimit: "300Mi" embeddingsSidecar: image: @@ -482,9 +482,9 @@ serviceGroups: - "/v2/node" replicas: 1 resources: - memoryRequest: "8G" - memoryLimit: "8G" - cpuRequest: "250m" + memoryRequest: "10Gi" + memoryLimit: "20Gi" + cpuRequest: "300m" cacheSVG: true default: urlPaths: From 498c7f915c0f29d4b1cbf545b47b845c120f1ede Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 08:58:28 -0700 Subject: [PATCH 13/18] undo maxSurge changes --- deploy/helm_charts/mixer/templates/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index 1368070d3..2bc3543c3 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -39,7 +39,7 @@ spec: rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods # 25% of default pods (+1 in case default < 4) - maxSurge: {{ div $group.replicas 4 | add 1 }} + maxSurge: {{ $group.maxSurge | default (div $group.replicas 4 | add 1) }} # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} From c96be8a6a4885d57587248feebb994d98d07f89e Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 11:21:35 -0700 Subject: [PATCH 14/18] Add gomemlimit, adjust cpuRequests, remove esp startupProbe --- .../mixer/templates/deployment.yaml | 24 ++++++++++--------- deploy/helm_charts/mixer/values.yaml | 8 +++++-- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index 2bc3543c3..f1c1d02ae 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -39,7 +39,7 @@ spec: rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods # 25% of default pods (+1 in case default < 4) - maxSurge: {{ $group.maxSurge | default (div $group.replicas 4 | add 1) }} + maxSurge: {{ div $group.replicas 4 | add 1 }} # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} @@ -266,13 +266,17 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317 {{- end }} + {{- if $group.goMemLimit }} + - name: GOMEMLIMIT + value: {{ $group.goMemLimit | quote }} + {{- end }} ports: - containerPort: 12345 startupProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:12345", "-connect-timeout=10s"] failureThreshold: 30 - initialDelaySeconds: 60 + initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 10 readinessProbe: @@ -384,24 +388,22 @@ spec: configMapKeyRef: name: {{ include "mixer.fullname" $ }}-mixer-config key: serviceName - startupProbe: - httpGet: - path: /healthz - port: 8081 - failureThreshold: 30 - initialDelaySeconds: 5 - periodSeconds: 10 - timeoutSeconds: 10 readinessProbe: httpGet: path: /healthz port: 8081 + initialDelaySeconds: 3 # Give ESP a 3 second window to bind to port 8081 periodSeconds: 5 + failureThreshold: 3 # If fails 3x in a row (15s) cut off user traffic + timeoutSeconds: 5 livenessProbe: httpGet: path: /healthz port: 8081 - periodSeconds: 5 + initialDelaySeconds: 5 # Liveness doesn't need to be checked as quickly as readiness + failureThreshold: 3 # If fails 3x in a row (45s) restart the container + periodSeconds: 15 # Check less frequently to conserve CPU + timeoutSeconds: 5 ports: - containerPort: 8081 {{- $index = add $index 1 }} diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 8a56c54aa..23a327148 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -441,6 +441,7 @@ serviceGroups: memoryLimit: "8G" cpuRequest: "125m" cacheSVG: true + goMemLimit: "6G" # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. recon: @@ -453,6 +454,7 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "300m" + goMemLimit: "1.5G" observation: urlPaths: - "/bulk/stats" @@ -464,8 +466,8 @@ serviceGroups: resources: memoryRequest: "10Gi" memoryLimit: "20Gi" - cpuRequest: "300m" - cpuLimit: "3" # Prevent CPU spikes from choking out the node. + cpuRequest: "1" + goMemLimit: "18Gi" espResources: # Higher memory to accomodate larger payloads memoryRequest: "512Mi" @@ -485,6 +487,7 @@ serviceGroups: memoryRequest: "10Gi" memoryLimit: "20Gi" cpuRequest: "300m" + goMemLimit: "18Gi" cacheSVG: true default: urlPaths: @@ -494,3 +497,4 @@ serviceGroups: memoryRequest: "2G" memoryLimit: "2G" cpuRequest: "50m" + goMemLimit: "1.5G" From d1449ac03ef87dcb2cd07a01e2bd1011235289a0 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 12:38:31 -0700 Subject: [PATCH 15/18] Switch to binary instead of decimal suffixes for memory values --- deploy/helm_charts/mixer/values.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 23a327148..ee693db55 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -437,11 +437,11 @@ serviceGroups: - "/v2/bulk/info/variable-group" replicas: 1 resources: - memoryRequest: "8G" - memoryLimit: "8G" + memoryRequest: "8Gi" + memoryLimit: "8Gi" cpuRequest: "125m" cacheSVG: true - goMemLimit: "6G" + goMemLimit: "6GiB" # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. recon: @@ -451,10 +451,10 @@ serviceGroups: - "/v2/resolve" replicas: 1 resources: - memoryRequest: "2G" - memoryLimit: "2G" + memoryRequest: "2Gi" + memoryLimit: "2Gi" cpuRequest: "300m" - goMemLimit: "1.5G" + goMemLimit: "1536MiB" observation: urlPaths: - "/bulk/stats" @@ -467,7 +467,7 @@ serviceGroups: memoryRequest: "10Gi" memoryLimit: "20Gi" cpuRequest: "1" - goMemLimit: "18Gi" + goMemLimit: "18GiB" espResources: # Higher memory to accomodate larger payloads memoryRequest: "512Mi" @@ -487,14 +487,14 @@ serviceGroups: memoryRequest: "10Gi" memoryLimit: "20Gi" cpuRequest: "300m" - goMemLimit: "18Gi" + goMemLimit: "18GiB" cacheSVG: true default: urlPaths: - "/*" replicas: 1 resources: - memoryRequest: "2G" - memoryLimit: "2G" + memoryRequest: "2Gi" + memoryLimit: "2Gi" cpuRequest: "50m" - goMemLimit: "1.5G" + goMemLimit: "1536MiB" From 1ab44358378885e2f43e22cdd82f7e11dd56bb1f Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 14:19:30 -0700 Subject: [PATCH 16/18] rightsize per env --- deploy/helm_charts/envs/mixer_autopush.yaml | 9 +- deploy/helm_charts/envs/mixer_prod.yaml | 69 ++- deploy/helm_charts/envs/mixer_staging.yaml | 65 ++- deploy/helm_charts/mixer/values.yaml | 484 ++------------------ 4 files changed, 185 insertions(+), 442 deletions(-) diff --git a/deploy/helm_charts/envs/mixer_autopush.yaml b/deploy/helm_charts/envs/mixer_autopush.yaml index 82945e477..d983deab9 100644 --- a/deploy/helm_charts/envs/mixer_autopush.yaml +++ b/deploy/helm_charts/envs/mixer_autopush.yaml @@ -44,10 +44,15 @@ serviceGroups: observation: replicas: 20 resources: - memoryRequest: "6G" - memoryLimit: "8G" + memoryRequest: "6Gi" + memoryLimit: "8Gi" + goMemLimit: "6GiB" node: replicas: 20 + resources: + memoryRequest: "6Gi" + memoryLimit: "8Gi" + goMemLimit: "6GiB" default: replicas: 10 diff --git a/deploy/helm_charts/envs/mixer_prod.yaml b/deploy/helm_charts/envs/mixer_prod.yaml index ea5e36715..cb370c270 100644 --- a/deploy/helm_charts/envs/mixer_prod.yaml +++ b/deploy/helm_charts/envs/mixer_prod.yaml @@ -26,15 +26,76 @@ ingress: serviceGroups: svg: + urlPaths: + - "/place/stat-var-group/*" + - "/stat-var/*" + - "/v1/info/variable-group/*" + - "/v1/variable/*" + - "/v1/bulk/info/variable-group" + - "/v2/bulk/info/variable-group" replicas: 10 + resources: + memoryRequest: "8Gi" + memoryLimit: "8Gi" + cpuRequest: "125m" + cacheSVG: true + goMemLimit: "6GiB" + # If the name of the recon service is changed here, + # please also change the name in the deployment.yaml template. recon: - replicas: 90 - node: + enableEmbeddingsSidecar: true + urlPaths: + - "/v1/recon/*" + - "/v2/resolve" replicas: 60 + resources: + memoryRequest: "2Gi" + memoryLimit: "2Gi" + cpuRequest: "300m" + goMemLimit: "1536MiB" observation: - replicas: 60 + urlPaths: + - "/bulk/stats" + - "/stat/*" + - "/v1/observations/*" + - "/v1/bulk/observations/*" + - "/v2/observation" + replicas: 40 + resources: + memoryRequest: "10Gi" + memoryLimit: "10Gi" + cpuRequest: "1" + goMemLimit: "8GiB" + espResources: + # Higher memory to accomodate larger payloads + memoryRequest: "512Mi" + memoryLimit: "2Gi" + node: + urlPaths: + - "/node/*" + - "/v1/triples/*" + - "/v1/properties/*" + - "/v1/property/values/*" + - "/v1/bulk/property/values/*" + - "/v1/bulk/triples/*" + - "/v1/bulk/properties/*" + - "/v2/node" + replicas: 40 + resources: + memoryRequest: "10Gi" + memoryLimit: "10Gi" + cpuRequest: "300m" + goMemLimit: "8GiB" + cacheSVG: true default: - replicas: 30 + urlPaths: + - "/*" + replicas: 20 + resources: + memoryRequest: "2Gi" + memoryLimit: "2Gi" + cpuRequest: "50m" + goMemLimit: "1536MiB" # GCP level config ip: 35.244.133.155 diff --git a/deploy/helm_charts/envs/mixer_staging.yaml b/deploy/helm_charts/envs/mixer_staging.yaml index 2a61ad5da..f1a18f480 100644 --- a/deploy/helm_charts/envs/mixer_staging.yaml +++ b/deploy/helm_charts/envs/mixer_staging.yaml @@ -28,16 +28,77 @@ ingress: serviceGroups: svg: + urlPaths: + - "/place/stat-var-group/*" + - "/stat-var/*" + - "/v1/info/variable-group/*" + - "/v1/variable/*" + - "/v1/bulk/info/variable-group" + - "/v2/bulk/info/variable-group" replicas: 2 maxSurge: 0 + resources: + memoryRequest: "8Gi" + memoryLimit: "8Gi" + cpuRequest: "125m" + cacheSVG: true + goMemLimit: "6GiB" + # If the name of the recon service is changed here, + # please also change the name in the deployment.yaml template. recon: + enableEmbeddingsSidecar: true + urlPaths: + - "/v1/recon/*" + - "/v2/resolve" replicas: 4 - node: - replicas: 20 + resources: + memoryRequest: "2Gi" + memoryLimit: "2Gi" + cpuRequest: "300m" + goMemLimit: "1536MiB" observation: + urlPaths: + - "/bulk/stats" + - "/stat/*" + - "/v1/observations/*" + - "/v1/bulk/observations/*" + - "/v2/observation" replicas: 10 + resources: + memoryRequest: "10Gi" + memoryLimit: "10Gi" + cpuRequest: "1" + goMemLimit: "8GiB" + espResources: + # Higher memory to accomodate larger payloads + memoryRequest: "512Mi" + memoryLimit: "2Gi" + node: + urlPaths: + - "/node/*" + - "/v1/triples/*" + - "/v1/properties/*" + - "/v1/property/values/*" + - "/v1/bulk/property/values/*" + - "/v1/bulk/triples/*" + - "/v1/bulk/properties/*" + - "/v2/node" + replicas: 20 + resources: + memoryRequest: "10Gi" + memoryLimit: "10Gi" + cpuRequest: "300m" + goMemLimit: "8GiB" + cacheSVG: true default: + urlPaths: + - "/*" replicas: 5 + resources: + memoryRequest: "2Gi" + memoryLimit: "2Gi" + cpuRequest: "50m" + goMemLimit: "1536MiB" # GCP level config ip: 34.107.161.252 diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index ee693db55..39c3db686 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -1,431 +1,41 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +project: datcom-mixer-autopush +cluster_prefix: mixer -# Default values for mixer. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -# Name of the Chart. -nameOverride: "" -# Full name of the release in the following format. -# - -fullnameOverride: "" - -# Namespace for the deployment. -# Set enabled to false to deploy into an existing namespace. -namespace: - create: false - name: "{{ .Values.namespace.name }}" - -# Everything custom DC related. -customDC: - enabled: false - -# Mixer service config. +# Helm config mixer: - hostProject: - githash: - - useBaseBigtable: true - useBranchBigtable: true - useCustomBigtable: false - useBigquery: true - useSpannerGraph: false - foldRemoteRootSvg: false - # Comma separated embeddings indexes for resolving indicators. - resolveEmbeddingsIndexes: "base_uae_mem" - redis: - enabled: false - enableOtlp: false - - # If bigqueryOnly is True, bigqueryTableRef must be specified. - bigqueryOnly: false - # Example: google.com:datcom-store-dev.dc_v3_encode_clustered - bigqueryTableRef: - # A special svg used to re-group the hierarchy - remoteMixerDomain: "" - - # Enable writing usage logs for the v2/observation endpoint - # This is an optional flag so that it is not enabled in custom DC by default - writeUsageLogs: true - - # URL root for the mixer service launched. - # Example: dev.api.datacommons.org - serviceName: - image: - repository: gcr.io/datcom-ci/datacommons-mixer - pullPolicy: IfNotPresent - tag: "latest" - - schemaConfigs: - base.mcf: | - Node: E:StatisticalVariable->E1 - typeOf: StatisticalVariable - dcid: C:StatisticalVariable->id - provenance: E:StatisticalVariable->E2 - populationType: C:StatisticalVariable->population_type - measuredProperty: C:StatisticalVariable->measured_prop - statType: C:StatisticalVariable->stat_type - measurementQualifier: C:StatisticalVariable->measurement_qualifier - measurementDenominator: E:StatisticalVariable->E3 - p1: C:StatisticalVariable->p1 - v1: C:StatisticalVariable->v1 - p2: C:StatisticalVariable->p2 - v2: C:StatisticalVariable->v2 - p3: C:StatisticalVariable->p3 - v3: C:StatisticalVariable->v3 - p4: C:StatisticalVariable->p4 - v4: C:StatisticalVariable->v4 - p5: C:StatisticalVariable->p5 - v5: C:StatisticalVariable->v5 - p6: C:StatisticalVariable->p6 - v6: C:StatisticalVariable->v6 - p7: C:StatisticalVariable->p7 - v7: C:StatisticalVariable->v7 - p8: C:StatisticalVariable->p8 - v8: C:StatisticalVariable->v8 - p9: C:StatisticalVariable->p9 - v9: C:StatisticalVariable->v9 - p10: C:StatisticalVariable->p10 - v10: C:StatisticalVariable->v10 - numConstraints: C:StatisticalVariable->num_constraints - functionalDeps: dcid - - Node: E:StatisticalVariable->E2 - typeOf: Provenance - dcid: C:StatisticalVariable->prov_id - functionalDeps: dcid - - Node: E:StatisticalVariable->E3 - typeOf: StatisticalVariable - typeOf: Property - dcid: C:StatisticalVariable->measurement_denominator - functionalDeps: dcid - - - Node: E:StatVarObservation->E1 - typeOf: StatVarObservation - dcid: C:StatVarObservation->id - observationAbout: E:StatVarObservation->E2 - variableMeasured: E:StatVarObservation->E3 - value: C:StatVarObservation->value - observationDate: C:StatVarObservation->observation_date - observationPeriod: C:StatVarObservation->observation_period - measurementMethod: C:StatVarObservation->measurement_method - unit: C:StatVarObservation->unit - scalingFactor: C:StatVarObservation->scaling_factor - samplePopulation: C:StatVarObservation->sample_population - location: E:StatVarObservation->E4 - provenance: E:StatVarObservation->E5 - functionalDeps: dcid - - Node: E:StatVarObservation->E2 - typeOf: Place - dcid: C:StatVarObservation->observation_about - functionalDeps: dcid - - Node: E:StatVarObservation->E3 - typeOf: StatisticalVariable - typeOf: Property - dcid: C:StatVarObservation->variable_measured - functionalDeps: dcid - - Node: E:StatVarObservation->E4 - typeOf: GeoCoordinates - dcid: C:StatVarObservation->location - functionalDeps: dcid - - Node: E:StatVarObservation->E5 - typeOf: Provenance - dcid: C:StatVarObservation->prov_id - functionalDeps: dcid - - - Node: E:Place->E1 - typeOf: Place - subType: C:Place->type - dcid: C:Place->id - name: C:Place->name - alternateName: C:Place->alternate_name - timezone: C:Place->timezone - provenance: E:Place->E2 - landArea: E:Place->E3 - waterArea: E:Place->E4 - latitude: C:Place->latitude - longitude: C:Place->longitude - elevation: C:Place->elevation - stateCode: C:Place->state_code - countryAlpha2Code: C:Place->country_alpha_2_code - countryAlpha3Code: C:Place->country_alpha_3_code - countryNumericCode: C:Place->country_numeric_code - functionalDeps: dcid - - Node: E:Place->E2 - typeOf: Provenance - dcid: C:Place->prov_id - functionalDeps: dcid - - Node: E:Place->E3 - typeOf: Quantity - dcid: C:Place->land_area - functionalDeps: dcid - - Node: E:Place->E4 - typeOf: Quantity - dcid: C:Place->water_area - functionalDeps: dcid - - - Node: E:PlaceExt->E1 - typeOf: Place - subType: C:PlaceExt->type - dcid: C:PlaceExt->id - kmlCoordinates: C:PlaceExt->kml_coordinates - geoJsonCoordinates: C:PlaceExt->geo_json_coordinates - geoJsonCoordinatesDP1: C:PlaceExt->geo_json_coordinates_dp1 - geoJsonCoordinatesDP2: C:PlaceExt->geo_json_coordinates_dp2 - geoJsonCoordinatesDP3: C:PlaceExt->geo_json_coordinates_dp3 - provenance: E:PlaceExt->E2 - functionalDeps: dcid - - Node: E:PlaceExt->E2 - typeOf: Provenance - dcid: C:PlaceExt->prov_id - functionalDeps: dcid - - - Node: E:Instance->E1 - typeOf: Thing - dcid: C:Instance->id - name: C:Instance->name - subType: C:Instance->type - provenance: E:Instance->E2 - functionalDeps: dcid - - Node: E:Instance->E2 - typeOf: Provenance - dcid: C:Instance->prov_id - functionalDeps: dcid - - - Node: E:Quantity->E1 - typeOf: Quantity - subType: C:Quantity->type - dcid: C:Quantity->id - unitOfMeasure: C:Quantity->unit_of_measure - value: C:Quantity->value - startValue: C:Quantity->start_value - endValue: C:Quantity->end_value - name: C:Quantity->name - functionalDeps: dcid - - - Node: E:Provenance->E1 - typeOf: Provenance - dcid: C:Provenance->id - name: C:Provenance->name - curator: E:Provenance->E2 - source: E:Provenance->E3 - url: C:Provenance->provenance_url - description: C:Provenance->provenance_description - importUrl: C:Provenance->mcf_url - importTime: C:Provenance->timestamp_secs - importDuration: C:Provenance->duration_secs - provenance: E:Provenance->E4 - isPartOf: E:Provenance->E5 - functionalDeps: dcid - - Node: E:Provenance->E2 - typeOf: Curator - dcid: C:Provenance->curator - functionalDeps: dcid - - Node: E:Provenance->E3 - typeOf: Source - dcid: C:Provenance->source - functionalDeps: dcid - - Node: E:Provenance->E4 - typeOf: Provenance - dcid: C:Provenance->prov_id - functionalDeps: dcid - - Node: E:Provenance->E5 - typeOf: Dataset - dcid: C:Provenance->is_part_of - functionalDeps: dcid - - - Node: E:Curator->E1 - typeOf: Curator - dcid: C:Curator->id - provenance: E:Curator->E2 - email: C:Curator->email - name: C:Curator->name - functionalDeps: dcid - - Node: E:Curator->E2 - typeOf: Provenance - dcid: C:Curator->prov_id - functionalDeps: dcid - - - Node: E:Source->E1 - typeOf: Source - dcid: C:Source->id - provenance: E:Source->E2 - domain: C:Source->domain - name: C:Source->name - url: C:Source->url - functionalDeps: dcid - - Node: E:Source->E2 - typeOf: Provenance - dcid: C:Source->prov_id - functionalDeps: dcid - - - Node: E:Dataset->E1 - typeOf: Dataset - dcid: C:Dataset->id - provenance: E:Dataset->E2 - name: C:Dataset->name - url: C:Dataset->url - isPartOf: E:Dataset->E3 - functionalDeps: dcid - - Node: E:Dataset->E2 - typeOf: Provenance - dcid: C:Dataset->prov_id - functionalDeps: dcid - - Node: E:Dataset->E3 - typeOf: Source - dcid: C:Dataset->is_part_of - functionalDeps: dcid - - - Node: E:Triple->E1 - dcid: C:Triple->subject_id - provenance: E:Triple->E2 - C:Triple->predicate: C:Triple->object_value - functionalDeps: dcid - - Node: E:Triple->E2 - typeOf: Provenance - dcid: C:Triple->prov_id - functionalDeps: dcid - encode.mcf: | - Node: E:EncodeBedLine->E1 - typeOf: BedLine - dcid: C:EncodeBedLine->id - fromBedFile: E:EncodeBedLine->E2 - chromosome: C:EncodeBedLine->chromosome - chromosomeStart: C:EncodeBedLine->chromosome_start - chromosomeEnd: C:EncodeBedLine->chromosome_end - bedName: C:EncodeBedLine->bed_name - bedScore: C:EncodeBedLine->bed_score - chromosomeStrand: C:EncodeBedLine->chromosome_strand - signalValue: C:EncodeBedLine->signal_value - pValue: C:EncodeBedLine->p_value - qValue: C:EncodeBedLine->q_value - peak: C:EncodeBedLine->peak - thickStart: C:EncodeBedLine->thick_start - thickEnd: C:EncodeBedLine->thick_end - itemRGB: C:EncodeBedLine->item_rgb - blockCount: C:EncodeBedLine->block_count - blockSizes: C:EncodeBedLine->block_sizes - blockStarts: C:EncodeBedLine->block_starts - provenance: E:EncodeBedLine->E3 - functionalDeps: dcid - - Node: E:EncodeBedLine->E2 - typeOf: EncodeBedFile - dcid: C:EncodeBedFile->from_bed_file - functionalDeps: dcid - - Node: E:EncodeBedLine->E3 - typeOf: Provenance - dcid: C:EncodeBedLine->prov_id - functionalDeps: dcid - -esp: - image: - repository: gcr.io/endpoints-release/endpoints-runtime - pullPolicy: IfNotPresent - tag: "2" - resources: - memoryRequest: "300Mi" - memoryLimit: "300Mi" - -embeddingsSidecar: - image: - # NOTE: This repository does not actually exist! - # It is an alias used by Skaffold to map the datacommons-nl image - # (tagged as mixer-sidecar) to this specific sidecar container. - # The actual image is injected by Cloud Build/Skaffold during deployment. - repository: gcr.io/datcom-ci/datacommons-embeddings-sidecar - pullPolicy: IfNotPresent - tag: "mixer-sidecar" - port: 6060 - memory: "2G" - cpuLimit: "1" - cpuRequest: "100m" - workers: 1 - env: - default_indexes: - - base_uae_mem - enabled_indexes: - - base_uae_mem - - medium_ft - - sdg_ft - - undata_ft - vertex_ai_models: - uae-large-v1-model: - project_id: datcom-nl - location: us-central1 - prediction_endpoint_id: "" # Must be defined per environment - enable_reranking: false - -# Config for k8s-sa(service account). The k8s-sa will be bound to a -# GCP-sa using annotations, specified below. -serviceAccount: - create: false - # K8s service account name. - name: mixer-ksa - # Google service account name. - gsaName: mixer-robot + tag: "" + hostProject: datcom-mixer-autopush + serviceName: autopush.api.datacommons.org + project: datcom-mixer-autopush + cluster_prefix: mixer + redis: + enabled: true + configFile: | + instances: + - region: "us-central1" + host: "10.244.163.180" + port: "6379" + enableOtlp: true ingress: - name: enabled: true + name: mixer-ingress-autopush annotations: { - kubernetes.io/ingress.global-static-ip-name: mixer-ip, - ingress.gcp.kubernetes.io/pre-shared-cert: mixer-certificate, + ingress.gcp.kubernetes.io/pre-shared-cert: "mixer-certificate,multi-domain-2026", } -kgStoreConfig: - bigqueryVersion: - baseBigtableInfo: "" - customBigtableInfo: "" - spannerGraphInfo: "" +# TODO(/v2/resolve cleanup): Remove this once /v2/resolve always requires an api key. +esp: + v2_resolve_allow_unregistered: false + +# GCP level config. +ip: 34.117.145.125 +region: us-central1 +api_title: DataCommons API (Autopush) +nodes: 4 -# To overwrite any portion of serviceGroups, please copy and paste -# the entire serviceGroups below into the custom values yaml file, -# and make changes to it. serviceGroups: svg: urlPaths: @@ -435,7 +45,7 @@ serviceGroups: - "/v1/variable/*" - "/v1/bulk/info/variable-group" - "/v2/bulk/info/variable-group" - replicas: 1 + replicas: 5 resources: memoryRequest: "8Gi" memoryLimit: "8Gi" @@ -449,12 +59,12 @@ serviceGroups: urlPaths: - "/v1/recon/*" - "/v2/resolve" - replicas: 1 + replicas: 20 resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" + memoryRequest: "1Gi" + memoryLimit: "1Gi" cpuRequest: "300m" - goMemLimit: "1536MiB" + goMemLimit: "715MiB" observation: urlPaths: - "/bulk/stats" @@ -462,12 +72,12 @@ serviceGroups: - "/v1/observations/*" - "/v1/bulk/observations/*" - "/v2/observation" - replicas: 1 + replicas: 20 resources: - memoryRequest: "10Gi" - memoryLimit: "20Gi" + memoryRequest: "8Gi" + memoryLimit: "8Gi" cpuRequest: "1" - goMemLimit: "18GiB" + goMemLimit: "6GiB" espResources: # Higher memory to accomodate larger payloads memoryRequest: "512Mi" @@ -482,19 +92,25 @@ serviceGroups: - "/v1/bulk/triples/*" - "/v1/bulk/properties/*" - "/v2/node" - replicas: 1 + replicas: 20 resources: - memoryRequest: "10Gi" - memoryLimit: "20Gi" + memoryRequest: "8Gi" + memoryLimit: "8Gi" cpuRequest: "300m" - goMemLimit: "18GiB" + goMemLimit: "6GiB" cacheSVG: true default: urlPaths: - "/*" - replicas: 1 + replicas: 10 resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" + memoryRequest: "1Gi" + memoryLimit: "1Gi" cpuRequest: "50m" - goMemLimit: "1536MiB" + goMemLimit: "715MiB" + +embeddingsSidecar: + env: + vertex_ai_models: + uae-large-v1-model: + prediction_endpoint_id: "8110162693219942400" From e89ba27c5778ef28f645fbc5830df00826e2dca1 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 14:40:28 -0700 Subject: [PATCH 17/18] return to basic configuration --- deploy/helm_charts/envs/mixer_autopush.yaml | 9 +- deploy/helm_charts/envs/mixer_prod.yaml | 69 +-- deploy/helm_charts/envs/mixer_staging.yaml | 65 +-- .../mixer/templates/deployment.yaml | 19 +- deploy/helm_charts/mixer/values.yaml | 471 ++++++++++++++++-- 5 files changed, 441 insertions(+), 192 deletions(-) diff --git a/deploy/helm_charts/envs/mixer_autopush.yaml b/deploy/helm_charts/envs/mixer_autopush.yaml index d983deab9..82945e477 100644 --- a/deploy/helm_charts/envs/mixer_autopush.yaml +++ b/deploy/helm_charts/envs/mixer_autopush.yaml @@ -44,15 +44,10 @@ serviceGroups: observation: replicas: 20 resources: - memoryRequest: "6Gi" - memoryLimit: "8Gi" - goMemLimit: "6GiB" + memoryRequest: "6G" + memoryLimit: "8G" node: replicas: 20 - resources: - memoryRequest: "6Gi" - memoryLimit: "8Gi" - goMemLimit: "6GiB" default: replicas: 10 diff --git a/deploy/helm_charts/envs/mixer_prod.yaml b/deploy/helm_charts/envs/mixer_prod.yaml index cb370c270..ea5e36715 100644 --- a/deploy/helm_charts/envs/mixer_prod.yaml +++ b/deploy/helm_charts/envs/mixer_prod.yaml @@ -26,76 +26,15 @@ ingress: serviceGroups: svg: - urlPaths: - - "/place/stat-var-group/*" - - "/stat-var/*" - - "/v1/info/variable-group/*" - - "/v1/variable/*" - - "/v1/bulk/info/variable-group" - - "/v2/bulk/info/variable-group" replicas: 10 - resources: - memoryRequest: "8Gi" - memoryLimit: "8Gi" - cpuRequest: "125m" - cacheSVG: true - goMemLimit: "6GiB" - # If the name of the recon service is changed here, - # please also change the name in the deployment.yaml template. recon: - enableEmbeddingsSidecar: true - urlPaths: - - "/v1/recon/*" - - "/v2/resolve" + replicas: 90 + node: replicas: 60 - resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" - cpuRequest: "300m" - goMemLimit: "1536MiB" observation: - urlPaths: - - "/bulk/stats" - - "/stat/*" - - "/v1/observations/*" - - "/v1/bulk/observations/*" - - "/v2/observation" - replicas: 40 - resources: - memoryRequest: "10Gi" - memoryLimit: "10Gi" - cpuRequest: "1" - goMemLimit: "8GiB" - espResources: - # Higher memory to accomodate larger payloads - memoryRequest: "512Mi" - memoryLimit: "2Gi" - node: - urlPaths: - - "/node/*" - - "/v1/triples/*" - - "/v1/properties/*" - - "/v1/property/values/*" - - "/v1/bulk/property/values/*" - - "/v1/bulk/triples/*" - - "/v1/bulk/properties/*" - - "/v2/node" - replicas: 40 - resources: - memoryRequest: "10Gi" - memoryLimit: "10Gi" - cpuRequest: "300m" - goMemLimit: "8GiB" - cacheSVG: true + replicas: 60 default: - urlPaths: - - "/*" - replicas: 20 - resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" - cpuRequest: "50m" - goMemLimit: "1536MiB" + replicas: 30 # GCP level config ip: 35.244.133.155 diff --git a/deploy/helm_charts/envs/mixer_staging.yaml b/deploy/helm_charts/envs/mixer_staging.yaml index f1a18f480..2a61ad5da 100644 --- a/deploy/helm_charts/envs/mixer_staging.yaml +++ b/deploy/helm_charts/envs/mixer_staging.yaml @@ -28,77 +28,16 @@ ingress: serviceGroups: svg: - urlPaths: - - "/place/stat-var-group/*" - - "/stat-var/*" - - "/v1/info/variable-group/*" - - "/v1/variable/*" - - "/v1/bulk/info/variable-group" - - "/v2/bulk/info/variable-group" replicas: 2 maxSurge: 0 - resources: - memoryRequest: "8Gi" - memoryLimit: "8Gi" - cpuRequest: "125m" - cacheSVG: true - goMemLimit: "6GiB" - # If the name of the recon service is changed here, - # please also change the name in the deployment.yaml template. recon: - enableEmbeddingsSidecar: true - urlPaths: - - "/v1/recon/*" - - "/v2/resolve" replicas: 4 - resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" - cpuRequest: "300m" - goMemLimit: "1536MiB" - observation: - urlPaths: - - "/bulk/stats" - - "/stat/*" - - "/v1/observations/*" - - "/v1/bulk/observations/*" - - "/v2/observation" - replicas: 10 - resources: - memoryRequest: "10Gi" - memoryLimit: "10Gi" - cpuRequest: "1" - goMemLimit: "8GiB" - espResources: - # Higher memory to accomodate larger payloads - memoryRequest: "512Mi" - memoryLimit: "2Gi" node: - urlPaths: - - "/node/*" - - "/v1/triples/*" - - "/v1/properties/*" - - "/v1/property/values/*" - - "/v1/bulk/property/values/*" - - "/v1/bulk/triples/*" - - "/v1/bulk/properties/*" - - "/v2/node" replicas: 20 - resources: - memoryRequest: "10Gi" - memoryLimit: "10Gi" - cpuRequest: "300m" - goMemLimit: "8GiB" - cacheSVG: true + observation: + replicas: 10 default: - urlPaths: - - "/*" replicas: 5 - resources: - memoryRequest: "2Gi" - memoryLimit: "2Gi" - cpuRequest: "50m" - goMemLimit: "1536MiB" # GCP level config ip: 34.107.161.252 diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index f1c1d02ae..da8930cdf 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -39,7 +39,7 @@ spec: rollingUpdate: # maximum number of Pods that can be created over the desired number of Pods # 25% of default pods (+1 in case default < 4) - maxSurge: {{ div $group.replicas 4 | add 1 }} + maxSurge: {{ $group.maxSurge | default (div $group.replicas 4 | add 1) }} # Maximum number of pods that can be unavailable during the update process # 25% of default pods (+1 in case default < 4) maxUnavailable: {{ div $group.replicas 4 | add 1 }} @@ -137,9 +137,6 @@ spec: resources: limits: memory: {{ $group.resources.memoryLimit }} - {{- if $group.resources.cpuLimit }} - cpu: {{ $group.resources.cpuLimit }} - {{- end }} requests: memory: {{ $group.resources.memoryRequest }} {{- if $group.resources.cpuRequest }} @@ -276,18 +273,20 @@ spec: exec: command: ["/bin/grpc_health_probe", "-addr=:12345", "-connect-timeout=10s"] failureThreshold: 30 - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 10 timeoutSeconds: 10 readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:12345"] periodSeconds: 10 + initialDelaySeconds: 60 timeoutSeconds: 10 livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:12345"] periodSeconds: 10 + initialDelaySeconds: 60 timeoutSeconds: 10 {{- if $group.enableEmbeddingsSidecar }} - name: embeddings @@ -392,18 +391,14 @@ spec: httpGet: path: /healthz port: 8081 - initialDelaySeconds: 3 # Give ESP a 3 second window to bind to port 8081 + initialDelaySeconds: 60 periodSeconds: 5 - failureThreshold: 3 # If fails 3x in a row (15s) cut off user traffic - timeoutSeconds: 5 livenessProbe: httpGet: path: /healthz port: 8081 - initialDelaySeconds: 5 # Liveness doesn't need to be checked as quickly as readiness - failureThreshold: 3 # If fails 3x in a row (45s) restart the container - periodSeconds: 15 # Check less frequently to conserve CPU - timeoutSeconds: 5 + periodSeconds: 5 + initialDelaySeconds: 5 ports: - containerPort: 8081 {{- $index = add $index 1 }} diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 39c3db686..51b9dad39 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -1,41 +1,431 @@ -project: datcom-mixer-autopush -cluster_prefix: mixer +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. -# Helm config +# Default values for mixer. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# Name of the Chart. +nameOverride: "" +# Full name of the release in the following format. +# - +fullnameOverride: "" + +# Namespace for the deployment. +# Set enabled to false to deploy into an existing namespace. +namespace: + create: false + name: "{{ .Values.namespace.name }}" + +# Everything custom DC related. +customDC: + enabled: false + +# Mixer service config. mixer: - image: - tag: "" - hostProject: datcom-mixer-autopush - serviceName: autopush.api.datacommons.org - project: datcom-mixer-autopush - cluster_prefix: mixer + hostProject: + githash: + + useBaseBigtable: true + useBranchBigtable: true + useCustomBigtable: false + useBigquery: true + useSpannerGraph: false + foldRemoteRootSvg: false + # Comma separated embeddings indexes for resolving indicators. + resolveEmbeddingsIndexes: "base_uae_mem" redis: - enabled: true - configFile: | - instances: - - region: "us-central1" - host: "10.244.163.180" - port: "6379" - enableOtlp: true + enabled: false + enableOtlp: false + + # If bigqueryOnly is True, bigqueryTableRef must be specified. + bigqueryOnly: false + # Example: google.com:datcom-store-dev.dc_v3_encode_clustered + bigqueryTableRef: + # A special svg used to re-group the hierarchy + remoteMixerDomain: "" + + # Enable writing usage logs for the v2/observation endpoint + # This is an optional flag so that it is not enabled in custom DC by default + writeUsageLogs: true + + # URL root for the mixer service launched. + # Example: dev.api.datacommons.org + serviceName: + + image: + repository: gcr.io/datcom-ci/datacommons-mixer + pullPolicy: IfNotPresent + tag: "latest" + + schemaConfigs: + base.mcf: | + Node: E:StatisticalVariable->E1 + typeOf: StatisticalVariable + dcid: C:StatisticalVariable->id + provenance: E:StatisticalVariable->E2 + populationType: C:StatisticalVariable->population_type + measuredProperty: C:StatisticalVariable->measured_prop + statType: C:StatisticalVariable->stat_type + measurementQualifier: C:StatisticalVariable->measurement_qualifier + measurementDenominator: E:StatisticalVariable->E3 + p1: C:StatisticalVariable->p1 + v1: C:StatisticalVariable->v1 + p2: C:StatisticalVariable->p2 + v2: C:StatisticalVariable->v2 + p3: C:StatisticalVariable->p3 + v3: C:StatisticalVariable->v3 + p4: C:StatisticalVariable->p4 + v4: C:StatisticalVariable->v4 + p5: C:StatisticalVariable->p5 + v5: C:StatisticalVariable->v5 + p6: C:StatisticalVariable->p6 + v6: C:StatisticalVariable->v6 + p7: C:StatisticalVariable->p7 + v7: C:StatisticalVariable->v7 + p8: C:StatisticalVariable->p8 + v8: C:StatisticalVariable->v8 + p9: C:StatisticalVariable->p9 + v9: C:StatisticalVariable->v9 + p10: C:StatisticalVariable->p10 + v10: C:StatisticalVariable->v10 + numConstraints: C:StatisticalVariable->num_constraints + functionalDeps: dcid + + Node: E:StatisticalVariable->E2 + typeOf: Provenance + dcid: C:StatisticalVariable->prov_id + functionalDeps: dcid + + Node: E:StatisticalVariable->E3 + typeOf: StatisticalVariable + typeOf: Property + dcid: C:StatisticalVariable->measurement_denominator + functionalDeps: dcid + + + Node: E:StatVarObservation->E1 + typeOf: StatVarObservation + dcid: C:StatVarObservation->id + observationAbout: E:StatVarObservation->E2 + variableMeasured: E:StatVarObservation->E3 + value: C:StatVarObservation->value + observationDate: C:StatVarObservation->observation_date + observationPeriod: C:StatVarObservation->observation_period + measurementMethod: C:StatVarObservation->measurement_method + unit: C:StatVarObservation->unit + scalingFactor: C:StatVarObservation->scaling_factor + samplePopulation: C:StatVarObservation->sample_population + location: E:StatVarObservation->E4 + provenance: E:StatVarObservation->E5 + functionalDeps: dcid + + Node: E:StatVarObservation->E2 + typeOf: Place + dcid: C:StatVarObservation->observation_about + functionalDeps: dcid + + Node: E:StatVarObservation->E3 + typeOf: StatisticalVariable + typeOf: Property + dcid: C:StatVarObservation->variable_measured + functionalDeps: dcid + + Node: E:StatVarObservation->E4 + typeOf: GeoCoordinates + dcid: C:StatVarObservation->location + functionalDeps: dcid + + Node: E:StatVarObservation->E5 + typeOf: Provenance + dcid: C:StatVarObservation->prov_id + functionalDeps: dcid + + + Node: E:Place->E1 + typeOf: Place + subType: C:Place->type + dcid: C:Place->id + name: C:Place->name + alternateName: C:Place->alternate_name + timezone: C:Place->timezone + provenance: E:Place->E2 + landArea: E:Place->E3 + waterArea: E:Place->E4 + latitude: C:Place->latitude + longitude: C:Place->longitude + elevation: C:Place->elevation + stateCode: C:Place->state_code + countryAlpha2Code: C:Place->country_alpha_2_code + countryAlpha3Code: C:Place->country_alpha_3_code + countryNumericCode: C:Place->country_numeric_code + functionalDeps: dcid + + Node: E:Place->E2 + typeOf: Provenance + dcid: C:Place->prov_id + functionalDeps: dcid + + Node: E:Place->E3 + typeOf: Quantity + dcid: C:Place->land_area + functionalDeps: dcid + + Node: E:Place->E4 + typeOf: Quantity + dcid: C:Place->water_area + functionalDeps: dcid + + + Node: E:PlaceExt->E1 + typeOf: Place + subType: C:PlaceExt->type + dcid: C:PlaceExt->id + kmlCoordinates: C:PlaceExt->kml_coordinates + geoJsonCoordinates: C:PlaceExt->geo_json_coordinates + geoJsonCoordinatesDP1: C:PlaceExt->geo_json_coordinates_dp1 + geoJsonCoordinatesDP2: C:PlaceExt->geo_json_coordinates_dp2 + geoJsonCoordinatesDP3: C:PlaceExt->geo_json_coordinates_dp3 + provenance: E:PlaceExt->E2 + functionalDeps: dcid + + Node: E:PlaceExt->E2 + typeOf: Provenance + dcid: C:PlaceExt->prov_id + functionalDeps: dcid + + + Node: E:Instance->E1 + typeOf: Thing + dcid: C:Instance->id + name: C:Instance->name + subType: C:Instance->type + provenance: E:Instance->E2 + functionalDeps: dcid + + Node: E:Instance->E2 + typeOf: Provenance + dcid: C:Instance->prov_id + functionalDeps: dcid + + + Node: E:Quantity->E1 + typeOf: Quantity + subType: C:Quantity->type + dcid: C:Quantity->id + unitOfMeasure: C:Quantity->unit_of_measure + value: C:Quantity->value + startValue: C:Quantity->start_value + endValue: C:Quantity->end_value + name: C:Quantity->name + functionalDeps: dcid + + + Node: E:Provenance->E1 + typeOf: Provenance + dcid: C:Provenance->id + name: C:Provenance->name + curator: E:Provenance->E2 + source: E:Provenance->E3 + url: C:Provenance->provenance_url + description: C:Provenance->provenance_description + importUrl: C:Provenance->mcf_url + importTime: C:Provenance->timestamp_secs + importDuration: C:Provenance->duration_secs + provenance: E:Provenance->E4 + isPartOf: E:Provenance->E5 + functionalDeps: dcid + + Node: E:Provenance->E2 + typeOf: Curator + dcid: C:Provenance->curator + functionalDeps: dcid + + Node: E:Provenance->E3 + typeOf: Source + dcid: C:Provenance->source + functionalDeps: dcid + + Node: E:Provenance->E4 + typeOf: Provenance + dcid: C:Provenance->prov_id + functionalDeps: dcid + + Node: E:Provenance->E5 + typeOf: Dataset + dcid: C:Provenance->is_part_of + functionalDeps: dcid + + + Node: E:Curator->E1 + typeOf: Curator + dcid: C:Curator->id + provenance: E:Curator->E2 + email: C:Curator->email + name: C:Curator->name + functionalDeps: dcid + + Node: E:Curator->E2 + typeOf: Provenance + dcid: C:Curator->prov_id + functionalDeps: dcid + + + Node: E:Source->E1 + typeOf: Source + dcid: C:Source->id + provenance: E:Source->E2 + domain: C:Source->domain + name: C:Source->name + url: C:Source->url + functionalDeps: dcid + + Node: E:Source->E2 + typeOf: Provenance + dcid: C:Source->prov_id + functionalDeps: dcid + + + Node: E:Dataset->E1 + typeOf: Dataset + dcid: C:Dataset->id + provenance: E:Dataset->E2 + name: C:Dataset->name + url: C:Dataset->url + isPartOf: E:Dataset->E3 + functionalDeps: dcid + + Node: E:Dataset->E2 + typeOf: Provenance + dcid: C:Dataset->prov_id + functionalDeps: dcid + + Node: E:Dataset->E3 + typeOf: Source + dcid: C:Dataset->is_part_of + functionalDeps: dcid + + + Node: E:Triple->E1 + dcid: C:Triple->subject_id + provenance: E:Triple->E2 + C:Triple->predicate: C:Triple->object_value + functionalDeps: dcid + + Node: E:Triple->E2 + typeOf: Provenance + dcid: C:Triple->prov_id + functionalDeps: dcid + encode.mcf: | + Node: E:EncodeBedLine->E1 + typeOf: BedLine + dcid: C:EncodeBedLine->id + fromBedFile: E:EncodeBedLine->E2 + chromosome: C:EncodeBedLine->chromosome + chromosomeStart: C:EncodeBedLine->chromosome_start + chromosomeEnd: C:EncodeBedLine->chromosome_end + bedName: C:EncodeBedLine->bed_name + bedScore: C:EncodeBedLine->bed_score + chromosomeStrand: C:EncodeBedLine->chromosome_strand + signalValue: C:EncodeBedLine->signal_value + pValue: C:EncodeBedLine->p_value + qValue: C:EncodeBedLine->q_value + peak: C:EncodeBedLine->peak + thickStart: C:EncodeBedLine->thick_start + thickEnd: C:EncodeBedLine->thick_end + itemRGB: C:EncodeBedLine->item_rgb + blockCount: C:EncodeBedLine->block_count + blockSizes: C:EncodeBedLine->block_sizes + blockStarts: C:EncodeBedLine->block_starts + provenance: E:EncodeBedLine->E3 + functionalDeps: dcid + + Node: E:EncodeBedLine->E2 + typeOf: EncodeBedFile + dcid: C:EncodeBedFile->from_bed_file + functionalDeps: dcid + + Node: E:EncodeBedLine->E3 + typeOf: Provenance + dcid: C:EncodeBedLine->prov_id + functionalDeps: dcid + +esp: + image: + repository: gcr.io/endpoints-release/endpoints-runtime + pullPolicy: IfNotPresent + tag: "2" + resources: + memoryRequest: "300Mi" + memoryLimit: "300Mi" + +embeddingsSidecar: + image: + # NOTE: This repository does not actually exist! + # It is an alias used by Skaffold to map the datacommons-nl image + # (tagged as mixer-sidecar) to this specific sidecar container. + # The actual image is injected by Cloud Build/Skaffold during deployment. + repository: gcr.io/datcom-ci/datacommons-embeddings-sidecar + pullPolicy: IfNotPresent + tag: "mixer-sidecar" + port: 6060 + memory: "2G" + cpuLimit: "1" + cpuRequest: "100m" + workers: 1 + env: + default_indexes: + - base_uae_mem + enabled_indexes: + - base_uae_mem + - medium_ft + - sdg_ft + - undata_ft + vertex_ai_models: + uae-large-v1-model: + project_id: datcom-nl + location: us-central1 + prediction_endpoint_id: "" # Must be defined per environment + enable_reranking: false + +# Config for k8s-sa(service account). The k8s-sa will be bound to a +# GCP-sa using annotations, specified below. +serviceAccount: + create: false + # K8s service account name. + name: mixer-ksa + # Google service account name. + gsaName: mixer-robot ingress: + name: enabled: true - name: mixer-ingress-autopush annotations: { - ingress.gcp.kubernetes.io/pre-shared-cert: "mixer-certificate,multi-domain-2026", + kubernetes.io/ingress.global-static-ip-name: mixer-ip, + ingress.gcp.kubernetes.io/pre-shared-cert: mixer-certificate, } -# TODO(/v2/resolve cleanup): Remove this once /v2/resolve always requires an api key. -esp: - v2_resolve_allow_unregistered: false - -# GCP level config. -ip: 34.117.145.125 -region: us-central1 -api_title: DataCommons API (Autopush) -nodes: 4 +kgStoreConfig: + bigqueryVersion: + baseBigtableInfo: "" + customBigtableInfo: "" + spannerGraphInfo: "" +# To overwrite any portion of serviceGroups, please copy and paste +# the entire serviceGroups below into the custom values yaml file, +# and make changes to it. serviceGroups: svg: urlPaths: @@ -45,13 +435,12 @@ serviceGroups: - "/v1/variable/*" - "/v1/bulk/info/variable-group" - "/v2/bulk/info/variable-group" - replicas: 5 + replicas: 1 resources: memoryRequest: "8Gi" memoryLimit: "8Gi" cpuRequest: "125m" cacheSVG: true - goMemLimit: "6GiB" # If the name of the recon service is changed here, # please also change the name in the deployment.yaml template. recon: @@ -59,12 +448,11 @@ serviceGroups: urlPaths: - "/v1/recon/*" - "/v2/resolve" - replicas: 20 + replicas: 1 resources: - memoryRequest: "1Gi" - memoryLimit: "1Gi" + memoryRequest: "2Gi" + memoryLimit: "2Gi" cpuRequest: "300m" - goMemLimit: "715MiB" observation: urlPaths: - "/bulk/stats" @@ -72,7 +460,7 @@ serviceGroups: - "/v1/observations/*" - "/v1/bulk/observations/*" - "/v2/observation" - replicas: 20 + replicas: 1 resources: memoryRequest: "8Gi" memoryLimit: "8Gi" @@ -92,7 +480,7 @@ serviceGroups: - "/v1/bulk/triples/*" - "/v1/bulk/properties/*" - "/v2/node" - replicas: 20 + replicas: 1 resources: memoryRequest: "8Gi" memoryLimit: "8Gi" @@ -102,15 +490,8 @@ serviceGroups: default: urlPaths: - "/*" - replicas: 10 + replicas: 1 resources: - memoryRequest: "1Gi" - memoryLimit: "1Gi" + memoryRequest: "2Gi" + memoryLimit: "2Gi" cpuRequest: "50m" - goMemLimit: "715MiB" - -embeddingsSidecar: - env: - vertex_ai_models: - uae-large-v1-model: - prediction_endpoint_id: "8110162693219942400" From 7fd86abc4350200ebfc1e100246a8c549d893f85 Mon Sep 17 00:00:00 2001 From: Julia Wu Date: Wed, 27 May 2026 14:47:42 -0700 Subject: [PATCH 18/18] remove gomemlimit --- deploy/helm_charts/mixer/templates/deployment.yaml | 4 ---- deploy/helm_charts/mixer/values.yaml | 2 -- 2 files changed, 6 deletions(-) diff --git a/deploy/helm_charts/mixer/templates/deployment.yaml b/deploy/helm_charts/mixer/templates/deployment.yaml index da8930cdf..d631d370b 100644 --- a/deploy/helm_charts/mixer/templates/deployment.yaml +++ b/deploy/helm_charts/mixer/templates/deployment.yaml @@ -263,10 +263,6 @@ spec: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317 {{- end }} - {{- if $group.goMemLimit }} - - name: GOMEMLIMIT - value: {{ $group.goMemLimit | quote }} - {{- end }} ports: - containerPort: 12345 startupProbe: diff --git a/deploy/helm_charts/mixer/values.yaml b/deploy/helm_charts/mixer/values.yaml index 51b9dad39..65fe5932b 100644 --- a/deploy/helm_charts/mixer/values.yaml +++ b/deploy/helm_charts/mixer/values.yaml @@ -465,7 +465,6 @@ serviceGroups: memoryRequest: "8Gi" memoryLimit: "8Gi" cpuRequest: "1" - goMemLimit: "6GiB" espResources: # Higher memory to accomodate larger payloads memoryRequest: "512Mi" @@ -485,7 +484,6 @@ serviceGroups: memoryRequest: "8Gi" memoryLimit: "8Gi" cpuRequest: "300m" - goMemLimit: "6GiB" cacheSVG: true default: urlPaths: