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

jscheffl 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 958e9267e1e Add workers.celery.priorityClassName & 
workers.kubernetes.priorityClassName (#61961)
958e9267e1e is described below

commit 958e9267e1e5c3e401f29248bd12ea19e33d8ac4
Author: Przemysław Mirowski <[email protected]>
AuthorDate: Mon Mar 30 23:19:05 2026 +0200

    Add workers.celery.priorityClassName & workers.kubernetes.priorityClassName 
(#61961)
    
    * Add workers.celery.priorityClassName & 
workers.kubernetes.priorityClassName
    
    * Add deprecations
---
 chart/files/pod-template-file.kubernetes-helm-yaml     |  4 ++--
 chart/newsfragments/61961.significant.rst              |  1 +
 chart/templates/NOTES.txt                              |  8 ++++++++
 chart/values.schema.json                               | 18 +++++++++++++++++-
 chart/values.yaml                                      |  7 +++++++
 .../helm_tests/airflow_aux/test_airflow_common.py      | 12 ++++++++++--
 .../helm_tests/airflow_aux/test_pod_template_file.py   | 16 ++++++++++------
 .../tests/helm_tests/airflow_core/test_worker_sets.py  |  7 +++++++
 8 files changed, 62 insertions(+), 11 deletions(-)

diff --git a/chart/files/pod-template-file.kubernetes-helm-yaml 
b/chart/files/pod-template-file.kubernetes-helm-yaml
index 29c0d949350..9b9bb1083b5 100644
--- a/chart/files/pod-template-file.kubernetes-helm-yaml
+++ b/chart/files/pod-template-file.kubernetes-helm-yaml
@@ -216,8 +216,8 @@ spec:
     {{- if .Values.workers.extraContainers }}
       {{- tpl (toYaml .Values.workers.extraContainers) . | nindent 4 }}
     {{- end }}
-  {{- if .Values.workers.priorityClassName }}
-  priorityClassName: {{ .Values.workers.priorityClassName }}
+  {{- if or .Values.workers.kubernetes.priorityClassName 
.Values.workers.priorityClassName }}
+  priorityClassName: {{ .Values.workers.kubernetes.priorityClassName | default 
.Values.workers.priorityClassName }}
   {{- end }}
   {{- if .Values.workers.runtimeClassName }}
   runtimeClassName: {{ .Values.workers.runtimeClassName }}
diff --git a/chart/newsfragments/61961.significant.rst 
b/chart/newsfragments/61961.significant.rst
new file mode 100644
index 00000000000..2cdfe607a24
--- /dev/null
+++ b/chart/newsfragments/61961.significant.rst
@@ -0,0 +1 @@
+``workers.priorityClassName`` section is now deprecated in favor of 
``workers.celery.priorityClassName`` and 
``workers.kubernetes.priorityClassName``. Please update your configuration 
accordingly.
diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt
index 28f43dc78f8..417e0c626c5 100644
--- a/chart/templates/NOTES.txt
+++ b/chart/templates/NOTES.txt
@@ -629,6 +629,14 @@ DEPRECATION WARNING:
 
 {{- end }}
 
+{{- if not (empty .Values.workers.priorityClassName) }}
+
+ DEPRECATION WARNING:
+    `workers.priorityClassName` has been renamed to 
`workers.celery.priorityClassName`/`workers.kubernetes.priorityClassName`.
+    Please change your values as support for the old name will be dropped in a 
future release.
+
+{{- end }}
+
 {{- if not (empty .Values.workers.nodeSelector) }}
 
  DEPRECATION WARNING:
diff --git a/chart/values.schema.json b/chart/values.schema.json
index c94689aa0dd..ef10a2e8cee 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -2349,7 +2349,7 @@
                     "default": null
                 },
                 "priorityClassName": {
-                    "description": "Specify priority for Airflow Celery worker 
pods and pods created with pod-template-file.",
+                    "description": "Specify priority for Airflow Celery worker 
pods and pods created with pod-template-file (deprecated, use 
``workers.celery.priorityClassName`` and/or 
``workers.kubernetes.priorityClassName`` instead).",
                     "type": [
                         "string",
                         "null"
@@ -3310,6 +3310,14 @@
                                 "type": "string"
                             }
                         },
+                        "priorityClassName": {
+                            "description": "Specify priority for Airflow 
Celery worker pods.",
+                            "type": [
+                                "string",
+                                "null"
+                            ],
+                            "default": null
+                        },
                         "hostAliases": {
                             "description": "Specify HostAliases for Airflow 
Celery worker pods.",
                             "items": {
@@ -3629,6 +3637,14 @@
                                 "type": "string"
                             }
                         },
+                        "priorityClassName": {
+                            "description": "Specify priority for pods created 
with pod-template-file.",
+                            "type": [
+                                "string",
+                                "null"
+                            ],
+                            "default": null
+                        },
                         "hostAliases": {
                             "description": "Specify HostAliases for pods 
created with pod-template-file.",
                             "items": {
diff --git a/chart/values.yaml b/chart/values.yaml
index 68f97bc05d9..8b61014246e 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1063,7 +1063,10 @@ workers:
   nodeSelector: {}
 
   runtimeClassName: ~
+
+  # (deprecated, use workers.celery.priorityClassName and/or 
workers.kubernetes.priorityClassName instead)
   priorityClassName: ~
+
   affinity: {}
   # Default Airflow Celery worker affinity is:
   #  podAntiAffinity:
@@ -1392,6 +1395,8 @@ workers:
     # Select certain nodes for Airflow Celery worker pods
     nodeSelector: {}
 
+    priorityClassName: ~
+
     # hostAliases to use in Airflow Celery worker pods
     # See:
     # 
https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
@@ -1476,6 +1481,8 @@ workers:
     # Select certain nodes for pods created with pod-template-file
     nodeSelector: {}
 
+    priorityClassName: ~
+
     # hostAliases to use in pods created with pod-template-file
     # See:
     # 
https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
diff --git a/helm-tests/tests/helm_tests/airflow_aux/test_airflow_common.py 
b/helm-tests/tests/helm_tests/airflow_aux/test_airflow_common.py
index 9234d8ea116..1e237572763 100644
--- a/helm-tests/tests/helm_tests/airflow_aux/test_airflow_common.py
+++ b/helm-tests/tests/helm_tests/airflow_aux/test_airflow_common.py
@@ -491,7 +491,15 @@ class TestAirflowCommon:
         for doc in docs:
             assert expected_mount in 
jmespath.search("spec.template.spec.initContainers[0].volumeMounts", doc)
 
-    def test_priority_class_name(self):
+    @pytest.mark.parametrize(
+        "workers_values",
+        [
+            {"priorityClassName": "low-priority-worker"},
+            {"celery": {"priorityClassName": "low-priority-worker"}},
+            {"priorityClassName": "test", "celery": {"priorityClassName": 
"low-priority-worker"}},
+        ],
+    )
+    def test_priority_class_name(self, workers_values):
         docs = render_chart(
             values={
                 "executor": "CeleryExecutor,KubernetesExecutor",
@@ -502,7 +510,7 @@ class TestAirflowCommon:
                 "triggerer": {"priorityClassName": "low-priority-triggerer"},
                 "dagProcessor": {"priorityClassName": 
"low-priority-dag-processor"},
                 "webserver": {"priorityClassName": "low-priority-webserver"},
-                "workers": {"priorityClassName": "low-priority-worker"},
+                "workers": workers_values,
                 "cleanup": {"enabled": True, "priorityClassName": 
"low-priority-airflow-cleanup-pods"},
                 "databaseCleanup": {"enabled": True, "priorityClassName": 
"low-priority-database-cleanup"},
                 "migrateDatabaseJob": {"priorityClassName": 
"low-priority-run-airflow-migrations"},
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 4ff0b496daa..48875e0f517 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
@@ -1190,13 +1190,17 @@ class TestPodTemplateFile:
             {"ip": "127.0.0.2", "hostnames": ["test.hostname"]}
         ]
 
-    def test_workers_priority_class_name(self):
+    @pytest.mark.parametrize(
+        "workers_values",
+        [
+            {"priorityClassName": "test-priority"},
+            {"kubernetes": {"priorityClassName": "test-priority"}},
+            {"priorityClassName": "test", "kubernetes": {"priorityClassName": 
"test-priority"}},
+        ],
+    )
+    def test_workers_priority_class_name(self, workers_values):
         docs = render_chart(
-            values={
-                "workers": {
-                    "priorityClassName": "test-priority",
-                },
-            },
+            values={"workers": workers_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_sets.py 
b/helm-tests/tests/helm_tests/airflow_core/test_worker_sets.py
index 076a3fd305b..6cd8b983154 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
@@ -2542,6 +2542,13 @@ class TestWorkerSets:
                     "sets": [{"name": "set1", "priorityClassName": 
"test-class"}],
                 },
             },
+            {
+                "celery": {
+                    "priorityClassName": "test",
+                    "enableDefault": False,
+                    "sets": [{"name": "set1", "priorityClassName": 
"test-class"}],
+                },
+            },
         ],
     )
     def test_overwrite_priority_class_name(self, workers_values):

Reply via email to