From cb00ea341c4d9db121b1013384276f6376c11b57 Mon Sep 17 00:00:00 2001 From: Waldemar Majkowski Date: Wed, 3 Jun 2026 18:35:42 +0200 Subject: [PATCH] fix(helm): upper-case probe scheme to tolerate lowercase input Pipe the probe scheme through `| upper` so values like `https` or `Http` render as valid Kubernetes httpGet.scheme values instead of being rejected by the API server at apply time. No-op for already upper-case values. Adds a helm-unittest case for lowercase input. Addresses Greptile review feedback on #29596. Co-Authored-By: Claude Opus 4.8 --- .../litellm-helm/templates/deployment.yaml | 6 +++--- .../litellm-helm/tests/deployment_tests.yaml | 17 +++++++++++++++++ deploy/charts/litellm-helm/values.yaml | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/deploy/charts/litellm-helm/templates/deployment.yaml b/deploy/charts/litellm-helm/templates/deployment.yaml index a7fcb3be163..55a198e1384 100644 --- a/deploy/charts/litellm-helm/templates/deployment.yaml +++ b/deploy/charts/litellm-helm/templates/deployment.yaml @@ -183,7 +183,7 @@ spec: httpGet: path: {{ .Values.livenessProbe.path | quote }} port: "http" - scheme: {{ .Values.livenessProbe.scheme | default "HTTP" }} + scheme: {{ .Values.livenessProbe.scheme | default "HTTP" | upper }} initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.livenessProbe.periodSeconds }} timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} @@ -193,7 +193,7 @@ spec: httpGet: path: {{ .Values.readinessProbe.path | quote }} port: "http" - scheme: {{ .Values.readinessProbe.scheme | default "HTTP" }} + scheme: {{ .Values.readinessProbe.scheme | default "HTTP" | upper }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.readinessProbe.periodSeconds }} timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} @@ -203,7 +203,7 @@ spec: httpGet: path: {{ .Values.startupProbe.path | quote }} port: "http" - scheme: {{ .Values.startupProbe.scheme | default "HTTP" }} + scheme: {{ .Values.startupProbe.scheme | default "HTTP" | upper }} initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }} periodSeconds: {{ .Values.startupProbe.periodSeconds }} timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }} diff --git a/deploy/charts/litellm-helm/tests/deployment_tests.yaml b/deploy/charts/litellm-helm/tests/deployment_tests.yaml index 5f58f40e838..b1411b37252 100644 --- a/deploy/charts/litellm-helm/tests/deployment_tests.yaml +++ b/deploy/charts/litellm-helm/tests/deployment_tests.yaml @@ -433,3 +433,20 @@ tests: - equal: path: spec.template.spec.containers[0].startupProbe.httpGet.scheme value: HTTPS + - it: should upper-case a lowercase probe scheme + template: deployment.yaml + set: + image.tag: test + livenessProbe.scheme: https + readinessProbe.scheme: https + startupProbe.scheme: https + asserts: + - equal: + path: spec.template.spec.containers[0].livenessProbe.httpGet.scheme + value: HTTPS + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme + value: HTTPS + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.scheme + value: HTTPS diff --git a/deploy/charts/litellm-helm/values.yaml b/deploy/charts/litellm-helm/values.yaml index 27872813ebd..0bde2705aa9 100644 --- a/deploy/charts/litellm-helm/values.yaml +++ b/deploy/charts/litellm-helm/values.yaml @@ -94,6 +94,7 @@ livenessProbe: # Scheme for the probe request: HTTP (default) or HTTPS. Set to HTTPS when the # proxy terminates TLS on the container port (ssl_keyfile_path/ssl_certfile_path), # otherwise the kubelet's plain-HTTP probe fails the TLS handshake. + # Case-insensitive — the value is upper-cased before rendering. scheme: HTTP initialDelaySeconds: 0 periodSeconds: 15