This is an automated email from the ASF dual-hosted git repository.

jscheffl 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 00d99ef6e38 [chart/v1-2x-test] Add workers.celery.env & 
workers.kubernetes.env (#65056) (#65107)
00d99ef6e38 is described below

commit 00d99ef6e38ffcc784d3db1fbffda2504d0ba934
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Apr 12 23:21:49 2026 +0200

    [chart/v1-2x-test] Add workers.celery.env & workers.kubernetes.env (#65056) 
(#65107)
    
    * Add workers.celery.env & workers.kubernetes.env
    
    * Add newsfragment
    (cherry picked from commit 0ecfcee859b1b25b30cd25e4f071cc12d15f2ab1)
    
    Co-authored-by: Przemysław Mirowski 
<[email protected]>
---
 chart/files/pod-template-file.kubernetes-helm-yaml |   2 +-
 chart/newsfragments/65056.significant.rst          |   1 +
 chart/templates/NOTES.txt                          |   8 ++
 chart/values.schema.json                           | 116 ++++++++++++++++++++-
 chart/values.yaml                                  |   7 ++
 .../airflow_aux/test_pod_template_file.py          |  44 +++++++-
 .../tests/helm_tests/airflow_core/test_worker.py   |  46 +++++++-
 .../helm_tests/airflow_core/test_worker_sets.py    |   7 ++
 8 files changed, 221 insertions(+), 10 deletions(-)

diff --git a/chart/files/pod-template-file.kubernetes-helm-yaml 
b/chart/files/pod-template-file.kubernetes-helm-yaml
index 6449fe329ad..26b1b8505d0 100644
--- a/chart/files/pod-template-file.kubernetes-helm-yaml
+++ b/chart/files/pod-template-file.kubernetes-helm-yaml
@@ -120,7 +120,7 @@ spec:
         {{- end }}
         {{- include "standard_airflow_environment" . | indent 6}}
         {{- include "custom_airflow_environment" . | indent 6 }}
-        {{- include "container_extra_envs" (list . .Values.workers.env) | 
indent 6 }}
+        {{- include "container_extra_envs" (list . 
(.Values.workers.kubernetes.env | default .Values.workers.env)) | indent 6 }}
       image: {{ template "pod_template_image" . }}
       imagePullPolicy: {{ .Values.images.pod_template.pullPolicy }}
       securityContext: {{ $containerSecurityContext | nindent 8 }}
diff --git a/chart/newsfragments/65056.significant.rst 
b/chart/newsfragments/65056.significant.rst
new file mode 100644
index 00000000000..6e919a24620
--- /dev/null
+++ b/chart/newsfragments/65056.significant.rst
@@ -0,0 +1 @@
+``workers.env`` field is now deprecated in favor of ``workers.celery.env`` and 
``workers.kubernetes.env``. Please update your configuration accordingly.
diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt
index b5038eaa55f..57d94edf22c 100644
--- a/chart/templates/NOTES.txt
+++ b/chart/templates/NOTES.txt
@@ -957,6 +957,14 @@ DEPRECATION WARNING:
 
 {{- end }}
 
+{{- if not (empty .Values.workers.env) }}
+
+ DEPRECATION WARNING:
+    `workers.env` has been renamed to 
`workers.celery.env`/`workers.kubernetes.env`.
+    Please change your values as support for the old name will be dropped in a 
future release.
+
+{{- end }}
+
 {{- if not (empty .Values.webserver.defaultUser) }}
 
  DEPRECATION WARNING:
diff --git a/chart/values.schema.json b/chart/values.schema.json
index 658de692e9b..da245664137 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -2719,7 +2719,7 @@
                     }
                 },
                 "env": {
-                    "description": "Add additional env vars to the Airflow 
Celery workers and pods created with pod-template-file.",
+                    "description": "Add additional env vars to the Airflow 
Celery workers and pods created with pod-template-file (deprecated, use 
``workers.celery.env`` and/or ``workers.kubernetes.env`` instead).",
                     "type": "array",
                     "default": [],
                     "items": {
@@ -3877,6 +3877,63 @@
                                 }
                             }
                         },
+                        "env": {
+                            "description": "Add additional env vars to the 
Airflow Celery workers.",
+                            "type": "array",
+                            "default": [],
+                            "items": {
+                                "type": "object",
+                                "properties": {
+                                    "name": {
+                                        "type": "string"
+                                    },
+                                    "value": {
+                                        "type": "string"
+                                    },
+                                    "valueFrom": {
+                                        "type": "object",
+                                        "properties": {
+                                            "configMapKeyRef": {
+                                                "$ref": 
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+                                                "description": "Selects a key 
of a ConfigMap."
+                                            },
+                                            "secretKeyRef": {
+                                                "$ref": 
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+                                                "description": "Selects a key 
of a secret in the pod's namespace"
+                                            }
+                                        },
+                                        "anyOf": [
+                                            {
+                                                "required": [
+                                                    "configMapKeyRef"
+                                                ]
+                                            },
+                                            {
+                                                "required": [
+                                                    "secretKeyRef"
+                                                ]
+                                            }
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "name"
+                                ],
+                                "anyOf": [
+                                    {
+                                        "required": [
+                                            "value"
+                                        ]
+                                    },
+                                    {
+                                        "required": [
+                                            "valueFrom"
+                                        ]
+                                    }
+                                ],
+                                "additionalProperties": false
+                            }
+                        },
                         "volumeClaimTemplates": {
                             "description": "Specify additional volume claim 
template for Airflow Celery workers.",
                             "type": "array",
@@ -4365,6 +4422,63 @@
                                 "type": "string"
                             }
                         },
+                        "env": {
+                            "description": "Add additional env vars to the 
pods created with pod-template-file.",
+                            "type": "array",
+                            "default": [],
+                            "items": {
+                                "type": "object",
+                                "properties": {
+                                    "name": {
+                                        "type": "string"
+                                    },
+                                    "value": {
+                                        "type": "string"
+                                    },
+                                    "valueFrom": {
+                                        "type": "object",
+                                        "properties": {
+                                            "configMapKeyRef": {
+                                                "$ref": 
"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
+                                                "description": "Selects a key 
of a ConfigMap."
+                                            },
+                                            "secretKeyRef": {
+                                                "$ref": 
"#/definitions/io.k8s.api.core.v1.SecretKeySelector",
+                                                "description": "Selects a key 
of a secret in the pod's namespace"
+                                            }
+                                        },
+                                        "anyOf": [
+                                            {
+                                                "required": [
+                                                    "configMapKeyRef"
+                                                ]
+                                            },
+                                            {
+                                                "required": [
+                                                    "secretKeyRef"
+                                                ]
+                                            }
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "name"
+                                ],
+                                "anyOf": [
+                                    {
+                                        "required": [
+                                            "value"
+                                        ]
+                                    },
+                                    {
+                                        "required": [
+                                            "valueFrom"
+                                        ]
+                                    }
+                                ],
+                                "additionalProperties": false
+                            }
+                        },
                         "schedulerName": {
                             "description": "Specify kube scheduler name for 
pods created with pod-template-file.",
                             "type": [
diff --git a/chart/values.yaml b/chart/values.yaml
index e9f7876450b..3bdf20b5161 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1220,6 +1220,7 @@ workers:
       container: {}
 
   # Additional env variable configuration for Airflow Celery workers and pods 
created with pod-template-file
+  # (deprecated, use `workers.celery.env` and/or `workers.kubernetes.env` 
instead)
   env: []
 
   # Additional volume claim templates for Airflow Celery workers.
@@ -1612,6 +1613,9 @@ workers:
       securityContexts:
         container: {}
 
+    # Additional env variable configuration for Airflow Celery workers
+    env: []
+
     # Additional volume claim templates for Airflow Celery workers.
     # Requires mounting of specified volumes under extraVolumeMounts.
     volumeClaimTemplates: []
@@ -1787,6 +1791,9 @@ workers:
     # Labels specific to pods created with pod-template-file
     labels: {}
 
+    # Additional env variable configuration for pods created with 
pod-template-file
+    env: []
+
     schedulerName: ~
 
 # Airflow scheduler settings
diff --git a/helm-tests/tests/helm_tests/airflow_aux/test_pod_template_file.py 
b/helm-tests/tests/helm_tests/airflow_aux/test_pod_template_file.py
index 55a1fb94d4c..45b45700471 100644
--- a/helm-tests/tests/helm_tests/airflow_aux/test_pod_template_file.py
+++ b/helm-tests/tests/helm_tests/airflow_aux/test_pod_template_file.py
@@ -1339,10 +1339,24 @@ class TestPodTemplateFile:
             "tier": "airflow",
         }
 
-    def test_should_add_extraEnvs(self):
-        docs = render_chart(
-            values={
-                "workers": {
+    @pytest.mark.parametrize(
+        "workers_values",
+        [
+            {
+                "env": [
+                    {"name": "TEST_ENV_1", "value": "test_env_1"},
+                    {
+                        "name": "TEST_ENV_2",
+                        "valueFrom": {"secretKeyRef": {"name": "my-secret", 
"key": "my-key"}},
+                    },
+                    {
+                        "name": "TEST_ENV_3",
+                        "valueFrom": {"configMapKeyRef": {"name": 
"my-config-map", "key": "my-key"}},
+                    },
+                ]
+            },
+            {
+                "kubernetes": {
                     "env": [
                         {"name": "TEST_ENV_1", "value": "test_env_1"},
                         {
@@ -1356,6 +1370,27 @@ class TestPodTemplateFile:
                     ]
                 }
             },
+            {
+                "env": [{"name": "TEST", "value": "test"}],
+                "kubernetes": {
+                    "env": [
+                        {"name": "TEST_ENV_1", "value": "test_env_1"},
+                        {
+                            "name": "TEST_ENV_2",
+                            "valueFrom": {"secretKeyRef": {"name": 
"my-secret", "key": "my-key"}},
+                        },
+                        {
+                            "name": "TEST_ENV_3",
+                            "valueFrom": {"configMapKeyRef": {"name": 
"my-config-map", "key": "my-key"}},
+                        },
+                    ]
+                },
+            },
+        ],
+    )
+    def test_should_add_extraEnvs(self, workers_values):
+        docs = render_chart(
+            values={"workers": workers_values},
             show_only=["templates/pod-template-file.yaml"],
             chart_dir=self.temp_chart_dir,
         )
@@ -1363,6 +1398,7 @@ class TestPodTemplateFile:
         assert {"name": "TEST_ENV_1", "value": "test_env_1"} in 
jmespath.search(
             "spec.containers[0].env", docs[0]
         )
+        assert {"name": "TEST", "value": "test"} not in 
jmespath.search("spec.containers[0].env", docs[0])
         assert {
             "name": "TEST_ENV_2",
             "valueFrom": {"secretKeyRef": {"name": "my-secret", "key": 
"my-key"}},
diff --git a/helm-tests/tests/helm_tests/airflow_core/test_worker.py 
b/helm-tests/tests/helm_tests/airflow_core/test_worker.py
index 10124a25008..3e31d2d454e 100644
--- a/helm-tests/tests/helm_tests/airflow_core/test_worker.py
+++ b/helm-tests/tests/helm_tests/airflow_core/test_worker.py
@@ -418,10 +418,40 @@ class TestWorker:
             
jmespath.search("spec.template.spec.containers[0].volumeMounts[0].name", 
docs[0]) == "test-volume"
         )
 
-    def test_should_add_extraEnvs(self):
-        docs = render_chart(
-            values={
-                "workers": {
+    @pytest.mark.parametrize(
+        "workers_values",
+        [
+            {
+                "env": [
+                    {"name": "TEST_ENV_1", "value": "test_env_1"},
+                    {
+                        "name": "TEST_ENV_2",
+                        "valueFrom": {"secretKeyRef": {"name": "my-secret", 
"key": "my-key"}},
+                    },
+                    {
+                        "name": "TEST_ENV_3",
+                        "valueFrom": {"configMapKeyRef": {"name": 
"my-config-map", "key": "my-key"}},
+                    },
+                ],
+            },
+            {
+                "celery": {
+                    "env": [
+                        {"name": "TEST_ENV_1", "value": "test_env_1"},
+                        {
+                            "name": "TEST_ENV_2",
+                            "valueFrom": {"secretKeyRef": {"name": 
"my-secret", "key": "my-key"}},
+                        },
+                        {
+                            "name": "TEST_ENV_3",
+                            "valueFrom": {"configMapKeyRef": {"name": 
"my-config-map", "key": "my-key"}},
+                        },
+                    ],
+                }
+            },
+            {
+                "env": [{"name": "TEST", "value": "test"}],
+                "celery": {
                     "env": [
                         {"name": "TEST_ENV_1", "value": "test_env_1"},
                         {
@@ -435,12 +465,20 @@ class TestWorker:
                     ],
                 },
             },
+        ],
+    )
+    def test_should_add_extraEnvs(self, workers_values):
+        docs = render_chart(
+            values={"workers": workers_values},
             show_only=["templates/workers/worker-deployment.yaml"],
         )
 
         assert {"name": "TEST_ENV_1", "value": "test_env_1"} in 
jmespath.search(
             "spec.template.spec.containers[0].env", docs[0]
         )
+        assert {"name": "TEST", "value": "test"} not in jmespath.search(
+            "spec.template.spec.containers[0].env", docs[0]
+        )
         assert {
             "name": "TEST_ENV_2",
             "valueFrom": {"secretKeyRef": {"name": "my-secret", "key": 
"my-key"}},
diff --git a/helm-tests/tests/helm_tests/airflow_core/test_worker_sets.py 
b/helm-tests/tests/helm_tests/airflow_core/test_worker_sets.py
index 74bb2f63342..a2695fe39e4 100644
--- a/helm-tests/tests/helm_tests/airflow_core/test_worker_sets.py
+++ b/helm-tests/tests/helm_tests/airflow_core/test_worker_sets.py
@@ -3362,6 +3362,13 @@ class TestWorkerSets:
                     "sets": [{"name": "set1", "env": [{"name": "TEST_ENV_1", 
"value": "test_env_1"}]}],
                 },
             },
+            {
+                "celery": {
+                    "enableDefault": False,
+                    "env": [{"name": "TEST", "value": "test"}],
+                    "sets": [{"name": "set1", "env": [{"name": "TEST_ENV_1", 
"value": "test_env_1"}]}],
+                },
+            },
         ],
     )
     def test_overwrite_env(self, workers_values):

Reply via email to