diff --git a/deploy/helm/a2a-shared/templates/deployment.yaml b/deploy/helm/a2a-shared/templates/deployment.yaml index e1a7e4b..6677337 100644 --- a/deploy/helm/a2a-shared/templates/deployment.yaml +++ b/deploy/helm/a2a-shared/templates/deployment.yaml @@ -109,19 +109,31 @@ spec: # The server exposes GET /healthz (verified against the built image's # composed Starlette routes: /rpc, /.well-known/agent-card.json, # /extendedAgentCard, /healthz). + # Tuned for a slow-start server under load. A startupProbe gives it time to + # clone tenants + boot before liveness/readiness apply; liveness is tolerant + # (5s timeout, 6 failures × 30s) so a briefly-slow /healthz doesn't restart it + # (was killing the pod on the default 1s timeout under cluster strain). + startupProbe: + httpGet: + path: /healthz + port: http + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 30 # up to ~5min to become healthy (repo clones + boot) readinessProbe: httpGet: path: /healthz port: http - initialDelaySeconds: 5 periodSeconds: 10 + timeoutSeconds: 5 failureThreshold: 6 livenessProbe: httpGet: path: /healthz port: http - initialDelaySeconds: 20 - periodSeconds: 20 + periodSeconds: 30 + timeoutSeconds: 5 + failureThreshold: 6 # ~3min of unresponsiveness before restart volumeMounts: - name: values mountPath: /config diff --git a/deploy/helm/a2a-shared/values-prod.yaml b/deploy/helm/a2a-shared/values-prod.yaml index a6df979..c078231 100644 --- a/deploy/helm/a2a-shared/values-prod.yaml +++ b/deploy/helm/a2a-shared/values-prod.yaml @@ -105,8 +105,11 @@ deploy: imagePullSecrets: - name: ghcr-pull resources: - requests: { cpu: 100m, memory: 256Mi } - limits: { cpu: 500m, memory: 512Mi } + # Bumped for multi-tenant serving under cluster strain: more memory headroom (repo + # clones + Managed-Agents + serving several tenant cards) + CPU burst so /healthz + # stays responsive. Requests kept modest to still schedule on the strained durable nodes. + requests: { cpu: 150m, memory: 384Mi } + limits: { cpu: 1000m, memory: 896Mi } externalDomain: prod.fuzefront.com ingressClassName: traefik agentProvider: anthropic