diff --git a/chart/templates/secrets/metadata-connection-secret.yaml b/chart/templates/secrets/metadata-connection-secret.yaml index a4441c42bd4de..de7df1cd6c694 100644 --- a/chart/templates/secrets/metadata-connection-secret.yaml +++ b/chart/templates/secrets/metadata-connection-secret.yaml @@ -19,7 +19,8 @@ ## Airflow Metadata Secret ################################# {{- if not .Values.data.metadataSecretName }} -{{- $metadataHost := .Values.data.metadataConnection.host | default (printf "%s-%s.%s" .Release.Name "postgresql" .Release.Namespace) }} +{{- $defaultMetadataHost := .Values.postgresql.nameOverride | default (printf "%s-%s.%s" .Release.Name "postgresql" .Release.Namespace) }} +{{- $metadataHost := .Values.data.metadataConnection.host | default $defaultMetadataHost }} {{- $pgbouncerHost := (printf "%s-%s.%s" .Release.Name "pgbouncer" .Release.Namespace) }} {{- $host := ternary $pgbouncerHost $metadataHost .Values.pgbouncer.enabled }} {{- $port := ((ternary .Values.ports.pgbouncer .Values.data.metadataConnection.port .Values.pgbouncer.enabled) | toString) }} diff --git a/tests/charts/test_basic_helm_chart.py b/tests/charts/test_basic_helm_chart.py index a4f5ff2d4b30d..171a012d4dead 100644 --- a/tests/charts/test_basic_helm_chart.py +++ b/tests/charts/test_basic_helm_chart.py @@ -16,6 +16,7 @@ # under the License. from __future__ import annotations +import base64 import warnings from subprocess import CalledProcessError from typing import Any @@ -508,3 +509,27 @@ def test_invalid_dags_access_mode(self): def test_namespace_names(self, namespace): """Test various namespace names to make sure they render correctly in templates""" render_chart(namespace=namespace) + + def test_postgres_connection_url_no_override(self): + # no nameoverride provided + doc = render_chart( + "my-release", + show_only=["templates/secrets/metadata-connection-secret.yaml"], + )[0] + assert ( + "postgresql://postgres:postgres@my-release-postgresql.default:5432/postgres?sslmode=disable" + == base64.b64decode(doc["data"]["connection"]).decode("utf-8") + ) + + def test_postgres_connection_url_name_override(self): + # nameoverride provided + doc = render_chart( + "my-release", + show_only=["templates/secrets/metadata-connection-secret.yaml"], + values={"postgresql": {"nameOverride": "overrideName"}}, + )[0] + + assert ( + "postgresql://postgres:postgres@overrideName:5432/postgres?sslmode=disable" + == base64.b64decode(doc["data"]["connection"]).decode("utf-8") + )