This is an automated email from the ASF dual-hosted git repository.
jedcunningham 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 48d8453142c Update Helm Chart release notes for 1.19.0 (#61193)
48d8453142c is described below
commit 48d8453142c3ecf04acc6afcd83fa75cf951ed18
Author: Jed Cunningham <[email protected]>
AuthorDate: Thu Jan 29 20:18:10 2026 -0700
Update Helm Chart release notes for 1.19.0 (#61193)
Co-authored-by: Przemysław Mirowski <[email protected]>
---
chart/Chart.yaml | 400 +++++++++++++++++++++++++++---
chart/RELEASE_NOTES.rst | 167 +++++++++++++
chart/newsfragments/50394.significant.rst | 1 -
chart/newsfragments/51792.significant.rst | 11 -
chart/newsfragments/54085.significant.rst | 3 -
chart/newsfragments/57615.misc.rst | 1 -
chart/newsfragments/58547.significant.rst | 22 --
chart/newsfragments/59156.significant.rst | 7 -
chart/newsfragments/59730.significant.rst | 3 -
chart/newsfragments/60163.significant.rst | 3 -
chart/newsfragments/60186.significant.rst | 3 -
chart/newsfragments/60238.significant.rst | 3 -
chart/newsfragments/60242.improvement.rst | 1 -
chart/newsfragments/60354.significant.rst | 3 -
chart/newsfragments/60453.significant.rst | 3 -
chart/reproducible_build.yaml | 4 +-
16 files changed, 532 insertions(+), 103 deletions(-)
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 3f775d334b1..3bea453b036 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -19,7 +19,7 @@
---
apiVersion: v2
name: airflow
-version: 1.19.0-dev
+version: 1.19.0
appVersion: 3.1.6
description: The official Helm chart to deploy Apache Airflow, a platform to
programmatically author, schedule, and monitor workflows
@@ -63,61 +63,387 @@ annotations:
- title: Code View
url:
https://airflow.apache.org/docs/apache-airflow/3.1.6/_images/dag_overview_code.png
artifacthub.io/changes: |
- - description: Allow ConfigMap and Secret references in ``apiServer.env``
+ - description: Add ``PodDisruptionBudget`` for Dag Processor
+ kind: added
+ links:
+ - name: '#60294'
+ url: https://github.com/apache/airflow/pull/60294
+ - description: Add ``PodDisruptionBudget`` for Triggerer and Workers
+ kind: added
+ links:
+ - name: '#59068'
+ url: https://github.com/apache/airflow/pull/59068
+ - description: Add ``HorizontalPodAutoscaler`` (HPA) for API Server
+ kind: added
+ links:
+ - name: '#52392'
+ url: https://github.com/apache/airflow/pull/52392
+ - description: Add support for launching jobs with
``KubernetesJobOperator``
+ kind: added
+ links:
+ - name: '#52024'
+ url: https://github.com/apache/airflow/pull/52024
+ - description: Add ``CronJob`` to clean old records in the database
+ kind: added
+ links:
+ - name: '#58155'
+ url: https://github.com/apache/airflow/pull/58155
+ - description: Improve dag_bundle_config_list Configuration
+ kind: changed
+ links:
+ - name: '#60645'
+ url: https://github.com/apache/airflow/pull/60645
+ - description: Add ``workers.celery.kerberosInitContainer`` &
``workers.kubernetes.kerberosInitContainer``
+ kind: changed
+ links:
+ - name: '#60751'
+ url: https://github.com/apache/airflow/pull/60751
+ - description: Add ``workers.celery.securityContexts`` &
``workers.kubernetes.securityContexts``
+ kind: changed
+ links:
+ - name: '#60396'
+ url: https://github.com/apache/airflow/pull/60396
+ - description: Add ``workers.celery.podManagementPolicy`` field
+ kind: changed
+ links:
+ - name: '#60359'
+ url: https://github.com/apache/airflow/pull/60359
+ - description: Add ``workers.celery.strategy`` field
+ kind: changed
+ links:
+ - name: '#60354'
+ url: https://github.com/apache/airflow/pull/60354
+ - description: Add ``workers.celery.updateStrategy`` field
+ kind: changed
+ links:
+ - name: '#60351'
+ url: https://github.com/apache/airflow/pull/60351
+ - description: Add ``workers.celery.persistence`` section
+ kind: changed
+ links:
+ - name: '#60238'
+ url: https://github.com/apache/airflow/pull/60238
+ - description: Add ``workers.celery.livenessProbe`` section
+ kind: changed
+ links:
+ - name: '#60186'
+ url: https://github.com/apache/airflow/pull/60186
+ - description: Add ``workers.celery.args`` field
+ kind: changed
+ links:
+ - name: '#60163'
+ url: https://github.com/apache/airflow/pull/60163
+ - description: Add ``workers.celery.command`` &
``workers.kubernetes.command``
+ kind: changed
+ links:
+ - name: '#60067'
+ url: https://github.com/apache/airflow/pull/60067
+ - description: Allow custom ``volumeClaimTemplates`` when
``logs.persistence.enabled``
+ is true
+ kind: changed
+ links:
+ - name: '#60118'
+ url: https://github.com/apache/airflow/pull/60118
+ - description: Add checksum for JWT secret in API server and scheduler
deployments
+ kind: changed
+ links:
+ - name: '#60111'
+ url: https://github.com/apache/airflow/pull/60111
+ - description: Add ``workers.celery.revisionHistoryLimit`` field
+ kind: changed
+ links:
+ - name: '#60056'
+ url: https://github.com/apache/airflow/pull/60056
+ - description: Add Redis StatefulSet
``persistentVolumeClaimRetentionPolicy`` support
kind: changed
links:
- - name: '#51191'
- url: https://github.com/apache/airflow/pull/51191
- - description: Add custom annotations to JWT Secret
+ - name: '#59955'
+ url: https://github.com/apache/airflow/pull/59955
+ - description: Add ``workers.celery.replicas`` field
kind: changed
links:
- - name: '#52166'
- url: https://github.com/apache/airflow/pull/52166
- - description: Allow ``valuesFrom`` in ``gitSync.env``
+ - name: '#59730'
+ url: https://github.com/apache/airflow/pull/59730
+ - description: Add custom envs to database cleanup
kind: changed
links:
- - name: '#50228'
- url: https://github.com/apache/airflow/pull/50228
- - description: Fix JWT secret name
+ - name: '#59804'
+ url: https://github.com/apache/airflow/pull/59804
+ - description: Extend ``airflow_ti_running`` metrics by scheduled, queued
and deferred
+ kind: changed
+ links:
+ - name: '#58819'
+ url: https://github.com/apache/airflow/pull/58819
+ - description: Create an explicit control for ``createUserJob``
+ kind: changed
+ links:
+ - name: '#56057'
+ url: https://github.com/apache/airflow/pull/56057
+ - description: Make cleanup cronjob conditional on kubernetes executor
+ kind: changed
+ links:
+ - name: '#58695'
+ url: https://github.com/apache/airflow/pull/58695
+ - description: Add database cleanup options and remove deprecated
``securityContext``
+ field
+ kind: changed
+ links:
+ - name: '#58663'
+ url: https://github.com/apache/airflow/pull/58663
+ - description: Add ability to disable API Server
+ kind: changed
+ links:
+ - name: '#56493'
+ url: https://github.com/apache/airflow/pull/56493
+ - description: Add ``registry.secretNames`` and ``registry.connections``
options
+ kind: changed
+ links:
+ - name: '#58094'
+ url: https://github.com/apache/airflow/pull/58094
+ - description: Allow custom labels in StatsD, redis and Dag Processor
+ kind: changed
+ links:
+ - name: '#55832'
+ url: https://github.com/apache/airflow/pull/55832
+ - description: Allow setting ``restartPolicy`` for batch jobs in chart
+ kind: changed
+ links:
+ - name: '#54354'
+ url: https://github.com/apache/airflow/pull/54354
+ - description: Add readiness and liveliness support for git sync relay
sidecars
+ kind: changed
+ links:
+ - name: '#50218'
+ url: https://github.com/apache/airflow/pull/50218
+ - description: Allow overriding ``schedulerName`` on worker/tasks pods
+ kind: changed
+ links:
+ - name: '#53983'
+ url: https://github.com/apache/airflow/pull/53983
+ - description: Allow additional ``PodDisruptionBudget`` config properties
+ kind: changed
+ links:
+ - name: '#58864'
+ url: https://github.com/apache/airflow/pull/58864
+ - description: Add EdgeExecutor to KEDA query
+ kind: changed
+ links:
+ - name: '#55560'
+ url: https://github.com/apache/airflow/pull/55560
+ - description: Allow ``revisionHistoryLimit`` to be set to 0
+ kind: changed
+ links:
+ - name: '#60340'
+ url: https://github.com/apache/airflow/pull/60340
+ - description: Allow optional ``subPath`` for logs volume mount
+ kind: changed
+ links:
+ - name: '#52350'
+ url: https://github.com/apache/airflow/pull/52350
+ - description: Move triggerer from ``pod-log-reader-role`` to
``pod-launcher-role``
+ kind: changed
+ links:
+ - name: '#56872'
+ url: https://github.com/apache/airflow/pull/56872
+ - description: Use the ``bitnamilegacy/postgresql`` image
+ kind: fixed
+ links:
+ - name: '#61156'
+ url: https://github.com/apache/airflow/pull/61156
+ - description: Fix Compatibility of Celery Worker Sets with Workers
Separation
kind: fixed
links:
- - name: '#52268'
- url: https://github.com/apache/airflow/pull/52268
- - description: Use ``api-server`` instead of ``webserver`` in NOTES.txt
for Airflow
- 3.0+
+ - name: '#60420'
+ url: https://github.com/apache/airflow/pull/60420
+ - description: Fix database cleanup cronjob ImagePullSecrets
kind: fixed
links:
- - name: '#52194'
- url: https://github.com/apache/airflow/pull/52194
- - description: Change default executor in pod template to support executor
parameter
- in task
+ - name: '#58626'
+ url: https://github.com/apache/airflow/pull/58626
+ - description: Remove ``workers.celery`` breaking change
kind: fixed
links:
- - name: '#49433'
- url: https://github.com/apache/airflow/pull/49433
- - description: Use ``merged`` to render airflow.cfg and include computed
defaults
+ - name: '#61049'
+ url: https://github.com/apache/airflow/pull/61049
+ - description: Fix missing templating in API Server ``extraInitContainers``
kind: fixed
links:
- - name: '#51828'
- url: https://github.com/apache/airflow/pull/51828
- - description: Use ``[api] secret_key`` for Airflow 3.0+ instead of
``[webserver]
- secret_key``
+ - name: '#60812'
+ url: https://github.com/apache/airflow/pull/60812
+ - description: Fix ``securityContext.containers``/``ingress.apiServer`` in
values.schema.json
kind: fixed
links:
- - name: '#52269'
- url: https://github.com/apache/airflow/pull/52269
- - description: Fix for ``fernetkey`` and add test of its value
+ - name: '#60575'
+ url: https://github.com/apache/airflow/pull/60575
+ - description: Remove unused ``containerLifecycleHooks`` field
kind: fixed
links:
- - name: '#52977'
- url: https://github.com/apache/airflow/pull/52977
- - description: 'Docs: Update supported executors in docs'
+ - name: '#60239'
+ url: https://github.com/apache/airflow/pull/60239
+ - description: Remove unneeded logic in api-server
+ kind: fixed
+ links:
+ - name: '#60147'
+ url: https://github.com/apache/airflow/pull/60147
+ - description: Remove ``defaultUser`` from API Server in values.schema.json
+ kind: fixed
+ links:
+ - name: '#59762'
+ url: https://github.com/apache/airflow/pull/59762
+ - description: Isolate ``defaultUser`` handling in ``createUserJob``
+ kind: fixed
+ links:
+ - name: '#59767'
+ url: https://github.com/apache/airflow/pull/59767
+ - description: Fix rendering condition of ``git_sync_ssh_key_volume``
+ kind: fixed
+ links:
+ - name: '#59418'
+ url: https://github.com/apache/airflow/pull/59418
+ - description: Add watch for events to the Pod launcher role
+ kind: fixed
+ links:
+ - name: '#59080'
+ url: https://github.com/apache/airflow/pull/59080
+ - description: Ensure that git-sync actually runs when
``dags.gitSync.enabled=true``
+ and ``dags.persistence.enabled=true``
+ kind: fixed
+ links:
+ - name: '#59123'
+ url: https://github.com/apache/airflow/pull/59123
+ - description: Don't add labels to non-existent configuration options
+ kind: fixed
+ links:
+ - name: '#59213'
+ url: https://github.com/apache/airflow/pull/59213
+ - description: Add log volume to init container for scheduler, triggerer
and worker
+ kind: fixed
+ links:
+ - name: '#56418'
+ url: https://github.com/apache/airflow/pull/56418
+ - description: Correctly derive celery sync_parallelism from scheduler CPU
limits
+ kind: fixed
+ links:
+ - name: '#58733'
+ url: https://github.com/apache/airflow/pull/58733
+ - description: Fix ingress notes
+ kind: fixed
+ links:
+ - name: '#59122'
+ url: https://github.com/apache/airflow/pull/59122
+ - description: Fix Liveness / Readiness / Startup probe path for Airflow
3.x
+ kind: fixed
+ links:
+ - name: '#58734'
+ url: https://github.com/apache/airflow/pull/58734
+ - description: Fix flower network policy condition when multiple executors
+ kind: fixed
+ links:
+ - name: '#58635'
+ url: https://github.com/apache/airflow/pull/58635
+ - description: Missing SCC Role bindings for redis and api-server
+ kind: fixed
+ links:
+ - name: '#57985'
+ url: https://github.com/apache/airflow/pull/57985
+ - description: Ensure graceful Redis shutdown
+ kind: fixed
+ links:
+ - name: '#58432'
+ url: https://github.com/apache/airflow/pull/58432
+ - description: Start Redis directly, not via shell
+ kind: fixed
+ links:
+ - name: '#58790'
+ url: https://github.com/apache/airflow/pull/58790
+ - description: Add missing ``airflow.fullname`` on kubernetes objects
+ kind: fixed
+ links:
+ - name: '#52953'
+ url: https://github.com/apache/airflow/pull/52953
+ - description: StatsD deployment volume mount without subpath for live
reloading
+ kind: fixed
+ links:
+ - name: '#54986'
+ url: https://github.com/apache/airflow/pull/54986
+ - description: Fix KEDA query for Kubernetes Executor
+ kind: fixed
+ links:
+ - name: '#55559'
+ url: https://github.com/apache/airflow/pull/55559
+ - description: Add API Server config in k8s pod template
+ kind: fixed
+ links:
+ - name: '#53533'
+ url: https://github.com/apache/airflow/pull/53533
+ - description: Fix helm schema validation for executor value
+ kind: fixed
+ links:
+ - name: '#54682'
+ url: https://github.com/apache/airflow/pull/54682
+ - description: Correct watch verb quoting in Airflow Job Launcher Role
+ kind: fixed
+ links:
+ - name: '#53822'
+ url: https://github.com/apache/airflow/pull/53822
+ - description: Trim non-alphanumeric characters from the executor label
+ kind: fixed
+ links:
+ - name: '#53534'
+ url: https://github.com/apache/airflow/pull/53534
+ - description: Fix KEDA Query to Use executor Field Instead of queue for
Multiple
+ Executors
+ kind: fixed
+ links:
+ - name: '#52840'
+ url: https://github.com/apache/airflow/pull/52840
+ - description: 'Docs: Document how to run the API server behind a reverse
proxy'
+ kind: changed
+ links:
+ - name: '#61095'
+ url: https://github.com/apache/airflow/pull/61095
+ - description: 'Docs: Clarify ingress settings for Airflow 2 vs 3 in
values.yaml'
+ kind: changed
+ links:
+ - name: '#60434'
+ url: https://github.com/apache/airflow/pull/60434
+ - description: 'Docs: Add database cleanup docs to Helm productions docs'
+ kind: changed
+ links:
+ - name: '#58707'
+ url: https://github.com/apache/airflow/pull/58707
+ - description: 'Docs: KEDA best practices + better documentation'
+ kind: changed
+ links:
+ - name: '#58246'
+ url: https://github.com/apache/airflow/pull/58246
+ - description: 'Docs: Update chart info about built-in secrets and
environment variables'
+ kind: changed
+ links:
+ - name: '#58317'
+ url: https://github.com/apache/airflow/pull/58317
+ - description: 'Docs: Fix typo in PgBouncer section of the Production
Guide'
+ kind: changed
+ links:
+ - name: '#56754'
+ url: https://github.com/apache/airflow/pull/56754
+ - description: 'Docs: Update webserver secret note in NOTES.txt and
Production Guide'
+ kind: changed
+ links:
+ - name: '#55106'
+ url: https://github.com/apache/airflow/pull/55106
+ - description: 'Docs: Make term Dag consistent in docs v2'
+ kind: changed
+ links:
+ - name: '#55099'
+ url: https://github.com/apache/airflow/pull/55099
+ - description: 'Docs: Add API Server to container resources docs'
kind: changed
links:
- - name: '#52132'
- url: https://github.com/apache/airflow/pull/52132
- - description: 'Docs: Update service name for port-forward of Airflow UI'
+ - name: '#54698'
+ url: https://github.com/apache/airflow/pull/54698
+ - description: 'Docs: Fix YAML block scalar when providing SSH key for
git-sync'
kind: changed
links:
- - name: '#51945'
- url: https://github.com/apache/airflow/pull/51945
+ - name: '#56716'
+ url: https://github.com/apache/airflow/pull/56716
diff --git a/chart/RELEASE_NOTES.rst b/chart/RELEASE_NOTES.rst
index 864d041fc22..f9af6b5134b 100644
--- a/chart/RELEASE_NOTES.rst
+++ b/chart/RELEASE_NOTES.rst
@@ -23,6 +23,173 @@ Run ``helm repo update`` before upgrading the chart to the
latest version.
.. towncrier release notes start
+Airflow Helm Chart 1.19.0 (2026-02-02)
+--------------------------------------
+
+Significant Changes
+^^^^^^^^^^^^^^^^^^^
+
+StatsD metrics aggregation now supports configurable TTL-enabled LRU cache to
prevent memory growth in long-running daemons (#60933)
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+The Helm Chart now includes new configuration options for StatsD aggregation
management:
+
+* ``statsd.cache.type`` - Enable TTL-enabled ``lru`` cache or ``random`` cache
for metrics aggregation (default: ``lru``)
+* ``statsd.cache.size`` - Maximum number of metrics to cache (default: 1000)
+* ``statsd.cache.ttl`` - Time-to-live for cached metrics in seconds (``0s`` is
TTL disabled) (default: ``0s``)
+
+This feature addresses uncontrolled memory growth in StatsD daemons by
automatically cleaning up stale or unused metric entries. When enabled, the
cache uses both LRU (Least Recently Used) eviction and TTL (Time To Live)
expiration to manage memory usage effectively.
+
+To maintain backward compatibility, the default behaviour remains unchanged.
Users experiencing memory growth issues with StatsD can enable this feature by
setting ``statsd.cache.ttl`` to value higher than ``0`` in their Helm values.
+
+Support for Multiple Celery Worker Sets in the Helm Chart (#58547)
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+This change introduces support for advanced Celery Workers topologies to
Apache Airflow Helm Chart, enabling more flexible resource allocation and
precise autoscaling configurations.
+
+**Flexible Worker Topologies**: The new ``workers.celery.enableDefault`` flag
allows users to configure a deployment consisting only of specialized worker
sets defined in ``workers.celery.sets`` section.
+
+**Multi-Queue Autoscaling Support**: Updates the KEDA ScaledObject generation
to support comma-separated queue lists. By using the ``SQL IN (...)`` clause,
we ensure that KEDA scales worker sets based on the precise aggregate workload
of all their assigned queues.
+
+**Granular Configuration Overrides**: This change allows for overwrite of any
currently available workers configuration per worker set. For example, a user
can enable KEDA globally, but explicitly disable it for a specific worker set
that requires a static number of replicas.
+
+Celery specific config options have been moved under the ``celery`` section in
``workers``
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Please update your configuration accordingly:
+
+* ``workers.replicas`` command is now deprecated in favor of
``workers.celery.replicas`` (#59730)
+* ``workers.revisionHistoryLimit`` command is now deprecated in favor of
``workers.celery.revisionHistoryLimit`` (#60056)
+* ``workers.args`` command is now deprecated in favor of
``workers.celery.args`` (#60163)
+* ``workers.livenessProbe`` section is now deprecated in favor of
``workers.celery.livenessProbe`` (#60186)
+* ``workers.updateStrategy`` section is now deprecated in favor of
``workers.celery.updateStrategy`` (#60351)
+* ``workers.strategy`` section is now deprecated in favor of
``workers.celery.strategy`` (#60354)
+* ``workers.podManagementPolicy`` section is now deprecated in favor of
``workers.celery.podManagementPolicy`` (#60359)
+* ``workers.persistence`` section is now deprecated in favor of
``workers.celery.persistence`` (#60238)
+
+The previous configuration options are still working but are deprecated and
will be removed in a future version.
+
+Manual Service Account Token Volume configuration for pod-launching executors
(#59156)
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Added support for manual Service Account Token Volume configuration when using
pod-launching executors
+(``CeleryExecutor``, ``CeleryKubernetesExecutor``, ``KubernetesExecutor``,
``LocalKubernetesExecutor``).
+This implements defense-in-depth security with both ServiceAccount and
Pod-level controls, providing
+compatibility with security policies like Kyverno and enabling
container-specific privilege assignment
+following the Principle of Least Privilege.
+
+
+Add ``imagePullSecrets`` option (#58094)
+""""""""""""""""""""""""""""""""""""""""
+
+Add ``.Values.imagePullSecrets`` as the new mechanism for configuring registry
credentials,
+deprecating both ``.Values.registry.secretName`` and the automatic creation of
the ``<RELEASE_NAME>-registry`` secret from ``.Values.registry.connection``.
+
+
+Default Airflow image is updated to ``3.1.6`` (#60453)
+""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+The default Airflow image that is used with the Chart is now ``3.1.6``,
previously it was ``3.0.2``.
+
+Default git-sync image is updated to ``4.4.2`` (#54085)
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+The default git-sync image that is used with the Chart is now ``4.4.2``,
previously it was ``4.3.0``.
+
+New Features
+^^^^^^^^^^^^
+
+- Add ``PodDisruptionBudget`` for Dag Processor (#60294)
+- Add ``PodDisruptionBudget`` for Triggerer and Workers (#59068)
+- Add ``HorizontalPodAutoscaler`` (HPA) for API Server (#52392)
+- Add support for launching jobs with ``KubernetesJobOperator`` (#52024)
+- Add ``CronJob`` to clean old records in the database (#58155)
+
+
+Improvements
+^^^^^^^^^^^^
+
+- Improve dag_bundle_config_list Configuration (#60645)
+- Add ``workers.celery.kerberosInitContainer`` &
``workers.kubernetes.kerberosInitContainer`` (#60751, #60427)
+- Add ``workers.celery.securityContexts`` &
``workers.kubernetes.securityContexts`` (#60396)
+- Add ``workers.celery.podManagementPolicy`` field (#60359)
+- Add ``workers.celery.strategy`` field (#60354)
+- Add ``workers.celery.updateStrategy`` field (#60351)
+- Add ``workers.celery.persistence`` section (#60238)
+- Add ``workers.celery.livenessProbe`` section (#60186)
+- Add ``workers.celery.args`` field (#60163)
+- Add ``workers.celery.command`` & ``workers.kubernetes.command`` (#60067)
+- Allow custom ``volumeClaimTemplates`` when ``logs.persistence.enabled`` is
true (#60118)
+- Add checksum for JWT secret in API server and scheduler deployments (#60111)
+- Add ``workers.celery.revisionHistoryLimit`` field (#60056)
+- Add Redis StatefulSet ``persistentVolumeClaimRetentionPolicy`` support
(#59955)
+- Add ``workers.celery.replicas`` field (#59730)
+- Add custom envs to database cleanup (#59804)
+- Extend ``airflow_ti_running`` metrics by scheduled, queued and deferred
(#58819)
+- Create an explicit control for ``createUserJob`` (#56057)
+- Make cleanup cronjob conditional on kubernetes executor (#58695)
+- Add database cleanup options and remove deprecated ``securityContext`` field
(#58663)
+- Add ability to disable API Server (#56493)
+- Add ``registry.secretNames`` and ``registry.connections`` options (#58094)
+- Allow custom labels in StatsD, redis and Dag Processor (#55832)
+- Allow setting ``restartPolicy`` for batch jobs in chart (#54354)
+- Add readiness and liveliness support for git sync relay sidecars (#50218)
+- Allow overriding ``schedulerName`` on worker/tasks pods (#53983)
+- Allow additional ``PodDisruptionBudget`` config properties (#58864)
+- Add EdgeExecutor to KEDA query (#55560)
+- Allow ``revisionHistoryLimit`` to be set to 0 (#60340)
+- Allow optional ``subPath`` for logs volume mount (#52350)
+- Move triggerer from ``pod-log-reader-role`` to ``pod-launcher-role`` (#56872)
+
+Bug Fixes
+^^^^^^^^^
+
+- Use the ``bitnamilegacy/postgresql`` image (#61156)
+- Fix Compatibility of Celery Worker Sets with Workers Separation (#60420)
+- Fix database cleanup cronjob ImagePullSecrets (#58626)
+- Remove ``workers.celery`` breaking change (#61049)
+- Fix missing templating in API Server ``extraInitContainers`` (#60812)
+- Fix ``securityContext.containers``/``ingress.apiServer`` in
values.schema.json (#60575)
+- Remove unused ``containerLifecycleHooks`` field (#60239)
+- Remove unneeded logic in api-server (#60147)
+- Remove ``defaultUser`` from API Server in values.schema.json (#59762)
+- Isolate ``defaultUser`` handling in ``createUserJob`` (#59767)
+- Fix rendering condition of ``git_sync_ssh_key_volume`` (#59418)
+- Add watch for events to the Pod launcher role (#59080)
+- Ensure that git-sync actually runs when ``dags.gitSync.enabled=true`` and
``dags.persistence.enabled=true`` (#59123)
+- Don't add labels to non-existent configuration options (#59213)
+- Add log volume to init container for scheduler, triggerer and worker (#56418)
+- Correctly derive celery sync_parallelism from scheduler CPU limits (#58733)
+- Fix ingress notes (#59122)
+- Fix Liveness / Readiness / Startup probe path for Airflow 3.x (#58734)
+- Fix flower network policy condition when multiple executors (#58635)
+- Missing SCC Role bindings for redis and api-server (#57985)
+- Ensure graceful Redis shutdown(#58432)
+- Start Redis directly, not via shell (#58790)
+- Add missing ``airflow.fullname`` on kubernetes objects (#52953)
+- StatsD deployment volume mount without subpath for live reloading (#54986)
+- Fix KEDA query for Kubernetes Executor (#55559)
+- Add API Server config in k8s pod template (#53533)
+- Fix helm schema validation for executor value (#54682)
+- Correct watch verb quoting in Airflow Job Launcher Role (#53822)
+- Trim non-alphanumeric characters from the executor label (#53534)
+- Fix KEDA Query to Use executor Field Instead of queue for Multiple Executors
(#52840)
+
+Doc only changes
+^^^^^^^^^^^^^^^^
+
+- Document how to run the API server behind a reverse proxy (#61095)
+- Clarify ingress settings for Airflow 2 vs 3 in values.yaml (#60434)
+- Add database cleanup docs to Helm productions docs (#58707)
+- KEDA best practices + better documentation (#58246)
+- Update chart info about built-in secrets and environment variables (#58317)
+- Fix typo in PgBouncer section of the Production Guide (#56754)
+- Update webserver secret note in NOTES.txt and Production Guide (#55106)
+- Make term Dag consistent in docs v2 (#55099)
+- Add API Server to container resources docs (#54698)
+- Fix YAML block scalar when providing SSH key for git-sync (#56716)
+
+
Airflow Helm Chart 1.18.0 (2025-07-12)
--------------------------------------
diff --git a/chart/newsfragments/50394.significant.rst
b/chart/newsfragments/50394.significant.rst
deleted file mode 100644
index b01e5c7bcce..00000000000
--- a/chart/newsfragments/50394.significant.rst
+++ /dev/null
@@ -1 +0,0 @@
-Helm version now defaults to ``3.19.0``
diff --git a/chart/newsfragments/51792.significant.rst
b/chart/newsfragments/51792.significant.rst
deleted file mode 100644
index 176684e91f5..00000000000
--- a/chart/newsfragments/51792.significant.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-StatsD metrics aggregation now supports configurable TTL-enabled LRU cache to
prevent memory growth in long-running daemons.
-
-The Helm Chart now includes new configuration options for StatsD aggregation
management:
-
-* ``statsd.cache.type`` - Enable TTL-enabled ``lru`` cache or ``random`` cache
for metrics aggregation (default: ``lru``)
-* ``statsd.cache.size`` - Maximum number of metrics to cache (default: 1000)
-* ``statsd.cache.ttl`` - Time-to-live for cached metrics in seconds (``0s`` is
TTL disabled) (default: ``0s``)
-
-This feature addresses uncontrolled memory growth in StatsD daemons by
automatically cleaning up stale or unused metric entries. When enabled, the
cache uses both LRU (Least Recently Used) eviction and TTL (Time To Live)
expiration to manage memory usage effectively.
-
-To maintain backward compatibility, the default behaviour remains unchanged.
Users experiencing memory growth issues with StatsD can enable this feature by
setting ``statsd.cache.ttl`` to value higher than ``0`` in their Helm values.
diff --git a/chart/newsfragments/54085.significant.rst
b/chart/newsfragments/54085.significant.rst
deleted file mode 100644
index 133aa003997..00000000000
--- a/chart/newsfragments/54085.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Default git-sync image is updated to ``4.4.2``
-
-The default git-sync image that is used with the Chart is now ``4.4.2``,
previously it was ``4.3.0``.
diff --git a/chart/newsfragments/57615.misc.rst
b/chart/newsfragments/57615.misc.rst
deleted file mode 100644
index 1b2ec4c4fcd..00000000000
--- a/chart/newsfragments/57615.misc.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add ``.Values.imagePullSecrets`` as the new mechanism for configuring registry
credentials, deprecating both ``.Values.registry.secretName`` and the automatic
creation of the ``<RELEASE_NAME>-registry`` secret from
``.Values.registry.connection``.
diff --git a/chart/newsfragments/58547.significant.rst
b/chart/newsfragments/58547.significant.rst
deleted file mode 100644
index 1c874eebd46..00000000000
--- a/chart/newsfragments/58547.significant.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-Support for Multiple Celery Worker Sets in the Helm Chart
-
-Description
-The change introduces support for advanced Celery Workers topologies to Apache
Airflow Helm Chart, enabling more flexible resource allocation and precise
autoscaling configurations.
-
-Why is this needed?
-1. Flexible Worker Topologies
-As Airflow adoption grows, platform teams often need to route tasks
exclusively to specialized worker sets (e.g., GPU-optimized, Memory-optimized)
without maintaining a generic ``default`` worker.
-
-Enhancement: The new ``workers.celery.enableDefault`` flag allows users to
configure a deployment consisting only of specialized worker sets defined in
``workers.celery.sets`` section. This provides flexibility for teams to design
their workers architecture exactly as needed.
-2. Multi-Queue Autoscaling Support
-Complex workflows often require a single worker set to handle tasks from
multiple specific queues (e.g., queue: "high-priority,vip").
-
-Enhancement: This PR updates the KEDA ScaledObject generation to support
comma-separated queue lists. By using the ``SQL IN (...)`` clause, we ensure
that KEDA scales worker sets based on the precise aggregate workload of all
their assigned queues.
-3. Granular Configuration Overrides
-Different worker sets may require different operational strategies within the
same cluster.
-
-Enhancement: This change allows for overwrite of any currently available
workers configuration per worker set. For example, a user can enable KEDA
globally, but explicitly disable it for a specific worker set that requires a
static number of replicas.
-Changes
-New Feature: Added ``workers.celery.enableDefault`` (default: true) to
values.yaml.
-
-See `Helm PR #58547 <https://github.com/apache/airflow/pull/58547>`_ and
`Helm PR #60420 <https://github.com/apache/airflow/pull/60420>`_ for
implementation details.
diff --git a/chart/newsfragments/59156.significant.rst
b/chart/newsfragments/59156.significant.rst
deleted file mode 100644
index 234b8897a10..00000000000
--- a/chart/newsfragments/59156.significant.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Manual Service Account Token Volume configuration for pod-launching executors
-
-Added support for manual Service Account Token Volume configuration when using
pod-launching executors
-(``CeleryExecutor``, ``CeleryKubernetesExecutor``, ``KubernetesExecutor``,
``LocalKubernetesExecutor``).
-This implements defense-in-depth security with both ServiceAccount and
Pod-level controls, providing
-compatibility with security policies like Kyverno and enabling
container-specific privilege assignment
-following the Principle of Least Privilege.
diff --git a/chart/newsfragments/59730.significant.rst
b/chart/newsfragments/59730.significant.rst
deleted file mode 100644
index 418a9a1cd5c..00000000000
--- a/chart/newsfragments/59730.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``workers.replicas`` command is now deprecated in favor of
``workers.celery.replicas``.
-
-Along the upgrade of Helm Chart version, change the configuration of
``workers.replicas`` to ``workers.celery.replicas`` or unset
``workers.celery.replicas`` to preserve previous behaviour of the Helm Chart.
diff --git a/chart/newsfragments/60163.significant.rst
b/chart/newsfragments/60163.significant.rst
deleted file mode 100644
index e095884e142..00000000000
--- a/chart/newsfragments/60163.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``workers.args`` command is now deprecated in favor of ``workers.celery.args``.
-
-Along the upgrade of Helm Chart version, change the configuration of
``workers.args`` to ``workers.celery.args`` or unset ``workers.celery.args`` to
preserve previous behaviour of the Helm Chart.
diff --git a/chart/newsfragments/60186.significant.rst
b/chart/newsfragments/60186.significant.rst
deleted file mode 100644
index ed75b696d94..00000000000
--- a/chart/newsfragments/60186.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``workers.livenessProbe`` section is now deprecated in favor of
``workers.celery.livenessProbe``.
-
-Along the upgrade of Helm Chart version, change the configuration of values in
section ``workers.livenessProbe`` to ``workers.celery.livenessProbe`` section
or unset all values under ``workers.celery.livenessProbe`` to preserve previous
behaviour of the Helm Chart.
diff --git a/chart/newsfragments/60238.significant.rst
b/chart/newsfragments/60238.significant.rst
deleted file mode 100644
index 344e55fcafd..00000000000
--- a/chart/newsfragments/60238.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``workers.persistence`` section is now deprecated in favor of
``workers.celery.persistence``.
-
-Along the upgrade of Helm Chart version, change the configuration of values in
section ``workers.persistence`` to ``workers.celery.persistence`` section or
unset all values under ``workers.celery.persistence`` to preserve previous
behaviour of the Helm Chart.
diff --git a/chart/newsfragments/60242.improvement.rst
b/chart/newsfragments/60242.improvement.rst
deleted file mode 100644
index fa1e61336f3..00000000000
--- a/chart/newsfragments/60242.improvement.rst
+++ /dev/null
@@ -1 +0,0 @@
-Expose ``dagProcessor.podDisruptionBudget`` settings so the DAG Processor can
be protected with a configurable PodDisruptionBudget, matching the other
components.
diff --git a/chart/newsfragments/60354.significant.rst
b/chart/newsfragments/60354.significant.rst
deleted file mode 100644
index ed0aa53e8b2..00000000000
--- a/chart/newsfragments/60354.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``workers.strategy`` section is now deprecated in favor of
``workers.celery.strategy``.
-
-Along the upgrade of Helm Chart version, change the configuration of values in
section ``workers.strategy`` to ``workers.celery.strategy`` section or unset
all values under ``workers.celery.strategy`` to preserve previous behaviour of
the Helm Chart.
diff --git a/chart/newsfragments/60453.significant.rst
b/chart/newsfragments/60453.significant.rst
deleted file mode 100644
index c96a0c4ef2e..00000000000
--- a/chart/newsfragments/60453.significant.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Default Airflow image is updated to ``3.1.6``
-
-The default Airflow image that is used with the Chart is now ``3.1.6``,
previously it was ``3.0.2``.
diff --git a/chart/reproducible_build.yaml b/chart/reproducible_build.yaml
index 720522f56ad..3eb37ca65d2 100644
--- a/chart/reproducible_build.yaml
+++ b/chart/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: e574f907453a7e8b1b2f6cc0b96baee8
-source-date-epoch: 1752095894
+release-notes-hash: e7aa8e701258adf6da0259cd21de86fb
+source-date-epoch: 1769720331