diff --git a/chart/templates/rbac/job-launcher-rolebinding.yaml b/chart/templates/rbac/job-launcher-rolebinding.yaml index 8babdad98b40b..e5cbca8c630b4 100644 --- a/chart/templates/rbac/job-launcher-rolebinding.yaml +++ b/chart/templates/rbac/job-launcher-rolebinding.yaml @@ -59,7 +59,8 @@ roleRef: {{- end }} subjects: {{- range $executor := $executors }} - {{- if has $executor $schedulerLaunchExecutors }} + {{- $executorClass := last (splitList "." ($executor | trim)) }} + {{- if has $executorClass $schedulerLaunchExecutors }} - kind: ServiceAccount name: {{ include "scheduler.serviceAccountName" $ }} namespace: "{{ $.Release.Namespace }}" @@ -67,7 +68,8 @@ subjects: {{- end }} {{- end }} {{- range $executor := $executors }} - {{- if has $executor $workerLaunchExecutors }} + {{- $executorClass := last (splitList "." ($executor | trim)) }} + {{- if has $executorClass $workerLaunchExecutors }} - kind: ServiceAccount name: {{ include "worker.serviceAccountName" $ }} namespace: "{{ $.Release.Namespace }}" diff --git a/chart/templates/rbac/pod-launcher-rolebinding.yaml b/chart/templates/rbac/pod-launcher-rolebinding.yaml index 2555218a91c25..a9a3b510a4379 100644 --- a/chart/templates/rbac/pod-launcher-rolebinding.yaml +++ b/chart/templates/rbac/pod-launcher-rolebinding.yaml @@ -59,7 +59,8 @@ roleRef: {{- end }} subjects: {{- range $executor := $executors }} - {{- if has $executor $schedulerLaunchExecutors }} + {{- $executorClass := last (splitList "." ($executor | trim)) }} + {{- if has $executorClass $schedulerLaunchExecutors }} - kind: ServiceAccount name: {{ include "scheduler.serviceAccountName" $ }} namespace: "{{ $.Release.Namespace }}" @@ -67,7 +68,8 @@ subjects: {{- end }} {{- end }} {{- range $executor := $executors }} - {{- if has $executor $workerLaunchExecutors }} + {{- $executorClass := last (splitList "." ($executor | trim)) }} + {{- if has $executorClass $workerLaunchExecutors }} - kind: ServiceAccount name: {{ include "worker.serviceAccountName" $ }} namespace: "{{ $.Release.Namespace }}" diff --git a/helm-tests/tests/helm_tests/airflow_aux/test_job_launcher_role.py b/helm-tests/tests/helm_tests/airflow_aux/test_job_launcher_role.py index 118a3677911fa..74db8dad091d2 100644 --- a/helm-tests/tests/helm_tests/airflow_aux/test_job_launcher_role.py +++ b/helm-tests/tests/helm_tests/airflow_aux/test_job_launcher_role.py @@ -28,10 +28,29 @@ class TestJobLauncher: ("executor", "rbac", "allow", "expected_accounts"), [ ("KubernetesExecutor", True, True, ["scheduler", "worker"]), + ( + "airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor", + True, + True, + ["scheduler", "worker"], + ), ("CeleryExecutor", True, True, ["worker"]), + ( + "airflow.providers.celery.executors.celery_executor.CeleryExecutor", + True, + True, + ["worker"], + ), ("LocalExecutor", True, True, ["scheduler"]), + ("airflow.executors.local_executor.LocalExecutor", True, True, ["scheduler"]), ("LocalExecutor", False, False, []), ("CeleryExecutor,KubernetesExecutor", True, True, ["scheduler", "worker"]), + ( + "CeleryExecutor,airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor", + True, + True, + ["scheduler", "worker"], + ), ], ) def test_job_launcher_rolebinding(self, executor, rbac, allow, expected_accounts): diff --git a/helm-tests/tests/helm_tests/airflow_aux/test_pod_launcher_role.py b/helm-tests/tests/helm_tests/airflow_aux/test_pod_launcher_role.py index 86c7ab191b108..3645d5850cf49 100644 --- a/helm-tests/tests/helm_tests/airflow_aux/test_pod_launcher_role.py +++ b/helm-tests/tests/helm_tests/airflow_aux/test_pod_launcher_role.py @@ -28,10 +28,29 @@ class TestPodLauncher: ("executor", "rbac", "allow", "expected_accounts"), [ ("KubernetesExecutor", True, True, ["scheduler", "worker"]), + ( + "airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor", + True, + True, + ["scheduler", "worker"], + ), ("CeleryExecutor", True, True, ["worker"]), + ( + "airflow.providers.celery.executors.celery_executor.CeleryExecutor", + True, + True, + ["worker"], + ), ("LocalExecutor", True, True, ["scheduler"]), + ("airflow.executors.local_executor.LocalExecutor", True, True, ["scheduler"]), ("LocalExecutor", False, False, []), ("CeleryExecutor,KubernetesExecutor", True, True, ["scheduler", "worker"]), + ( + "CeleryExecutor,airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor", + True, + True, + ["scheduler", "worker"], + ), ], ) def test_pod_launcher_role(self, executor, rbac, allow, expected_accounts):