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):