diff --git a/templates/dag-deploy/dag-server-statefulset.yaml b/templates/dag-deploy/dag-server-statefulset.yaml index 28e3e743..8e4df2a2 100644 --- a/templates/dag-deploy/dag-server-statefulset.yaml +++ b/templates/dag-deploy/dag-server-statefulset.yaml @@ -53,6 +53,8 @@ spec: resources: {{- toYaml .Values.dagDeploy.resources | nindent 12 }} env: + - name: HOUSTON_SERVICE_ENDPOINT + value: "http://{{ .Values.platform.release }}-houston.{{ .Values.platform.namespace }}.svc.cluster.local.:8871/v1/" {{- if .Values.dagDeploy.extraEnv }} {{ toYaml .Values.dagDeploy.extraEnv | indent 10 }} {{- end }} diff --git a/tests/chart/test_dag_server_statefulset.py b/tests/chart/test_dag_server_statefulset.py index 2baeec24..6eee7606 100644 --- a/tests/chart/test_dag_server_statefulset.py +++ b/tests/chart/test_dag_server_statefulset.py @@ -6,6 +6,29 @@ from . import get_containers_by_name +def common_default_tests(doc): + """Test cases for default dag-server sts enabled""" + + assert doc["kind"] == "StatefulSet" + assert doc["apiVersion"] == "apps/v1" + assert doc["metadata"]["name"] == "release-name-dag-server" + c_by_name = get_containers_by_name(doc) + assert len(c_by_name) == 1 + assert c_by_name["dag-server"]["command"] == [ + "sanic", + "dag_deploy.server.app", + "-H", + "0.0.0.0", + ] + assert c_by_name["dag-server"]["image"].startswith( + "quay.io/astronomer/ap-dag-deploy:" + ) + assert c_by_name["dag-server"]["image"].startswith( + "quay.io/astronomer/ap-dag-deploy:" + ) + assert c_by_name["dag-server"]["livenessProbe"] + + @pytest.mark.parametrize("kube_version", supported_k8s_versions) class TestDagServerStatefulSet: def test_dag_server_statefulset_default(self, kube_version): @@ -27,24 +50,43 @@ def test_dag_server_statefulset_dag_server_enabled(self, kube_version): ) assert len(docs) == 1 doc = docs[0] - assert doc["kind"] == "StatefulSet" - assert doc["apiVersion"] == "apps/v1" - assert doc["metadata"]["name"] == "release-name-dag-server" + + common_default_tests(doc) + c_by_name = get_containers_by_name(doc) - assert len(c_by_name) == 1 - assert c_by_name["dag-server"]["command"] == [ - "sanic", - "dag_deploy.server.app", - "-H", - "0.0.0.0", - ] - assert c_by_name["dag-server"]["image"].startswith( - "quay.io/astronomer/ap-dag-deploy:" + + env_vars = {x["name"]: x["value"] for x in c_by_name["dag-server"]["env"]} + assert ( + env_vars["HOUSTON_SERVICE_ENDPOINT"] + == "http://-houston..svc.cluster.local.:8871/v1/" ) - assert c_by_name["dag-server"]["image"].startswith( - "quay.io/astronomer/ap-dag-deploy:" + + def test_dag_server_statefulset_houston_service_endpoint_override( + self, kube_version + ): + """Test that we see the right HOUSTON_SERVICE_ENDPOINT value when the relevant variables are set.""" + values = { + "dagDeploy": {"enabled": True}, + "platform": {"release": "test-release", "namespace": "test-namespace"}, + } + + docs = render_chart( + kube_version=kube_version, + show_only="templates/dag-deploy/dag-server-statefulset.yaml", + values=values, + ) + assert len(docs) == 1 + doc = docs[0] + + common_default_tests(doc) + + c_by_name = get_containers_by_name(doc) + + env_vars = {x["name"]: x["value"] for x in c_by_name["dag-server"]["env"]} + assert ( + env_vars["HOUSTON_SERVICE_ENDPOINT"] + == "http://test-release-houston.test-namespace.svc.cluster.local.:8871/v1/" ) - assert c_by_name["dag-server"]["livenessProbe"] def test_dag_server_statefulset_with_resource_overrides(self, kube_version): """Test that Dag Server statefulset are configurable with custom resource limits.""" @@ -66,9 +108,9 @@ def test_dag_server_statefulset_with_resource_overrides(self, kube_version): ) assert len(docs) == 1 doc = docs[0] - assert doc["kind"] == "StatefulSet" - assert doc["apiVersion"] == "apps/v1" - assert doc["metadata"]["name"] == "release-name-dag-server" + + common_default_tests(doc) + c_by_name = get_containers_by_name(doc) assert c_by_name["dag-server"]["resources"] == resources @@ -86,9 +128,9 @@ def test_dag_server_statefulset_with_securitycontext_overrides(self, kube_versio ) assert len(docs) == 1 doc = docs[0] - assert doc["kind"] == "StatefulSet" - assert doc["apiVersion"] == "apps/v1" - assert doc["metadata"]["name"] == "release-name-dag-server" + + common_default_tests(doc) + assert ( dag_serversecuritycontext == doc["spec"]["template"]["spec"]["securityContext"] @@ -108,9 +150,9 @@ def test_dag_server_statefulset_with_custom_registry_secret(self, kube_version): ) assert len(docs) == 1 doc = docs[0] - assert doc["kind"] == "StatefulSet" - assert doc["apiVersion"] == "apps/v1" - assert doc["metadata"]["name"] == "release-name-dag-server" + + common_default_tests(doc) + assert [{"name": "gscsecret"}] == doc["spec"]["template"]["spec"][ "imagePullSecrets" ] diff --git a/values.yaml b/values.yaml index bdd08722..2567071c 100644 --- a/values.yaml +++ b/values.yaml @@ -525,6 +525,7 @@ ingress: platform: release: ~ + namespace: ~ astronomer: images: