From 04a23fab5e26fc9956f75a1309d339ed14ce2844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Mirowski?= Date: Sun, 29 Mar 2026 16:06:45 +0200 Subject: [PATCH] [chart/v1-2x-test] Add workers.celery.extraPorts (#61919) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add workers.celery.extraPorts * Add newsfragment (cherry picked from commit f0d5b38b3d597f26eb0029bd884d255c2b1419b4) Co-authored-by: Przemysław Mirowski --- chart/newsfragments/61919.significant.rst | 1 + chart/templates/NOTES.txt | 8 +++++++ chart/values.schema.json | 10 ++++++++- chart/values.yaml | 4 ++++ .../helm_tests/airflow_core/test_worker.py | 21 +++++++++++++++++++ .../airflow_core/test_worker_sets.py | 16 ++++++++++++++ 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 chart/newsfragments/61919.significant.rst diff --git a/chart/newsfragments/61919.significant.rst b/chart/newsfragments/61919.significant.rst new file mode 100644 index 0000000000000..996df952b2780 --- /dev/null +++ b/chart/newsfragments/61919.significant.rst @@ -0,0 +1 @@ +``workers.extraPorts`` section is now deprecated in favor of ``workers.celery.extraPorts``. Please update your configuration accordingly. diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt index 55852c89ecf16..989d6dfb05f4b 100644 --- a/chart/templates/NOTES.txt +++ b/chart/templates/NOTES.txt @@ -637,6 +637,14 @@ DEPRECATION WARNING: {{- end }} +{{- if not (empty .Values.workers.extraPorts) }} + + DEPRECATION WARNING: + `workers.extraPorts` has been renamed to `workers.celery.extraPorts`. + 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 b724734ce2d46..c6b06707539fa 100644 --- a/chart/values.schema.json +++ b/chart/values.schema.json @@ -2309,7 +2309,7 @@ } }, "extraPorts": { - "description": "Expose additional ports of Airflow Celery worker container.", + "description": "Expose additional ports of Airflow Celery worker container (deprecated, use `workers.celery.extraPorts` instead).", "type": "array", "default": [], "items": { @@ -3294,6 +3294,14 @@ ], "default": null }, + "extraPorts": { + "description": "Expose additional ports of Airflow Celery worker container.", + "type": "array", + "default": [], + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + } + }, "nodeSelector": { "description": "Select certain nodes for Airflow Celery worker pods.", "type": "object", diff --git a/chart/values.yaml b/chart/values.yaml index f135ea8eb29f5..b10b06fca8990 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1055,6 +1055,7 @@ workers: # readOnly: true # Expose additional ports of Airflow Celery workers. These can be used for additional metric collection. + # (deprecated, use workers.celery.extraPorts instead) extraPorts: [] # Select certain nodes for Airflow Celery worker pods and pods created with pod-template-file @@ -1383,6 +1384,9 @@ workers: # This setting tells kubernetes that its ok to evict when it wants to scale a node down safeToEvict: ~ + # Expose additional ports of Airflow Celery workers. These can be used for additional metric collection. + extraPorts: [] + # Select certain nodes for Airflow Celery worker pods nodeSelector: {} 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 0aa34273eeda0..d08df7c07dad2 100644 --- a/helm-tests/tests/helm_tests/airflow_core/test_worker.py +++ b/helm-tests/tests/helm_tests/airflow_core/test_worker.py @@ -1920,6 +1920,27 @@ def test_termination_grace_period(self, workers_values): assert jmespath.search("spec.template.spec.terminationGracePeriodSeconds", docs[0]) == 5 + @pytest.mark.parametrize( + "workers_values", + [ + {"extraPorts": [{"name": "test-extra-port", "containerPort": 10}]}, + {"celery": {"extraPorts": [{"name": "test-extra-port", "containerPort": 10}]}}, + { + "extraPorts": [{"name": "test", "containerPort": 1}], + "celery": {"extraPorts": [{"name": "test-extra-port", "containerPort": 10}]}, + }, + ], + ) + def test_overwrite_extra_ports(self, workers_values): + docs = render_chart( + values={"workers": workers_values}, + show_only=["templates/workers/worker-deployment.yaml"], + ) + + assert jmespath.search("spec.template.spec.containers[0].ports[:-1]", docs[0]) == [ + {"name": "test-extra-port", "containerPort": 10} + ] + class TestWorkerLogGroomer(LogGroomerTestBase): """Worker groomer.""" 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 d5f3180b22bcf..ef6dcb39f655b 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 @@ -2430,6 +2430,13 @@ def test_overwrite_extra_volume_mounts(self, workers_values): "extraPorts": [{"name": "test-extra-port", "containerPort": 10}], "celery": {"enableDefault": False, "sets": [{"name": "set1"}]}, }, + { + "celery": { + "extraPorts": [{"name": "test-extra-port", "containerPort": 10}], + "enableDefault": False, + "sets": [{"name": "set1"}], + }, + }, { "extraPorts": [{"name": "test", "containerPort": 1}], "celery": { @@ -2439,6 +2446,15 @@ def test_overwrite_extra_volume_mounts(self, workers_values): ], }, }, + { + "celery": { + "extraPorts": [{"name": "test", "containerPort": 1}], + "enableDefault": False, + "sets": [ + {"name": "set1", "extraPorts": [{"name": "test-extra-port", "containerPort": 10}]} + ], + }, + }, ], ) def test_overwrite_extra_ports(self, workers_values):