diff --git a/chart/templates/workers/worker-serviceaccount.yaml b/chart/templates/workers/worker-serviceaccount.yaml index bebddb96be938..e55d5d511a09c 100644 --- a/chart/templates/workers/worker-serviceaccount.yaml +++ b/chart/templates/workers/worker-serviceaccount.yaml @@ -18,7 +18,7 @@ ################################ ## Airflow Worker ServiceAccount ################################# -{{- if and .Values.workers.serviceAccount.create (or (eq .Values.executor "CeleryExecutor") (eq .Values.executor "CeleryKubernetesExecutor") (eq .Values.executor "KubernetesExecutor")) }} +{{- if and .Values.workers.serviceAccount.create (or (eq .Values.executor "CeleryExecutor") (eq .Values.executor "CeleryKubernetesExecutor") (eq .Values.executor "KubernetesExecutor") (eq .Values.executor "LocalKubernetesExecutor")) }} kind: ServiceAccount apiVersion: v1 metadata: diff --git a/tests/charts/test_worker.py b/tests/charts/test_worker.py index 39c65cf87aac9..76a511a3892c4 100644 --- a/tests/charts/test_worker.py +++ b/tests/charts/test_worker.py @@ -758,3 +758,33 @@ def test_should_add_component_specific_labels(self): assert "test_label" in jmespath.search("metadata.labels", docs[0]) assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value" + + @pytest.mark.parametrize( + "executor, creates_service_account", + [ + ("LocalExecutor", False), + ("CeleryExecutor", True), + ("CeleryKubernetesExecutor", True), + ("KubernetesExecutor", True), + ("LocalKubernetesExecutor", True), + ], + ) + def test_should_create_worker_service_account_for_specific_executors( + self, executor, creates_service_account + ): + docs = render_chart( + values={ + "executor": executor, + "workers": { + "serviceAccount": {"create": True}, + "labels": {"test_label": "test_label_value"}, + }, + }, + show_only=["templates/workers/worker-serviceaccount.yaml"], + ) + if creates_service_account: + assert jmespath.search("kind", docs[0]) == "ServiceAccount" + assert "test_label" in jmespath.search("metadata.labels", docs[0]) + assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value" + else: + assert docs == []