This is an automated email from the ASF dual-hosted git repository.
rom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 9ba279d15f2 Remove scheduler automate serviceaccount token (#44173)
9ba279d15f2 is described below
commit 9ba279d15f26088400b15281b3cc346e2d7a0e30
Author: rom sharon <[email protected]>
AuthorDate: Mon Jan 6 15:12:47 2025 +0200
Remove scheduler automate serviceaccount token (#44173)
* remove scheduler automate serviceaccount token
* concider automount service account only if executor is CeleryExecutor
* change comment
* fix typo
---
.../scheduler/scheduler-serviceaccount.yaml | 2 ++
chart/values.yaml | 2 +-
helm_tests/airflow_core/test_scheduler.py | 37 +++++++++++++++++++---
3 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/chart/templates/scheduler/scheduler-serviceaccount.yaml
b/chart/templates/scheduler/scheduler-serviceaccount.yaml
index 310f1684967..0f4f8cfaa67 100644
--- a/chart/templates/scheduler/scheduler-serviceaccount.yaml
+++ b/chart/templates/scheduler/scheduler-serviceaccount.yaml
@@ -23,7 +23,9 @@
{{- if and .Values.scheduler.enabled .Values.scheduler.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
+{{- if eq .Values.executor "CeleryExecutor" }}
automountServiceAccountToken: {{
.Values.scheduler.serviceAccount.automountServiceAccountToken }}
+{{- end }}
metadata:
name: {{ include "scheduler.serviceAccountName" . }}
labels:
diff --git a/chart/values.yaml b/chart/values.yaml
index 2e27b7a4686..c0764fb54a0 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -934,7 +934,7 @@ scheduler:
# Create ServiceAccount
serviceAccount:
- # default value is true
+ # only affect CeleryExecutor, default value is true
# ref:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
automountServiceAccountToken: true
# Specifies whether a ServiceAccount should be created
diff --git a/helm_tests/airflow_core/test_scheduler.py
b/helm_tests/airflow_core/test_scheduler.py
index 0bef3e7e132..7b3eae3fdad 100644
--- a/helm_tests/airflow_core/test_scheduler.py
+++ b/helm_tests/airflow_core/test_scheduler.py
@@ -988,27 +988,54 @@ class TestSchedulerServiceAccount:
assert "test_label" in jmespath.search("metadata.labels", docs[0])
assert jmespath.search("metadata.labels", docs[0])["test_label"] ==
"test_label_value"
- def test_default_automount_service_account_token(self):
+ @pytest.mark.parametrize(
+ "executor, default_automount_service_account",
+ [
+ ("LocalExecutor", None),
+ ("CeleryExecutor", True),
+ ("CeleryKubernetesExecutor", None),
+ ("KubernetesExecutor", None),
+ ("LocalKubernetesExecutor", None),
+ ],
+ )
+ def test_default_automount_service_account_token(self, executor,
default_automount_service_account):
docs = render_chart(
values={
"scheduler": {
"serviceAccount": {"create": True},
},
+ "executor": executor,
},
show_only=["templates/scheduler/scheduler-serviceaccount.yaml"],
)
- assert jmespath.search("automountServiceAccountToken", docs[0]) is True
+ assert jmespath.search("automountServiceAccountToken", docs[0]) is
default_automount_service_account
- def test_overridden_automount_service_account_token(self):
+ @pytest.mark.parametrize(
+ "executor, automount_service_account,
should_automount_service_account",
+ [
+ ("LocalExecutor", True, None),
+ ("CeleryExecutor", False, False),
+ ("CeleryKubernetesExecutor", False, None),
+ ("KubernetesExecutor", False, None),
+ ("LocalKubernetesExecutor", False, None),
+ ],
+ )
+ def test_overridden_automount_service_account_token(
+ self, executor, automount_service_account,
should_automount_service_account
+ ):
docs = render_chart(
values={
"scheduler": {
- "serviceAccount": {"create": True,
"automountServiceAccountToken": False},
+ "serviceAccount": {
+ "create": True,
+ "automountServiceAccountToken":
automount_service_account,
+ },
},
+ "executor": executor,
},
show_only=["templates/scheduler/scheduler-serviceaccount.yaml"],
)
- assert jmespath.search("automountServiceAccountToken", docs[0]) is
False
+ assert jmespath.search("automountServiceAccountToken", docs[0]) is
should_automount_service_account
class TestSchedulerCreation: