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 afcde65e4d1 [chart/v1-2x-test] Add workers.celery.schedulerName & 
workers.kubernetes.schedulerName (#62030) (#64759)
afcde65e4d1 is described below

commit afcde65e4d129817affb694fd5f214ddd1544013
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Apr 6 13:00:52 2026 +0200

    [chart/v1-2x-test] Add workers.celery.schedulerName & 
workers.kubernetes.schedulerName (#62030) (#64759)
    
    * Add workers.celery.schedulerName & workers.kubernetes.schedulerName
    
    * Deprecate section
    (cherry picked from commit a2456efbdde6ba99fdf95fcd997fdf959f6e56d3)
    
    Co-authored-by: Przemysław Mirowski 
<[email protected]>
---
 chart/files/pod-template-file.kubernetes-helm-yaml |  2 +-
 chart/newsfragments/62030.significant.rst          |  1 +
 chart/templates/NOTES.txt                          |  8 ++++++
 chart/values.schema.json                           | 20 ++++++++++++-
 chart/values.yaml                                  |  7 +++++
 .../airflow_aux/test_pod_template_file.py          | 20 +++++++++----
 .../tests/helm_tests/airflow_core/test_worker.py   | 20 +++++++++----
 .../helm_tests/airflow_core/test_worker_sets.py    | 33 ++++++++++++++++++++++
 8 files changed, 97 insertions(+), 14 deletions(-)

diff --git a/chart/files/pod-template-file.kubernetes-helm-yaml 
b/chart/files/pod-template-file.kubernetes-helm-yaml
index 59fd6d82f7d..902391cd1a9 100644
--- a/chart/files/pod-template-file.kubernetes-helm-yaml
+++ b/chart/files/pod-template-file.kubernetes-helm-yaml
@@ -30,7 +30,7 @@
 {{- $containerLifecycleHooks := or 
.Values.workers.kubernetes.containerLifecycleHooks 
.Values.workers.containerLifecycleHooks .Values.containerLifecycleHooks }}
 {{- $safeToEvict := dict "cluster-autoscaler.kubernetes.io/safe-to-evict" (or 
.Values.workers.kubernetes.safeToEvict (and (not (has 
.Values.workers.kubernetes.safeToEvict (list true false))) 
.Values.workers.safeToEvict) | toString) }}
 {{- $podAnnotations := mergeOverwrite (deepCopy .Values.airflowPodAnnotations) 
$safeToEvict .Values.workers.podAnnotations }}
-{{- $schedulerName := or .Values.workers.schedulerName .Values.schedulerName }}
+{{- $schedulerName := or .Values.workers.kubernetes.schedulerName 
.Values.workers.schedulerName .Values.schedulerName }}
 apiVersion: v1
 kind: Pod
 metadata:
diff --git a/chart/newsfragments/62030.significant.rst 
b/chart/newsfragments/62030.significant.rst
new file mode 100644
index 00000000000..3606c90d11b
--- /dev/null
+++ b/chart/newsfragments/62030.significant.rst
@@ -0,0 +1 @@
+``workers.schedulerName`` field is now deprecated in favor of 
``workers.celery.schedulerName`` and ``workers.kubernetes.schedulerName``. 
Please update your configuration accordingly.
diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt
index 520717c6b29..fc7b9474c1c 100644
--- a/chart/templates/NOTES.txt
+++ b/chart/templates/NOTES.txt
@@ -669,6 +669,14 @@ DEPRECATION WARNING:
 
 {{- end }}
 
+{{- if not (empty .Values.workers.schedulerName) }}
+
+ DEPRECATION WARNING:
+    `workers.schedulerName` has been renamed to 
`workers.celery.schedulerName`/`workers.kubernetes.schedulerName`.
+    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 de8aca2a4fc..c3c08557b9f 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -2419,7 +2419,7 @@
                     }
                 },
                 "schedulerName": {
-                    "description": "Specify kube scheduler name for Airflow 
Celery workers objects and pods created with pod-template-file.",
+                    "description": "Specify kube scheduler name for Airflow 
Celery workers objects and pods created with pod-template-file (deprecated, use 
``workers.celery.schedulerName`` and/or ``workers.kubernetes.schedulerName`` 
instead).",
                     "type": [
                         "string",
                         "null"
@@ -3347,6 +3347,15 @@
                                     ]
                                 }
                             ]
+                        },
+                        "schedulerName": {
+                            "description": "Specify kube scheduler name for 
Airflow Celery worker pods.",
+                            "type": [
+                                "string",
+                                "null"
+                            ],
+                            "default": null,
+                            "x-docsSection": "Common"
                         }
                     }
                 },
@@ -3682,6 +3691,15 @@
                                     ]
                                 }
                             ]
+                        },
+                        "schedulerName": {
+                            "description": "Specify kube scheduler name for 
pods created with pod-template-file.",
+                            "type": [
+                                "string",
+                                "null"
+                            ],
+                            "default": null,
+                            "x-docsSection": "Common"
                         }
                     }
                 }
diff --git a/chart/values.yaml b/chart/values.yaml
index 66c2e056dd0..28a632061b4 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1173,6 +1173,9 @@ workers:
   #         requests:
   #           storage: "20Gi"
 
+  # (deprecated, use `workers.celery.schedulerName` and/or 
`workers.kubernetes.schedulerName` instead)
+  schedulerName: ~
+
   celery:
     # Number of Airflow Celery workers
     replicas: ~
@@ -1400,6 +1403,8 @@ workers:
     #   hostnames:
     #   - "test.hostname.two"
 
+    schedulerName: ~
+
   kubernetes:
     # Command to use in pod-template-file (templated)
     command: ~
@@ -1488,6 +1493,8 @@ workers:
     #   hostnames:
     #   - "test.hostname.two"
 
+    schedulerName: ~
+
 # Airflow scheduler settings
 scheduler:
   enabled: true
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 d4bd01ca82f..a963638459c 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
@@ -681,18 +681,26 @@ class TestPodTemplateFile:
         assert jmespath.search("spec.nodeSelector", docs[0]) == {"diskType": 
"ssd"}
 
     @pytest.mark.parametrize(
-        ("base_scheduler_name", "worker_scheduler_name", "expected"),
+        ("base_scheduler_name", "worker_values", "expected"),
         [
-            ("default-scheduler", "most-allocated", "most-allocated"),
-            ("default-scheduler", None, "default-scheduler"),
-            (None, None, None),
+            ("default-scheduler", {"schedulerName": "most-allocated"}, 
"most-allocated"),
+            ("default-scheduler", {"kubernetes": {"schedulerName": 
"most-allocated"}}, "most-allocated"),
+            (
+                "default-scheduler",
+                {"schedulerName": "least-allocated", "kubernetes": 
{"schedulerName": "most-allocated"}},
+                "most-allocated",
+            ),
+            ("default-scheduler", {"schedulerName": None}, 
"default-scheduler"),
+            ("default-scheduler", {"kubernetes": {"schedulerName": None}}, 
"default-scheduler"),
+            (None, {"schedulerName": None}, None),
+            (None, {"kubernetes": {"schedulerName": None}}, None),
         ],
     )
-    def test_scheduler_name(self, base_scheduler_name, worker_scheduler_name, 
expected):
+    def test_scheduler_name(self, base_scheduler_name, worker_values, 
expected):
         docs = render_chart(
             values={
                 "schedulerName": base_scheduler_name,
-                "workers": {"schedulerName": worker_scheduler_name},
+                "workers": worker_values,
             },
             show_only=["templates/pod-template-file.yaml"],
             chart_dir=self.temp_chart_dir,
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 2e663e10b41..b017476b569 100644
--- a/helm-tests/tests/helm_tests/airflow_core/test_worker.py
+++ b/helm-tests/tests/helm_tests/airflow_core/test_worker.py
@@ -695,18 +695,26 @@ class TestWorker:
         assert jmespath.search("spec.template.spec.nodeSelector", docs[0]) == 
{"diskType": "ssd"}
 
     @pytest.mark.parametrize(
-        ("base_scheduler_name", "worker_scheduler_name", "expected"),
+        ("base_scheduler_name", "worker_values", "expected"),
         [
-            ("default-scheduler", "most-allocated", "most-allocated"),
-            ("default-scheduler", None, "default-scheduler"),
-            (None, None, None),
+            ("default-scheduler", {"schedulerName": "most-allocated"}, 
"most-allocated"),
+            ("default-scheduler", {"celery": {"schedulerName": 
"most-allocated"}}, "most-allocated"),
+            (
+                "default-scheduler",
+                {"schedulerName": "least-allocated", "celery": 
{"schedulerName": "most-allocated"}},
+                "most-allocated",
+            ),
+            ("default-scheduler", {"schedulerName": None}, 
"default-scheduler"),
+            ("default-scheduler", {"celery": {"schedulerName": None}}, 
"default-scheduler"),
+            (None, {"schedulerName": None}, None),
+            (None, {"celery": {"schedulerName": None}}, None),
         ],
     )
-    def test_scheduler_name(self, base_scheduler_name, worker_scheduler_name, 
expected):
+    def test_scheduler_name(self, base_scheduler_name, worker_values, 
expected):
         docs = render_chart(
             values={
                 "schedulerName": base_scheduler_name,
-                "workers": {"schedulerName": worker_scheduler_name},
+                "workers": worker_values,
             },
             show_only=["templates/workers/worker-deployment.yaml"],
         )
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 b82b96c503f..50e7ff454c4 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
@@ -3070,3 +3070,36 @@ class TestWorkerSets:
                 },
             }
         ]
+
+    @pytest.mark.parametrize(
+        "workers_values",
+        [
+            {
+                "schedulerName": "most-allocated",
+                "celery": {"enableDefault": False, "sets": [{"name": "set1"}]},
+            },
+            {
+                "schedulerName": "test",
+                "celery": {
+                    "enableDefault": False,
+                    "sets": [{"name": "set1", "schedulerName": 
"most-allocated"}],
+                },
+            },
+            {
+                "celery": {
+                    "schedulerName": "test",
+                    "enableDefault": False,
+                    "sets": [{"name": "set1", "schedulerName": 
"most-allocated"}],
+                },
+            },
+        ],
+    )
+    def test_overwrite_scheduler_name(self, workers_values):
+        docs = render_chart(
+            values={
+                "workers": workers_values,
+            },
+            show_only=["templates/workers/worker-deployment.yaml"],
+        )
+
+        assert jmespath.search("spec.template.spec.schedulerName", docs[0]) == 
"most-allocated"

Reply via email to