From 1cfc32a43684987639f8769ff13f34f39927f74e Mon Sep 17 00:00:00 2001 From: Onur Solmaz Date: Fri, 20 Mar 2026 19:58:28 +0100 Subject: [PATCH] fix(helm): decouple route host from ingress --- helm/spritz/templates/_helpers.tpl | 9 +++++++++ helm/spritz/templates/api-deployment.yaml | 2 +- helm/spritz/templates/operator-deployment.yaml | 2 +- scripts/verify-helm.sh | 5 +++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/helm/spritz/templates/_helpers.tpl b/helm/spritz/templates/_helpers.tpl index 2994a9a..fe48732 100644 --- a/helm/spritz/templates/_helpers.tpl +++ b/helm/spritz/templates/_helpers.tpl @@ -40,6 +40,15 @@ Canonical shared-host route values. {{- default "/c" .Values.global.routeModel.chatPathPrefix -}} {{- end }} +{{/* +Public host to use for shared-host route generation. +*/}} +{{- define "spritz.routeHost" -}} +{{- if and (eq (include "spritz.routeModel.type" .) "shared-host") .Values.global.host -}} +{{- .Values.global.host -}} +{{- end -}} +{{- end }} + {{/* Shared-host route model validation. */}} diff --git a/helm/spritz/templates/api-deployment.yaml b/helm/spritz/templates/api-deployment.yaml index 8002789..c6a2415 100644 --- a/helm/spritz/templates/api-deployment.yaml +++ b/helm/spritz/templates/api-deployment.yaml @@ -195,7 +195,7 @@ spec: - name: SPRITZ_ROUTE_MODEL_TYPE value: {{ include "spritz.routeModel.type" . | quote }} - name: SPRITZ_ROUTE_HOST - value: {{ ternary .Values.global.host "" .Values.ui.ingress.enabled | quote }} + value: {{ include "spritz.routeHost" . | quote }} - name: SPRITZ_ROUTE_API_PATH_PREFIX value: {{ include "spritz.routeModel.apiPathPrefix" . | quote }} - name: SPRITZ_ROUTE_AUTH_PATH_PREFIX diff --git a/helm/spritz/templates/operator-deployment.yaml b/helm/spritz/templates/operator-deployment.yaml index 9be445d..8ede96e 100644 --- a/helm/spritz/templates/operator-deployment.yaml +++ b/helm/spritz/templates/operator-deployment.yaml @@ -56,7 +56,7 @@ spec: - name: SPRITZ_ROUTE_MODEL_TYPE value: {{ include "spritz.routeModel.type" . | quote }} - name: SPRITZ_ROUTE_HOST - value: {{ ternary .Values.global.host "" .Values.ui.ingress.enabled | quote }} + value: {{ include "spritz.routeHost" . | quote }} - name: SPRITZ_ROUTE_API_PATH_PREFIX value: {{ include "spritz.routeModel.apiPathPrefix" . | quote }} - name: SPRITZ_ROUTE_AUTH_PATH_PREFIX diff --git a/scripts/verify-helm.sh b/scripts/verify-helm.sh index aeb7977..a264cfc 100755 --- a/scripts/verify-helm.sh +++ b/scripts/verify-helm.sh @@ -66,6 +66,7 @@ auth_annotations_render="${tmp_dir}/auth-annotations.yaml" acp_network_policy_render="${tmp_dir}/acp-network-policy.yaml" api_ha_render="${tmp_dir}/api-ha.yaml" gateway_render="${tmp_dir}/gateway.yaml" +route_only_render="${tmp_dir}/route-only.yaml" helm lint "${chart_dir}" helm template spritz "${chart_dir}" >"${default_render}" @@ -73,6 +74,7 @@ helm template spritz "${chart_dir}" -f "${example_values}" >"${auth_render}" helm template spritz "${chart_dir}" -f "${example_values}" --set authGateway.ingress.annotations.authonly=enabled >"${auth_annotations_render}" helm template spritz "${chart_dir}" --set acp.networkPolicy.enabled=true >"${acp_network_policy_render}" helm template spritz "${chart_dir}" --set api.replicaCount=2 --set api.podDisruptionBudget.enabled=true >"${api_ha_render}" +helm template spritz "${chart_dir}" --set ui.ingress.enabled=false >"${route_only_render}" helm template spritz "${chart_dir}" \ --set global.routing.mode=gateway-api \ --set global.routing.gateway.className=example-gateway \ @@ -105,6 +107,9 @@ expect_contains "${default_render}" "name: SPRITZ_ROUTE_INSTANCE_PATH_PREFIX" "i expect_contains "${gateway_render}" "kind: Gateway" "gateway resource in gateway-api mode" expect_contains "${gateway_render}" "kind: HTTPRoute" "http route in gateway-api mode" expect_contains "${gateway_render}" "value: /i" "instance path route model env wiring in gateway mode" +expect_not_contains "${route_only_render}" "kind: Ingress" "UI/API ingress resources when ui.ingress is disabled" +expect_contains "${route_only_render}" "name: SPRITZ_ROUTE_HOST" "shared-host route host env wiring when ingress is disabled" +expect_contains "${route_only_render}" 'value: "spritz.example.com"' "shared-host route host value when ingress is disabled" expect_failure \ "api.auth.mode must be header or auto when authGateway.enabled=true" \