This is an automated email from the ASF dual-hosted git repository.
bugraoz93 pushed a commit to branch chart/v1-2x-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/chart/v1-2x-test by this push:
new 2e9fe4b198c [chart/v1-2x-test] Chart: add missing tpl for SA
annotations (#66095) (#66128)
2e9fe4b198c is described below
commit 2e9fe4b198cbc9dc8c9dd3e05fe4944f41716c19
Author: Jens Scheffler <[email protected]>
AuthorDate: Wed Apr 29 23:50:05 2026 +0200
[chart/v1-2x-test] Chart: add missing tpl for SA annotations (#66095)
(#66128)
(cherry picked from commit ac59ee01015f22a585631d8ffe3976961f09bf31)
Co-authored-by: Aakcht <[email protected]>
---
.../templates/cleanup/cleanup-serviceaccount.yaml | 3 +-
.../database-cleanup-serviceaccount.yaml | 3 +-
chart/templates/flower/flower-serviceaccount.yaml | 3 +-
.../jobs/create-user-job-serviceaccount.yaml | 3 +-
.../jobs/migrate-database-job-serviceaccount.yaml | 3 +-
chart/templates/redis/redis-serviceaccount.yaml | 3 +-
chart/templates/statsd/statsd-serviceaccount.yaml | 3 +-
.../workers/worker-kubernetes-serviceaccount.yaml | 3 +-
.../helm_tests/airflow_aux/test_annotations.py | 72 +++++++---------------
9 files changed, 38 insertions(+), 58 deletions(-)
diff --git a/chart/templates/cleanup/cleanup-serviceaccount.yaml
b/chart/templates/cleanup/cleanup-serviceaccount.yaml
index d3c2222b159..709cee1604d 100644
--- a/chart/templates/cleanup/cleanup-serviceaccount.yaml
+++ b/chart/templates/cleanup/cleanup-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.cleanup.labels .Values.labels | toYaml | nindent 4
}}
{{- end }}
{{- with .Values.cleanup.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git
a/chart/templates/database-cleanup/database-cleanup-serviceaccount.yaml
b/chart/templates/database-cleanup/database-cleanup-serviceaccount.yaml
index 80262a4f60a..d27370965db 100644
--- a/chart/templates/database-cleanup/database-cleanup-serviceaccount.yaml
+++ b/chart/templates/database-cleanup/database-cleanup-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.databaseCleanup.labels .Values.labels | toYaml |
nindent 4 }}
{{- end }}
{{- with .Values.databaseCleanup.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/flower/flower-serviceaccount.yaml
b/chart/templates/flower/flower-serviceaccount.yaml
index 87aacdb803c..862ab256830 100644
--- a/chart/templates/flower/flower-serviceaccount.yaml
+++ b/chart/templates/flower/flower-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.flower.labels .Values.labels | toYaml | nindent 4
}}
{{- end }}
{{- with .Values.flower.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/jobs/create-user-job-serviceaccount.yaml
b/chart/templates/jobs/create-user-job-serviceaccount.yaml
index be619b0fcac..7b855f5edd6 100644
--- a/chart/templates/jobs/create-user-job-serviceaccount.yaml
+++ b/chart/templates/jobs/create-user-job-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.createUserJob.labels .Values.labels | toYaml |
nindent 4 }}
{{- end }}
{{- with .Values.createUserJob.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/jobs/migrate-database-job-serviceaccount.yaml
b/chart/templates/jobs/migrate-database-job-serviceaccount.yaml
index e5ee856f6cb..f349f19eb4c 100644
--- a/chart/templates/jobs/migrate-database-job-serviceaccount.yaml
+++ b/chart/templates/jobs/migrate-database-job-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.migrateDatabaseJob.labels .Values.labels | toYaml
| nindent 4 }}
{{- end }}
{{- with .Values.migrateDatabaseJob.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/redis/redis-serviceaccount.yaml
b/chart/templates/redis/redis-serviceaccount.yaml
index f645b4ee2f4..a7792d6fb4a 100644
--- a/chart/templates/redis/redis-serviceaccount.yaml
+++ b/chart/templates/redis/redis-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.redis.labels .Values.labels | toYaml | nindent 4 }}
{{- end }}
{{- with .Values.redis.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/statsd/statsd-serviceaccount.yaml
b/chart/templates/statsd/statsd-serviceaccount.yaml
index e2659769516..fc5943d7f70 100644
--- a/chart/templates/statsd/statsd-serviceaccount.yaml
+++ b/chart/templates/statsd/statsd-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge .Values.statsd.labels .Values.labels | toYaml | nindent 4
}}
{{- end }}
{{- with .Values.statsd.serviceAccount.annotations }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/chart/templates/workers/worker-kubernetes-serviceaccount.yaml
b/chart/templates/workers/worker-kubernetes-serviceaccount.yaml
index b74474b42f2..82cf72f6b68 100644
--- a/chart/templates/workers/worker-kubernetes-serviceaccount.yaml
+++ b/chart/templates/workers/worker-kubernetes-serviceaccount.yaml
@@ -36,6 +36,7 @@ metadata:
{{- mustMerge (.Values.workers.kubernetes.labels | default
.Values.workers.labels) .Values.labels | toYaml | nindent 4 }}
{{- end }}
{{- with (.Values.workers.kubernetes.serviceAccount.annotations | default
.Values.workers.serviceAccount.annotations) }}
- annotations: {{- toYaml . | nindent 4 }}
+ annotations:
+ {{- include "airflow.tplDict" (dict "values" . "context" $) | nindent 4 }}
{{- end }}
{{- end }}
diff --git a/helm-tests/tests/helm_tests/airflow_aux/test_annotations.py
b/helm-tests/tests/helm_tests/airflow_aux/test_annotations.py
index 1bbf800c46a..a861a28996b 100644
--- a/helm-tests/tests/helm_tests/airflow_aux/test_annotations.py
+++ b/helm-tests/tests/helm_tests/airflow_aux/test_annotations.py
@@ -410,38 +410,28 @@ class TestServiceAccountAnnotations:
assert annotations["another-annotation"] == "release-name-other"
assert annotations["plain-annotation"] == "no-template"
- def test_tpl_rendered_annotations_pgbouncer(self):
- """Test pgbouncer SA annotations support tpl rendering."""
- k8s_objects = render_chart(
- values={
- "airflowVersion": "2.11.0",
- "pgbouncer": {
- "enabled": True,
- "serviceAccount": {
- "annotations": {
- "iam.gke.io/gcp-service-account": "{{
.Release.Name }}[email protected]",
- },
- },
- },
- },
- show_only=["templates/pgbouncer/pgbouncer-serviceaccount.yaml"],
- )
- assert len(k8s_objects) == 1
- annotations = k8s_objects[0]["metadata"]["annotations"]
- assert annotations["iam.gke.io/gcp-service-account"] ==
"[email protected]"
-
@pytest.mark.parametrize(
("values_key", "show_only"),
[
("dagProcessor",
"templates/dag-processor/dag-processor-serviceaccount.yaml"),
("apiServer",
"templates/api-server/api-server-serviceaccount.yaml"),
+ ("pgbouncer", "templates/pgbouncer/pgbouncer-serviceaccount.yaml"),
+ ("migrateDatabaseJob",
"templates/jobs/migrate-database-job-serviceaccount.yaml"),
+ ("createUserJob",
"templates/jobs/create-user-job-serviceaccount.yaml"),
+ ("flower", "templates/flower/flower-serviceaccount.yaml"),
+ ("cleanup", "templates/cleanup/cleanup-serviceaccount.yaml"),
+ ("databaseCleanup",
"templates/database-cleanup/database-cleanup-serviceaccount.yaml"),
+ ("redis", "templates/redis/redis-serviceaccount.yaml"),
+ ("statsd", "templates/statsd/statsd-serviceaccount.yaml"),
],
)
def test_tpl_rendered_annotations_airflow_3(self, values_key, show_only):
"""Test SA annotations support tpl rendering for Airflow 3.x
components."""
k8s_objects = render_chart(
values={
+ **({"executor": "KubernetesExecutor"} if values_key ==
"cleanup" else {}),
values_key: {
+ "enabled": True,
"serviceAccount": {
"annotations": {
"iam.gke.io/gcp-service-account": "{{
.Release.Name }}[email protected]",
@@ -494,45 +484,27 @@ class TestServiceAccountAnnotations:
annotations = k8s_objects[0]["metadata"]["annotations"]
assert annotations["iam.gke.io/gcp-service-account"] ==
"[email protected]"
- def test_tpl_rendered_annotations_webserver(self):
- """Test webserver SA annotations support tpl rendering (Airflow 2.x
only)."""
+ def test_tpl_rendered_annotations_kubernetes_worker_separate(self):
+ """Test worker-kubernetes-serviceaccount.yaml support tpl rendering."""
k8s_objects = render_chart(
values={
- "airflowVersion": "2.11.0",
- "webserver": {
- "serviceAccount": {
- "annotations": {
- "iam.gke.io/gcp-service-account": "{{
.Release.Name }}[email protected]",
+ "executor": "KubernetesExecutor",
+ "workers": {
+ "kubernetes": {
+ "serviceAccount": {
+ "create": True,
+ "annotations": {
+ "iam.gke.io/gcp-service-account": "{{
.Release.Name }}[email protected]",
+ },
},
},
},
},
- show_only=["templates/webserver/webserver-serviceaccount.yaml"],
+
show_only=["templates/workers/worker-kubernetes-serviceaccount.yaml"],
)
assert len(k8s_objects) == 1
annotations = k8s_objects[0]["metadata"]["annotations"]
- assert annotations["iam.gke.io/gcp-service-account"] ==
"[email protected]"
-
- def test_annotations_on_webserver(self):
- """Test annotations are added on webserver for Airflow 2"""
- k8s_objects = render_chart(
- values={
- "airflowVersion": "2.11.0",
- "webserver": {
- "serviceAccount": {
- "annotations": {
- "example": "webserver",
- },
- },
- },
- },
- show_only=["templates/webserver/webserver-serviceaccount.yaml"],
- )
-
- assert len(k8s_objects) == 1
- obj = k8s_objects[0]
-
- assert obj["metadata"]["annotations"] == {"example": "webserver"}
+ assert annotations["iam.gke.io/gcp-service-account"] ==
"[email protected]"
@pytest.mark.parametrize(