release notes
release notes
Published 2/17/2026
Contains breaking changesThe 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.
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.
createUserJob sectionPlease update your configuration accordingly:
webserver.defaultUser section is now deprecated in favor of createUserJob (#59767)The previous configuration options are still working but are deprecated and will be removed in a future version.
Note that the previous documentation described also the option apiServer.defaultUser, which was never implemented in the chart. The only supported option is now createUserJob. Using apiServer.defaultUser will raise an error.
celery section in workersPlease 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.
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.
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.
3.1.7 (#61447)The default Airflow image that is used with the Chart is now 3.1.7, previously it was 3.0.2.
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.
PodDisruptionBudget for Dag Processor (#60294)PodDisruptionBudget for Triggerer and Workers (#59068)HorizontalPodAutoscaler (HPA) for API Server (#52392)KubernetesJobOperator (#52024)CronJob to clean old records in the database (#58155)workers.celery.kerberosInitContainer & workers.kubernetes.kerberosInitContainer (#60751, #60427)workers.celery.securityContexts & workers.kubernetes.securityContexts (#60396)workers.celery.podManagementPolicy field (#60359)workers.celery.strategy field (#60354)workers.celery.updateStrategy field (#60351)workers.celery.persistence section (#60238)workers.celery.livenessProbe section (#60186)workers.celery.args field (#60163)workers.celery.command & workers.kubernetes.command (#60067)volumeClaimTemplates when logs.persistence.enabled is true (#60118)workers.celery.revisionHistoryLimit field (#60056)persistentVolumeClaimRetentionPolicy support (#59955)workers.celery.replicas field (#59730)airflow_ti_running metrics by scheduled, queued and deferred (#58819)createUserJob (#56057)securityContext field (#58663)registry.secretNames and registry.connections options (#58094)restartPolicy for batch jobs in chart (#54354)schedulerName on worker/tasks pods (#53983)PodDisruptionBudget config properties (#58864)revisionHistoryLimit to be set to 0 (#60340)subPath for logs volume mount (#52350)pod-log-reader-role to pod-launcher-role (#56872)kedaNetworkPolicySelector from helpers (#61564)bitnamilegacy/postgresql image (#61156)workers.celery breaking change (#61049)extraInitContainers (#60812)securityContext.containers/ingress.apiServer in values.schema.json (#60575)containerLifecycleHooks field (#60239)defaultUser from API Server in values.schema.json (#59762)defaultUser handling in createUserJob (#59767)git_sync_ssh_key_volume (#59418)dags.gitSync.enabled=true and dags.persistence.enabled=true (#59123)airflow.fullname on kubernetes objects (#52953)release notes
Published 2/17/2026
Contains breaking changesThe 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.
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.
createUserJob sectionPlease update your configuration accordingly:
webserver.defaultUser section is now deprecated in favor of createUserJob (#59767)The previous configuration options are still working but are deprecated and will be removed in a future version.
Note that the previous documentation described also the option apiServer.defaultUser, which was never implemented in the chart. The only supported option is now createUserJob. Using apiServer.defaultUser will raise an error.
celery section in workersPlease 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.
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.
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.
3.1.7 (#61447)The default Airflow image that is used with the Chart is now 3.1.7, previously it was 3.0.2.
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.
PodDisruptionBudget for Dag Processor (#60294)PodDisruptionBudget for Triggerer and Workers (#59068)HorizontalPodAutoscaler (HPA) for API Server (#52392)KubernetesJobOperator (#52024)CronJob to clean old records in the database (#58155)workers.celery.kerberosInitContainer & workers.kubernetes.kerberosInitContainer (#60751, #60427)workers.celery.securityContexts & workers.kubernetes.securityContexts (#60396)workers.celery.podManagementPolicy field (#60359)workers.celery.strategy field (#60354)workers.celery.updateStrategy field (#60351)workers.celery.persistence section (#60238)workers.celery.livenessProbe section (#60186)workers.celery.args field (#60163)workers.celery.command & workers.kubernetes.command (#60067)volumeClaimTemplates when logs.persistence.enabled is true (#60118)workers.celery.revisionHistoryLimit field (#60056)persistentVolumeClaimRetentionPolicy support (#59955)workers.celery.replicas field (#59730)airflow_ti_running metrics by scheduled, queued and deferred (#58819)createUserJob (#56057)securityContext field (#58663)registry.secretNames and registry.connections options (#58094)restartPolicy for batch jobs in chart (#54354)schedulerName on worker/tasks pods (#53983)PodDisruptionBudget config properties (#58864)revisionHistoryLimit to be set to 0 (#60340)subPath for logs volume mount (#52350)pod-log-reader-role to pod-launcher-role (#56872)kedaNetworkPolicySelector from helpers (#61564)bitnamilegacy/postgresql image (#61156)workers.celery breaking change (#61049)extraInitContainers (#60812)securityContext.containers/ingress.apiServer in values.schema.json (#60575)containerLifecycleHooks field (#60239)defaultUser from API Server in values.schema.json (#59762)defaultUser handling in createUserJob (#59767)git_sync_ssh_key_volume (#59418)dags.gitSync.enabled=true and dags.persistence.enabled=true (#59123)airflow.fullname on kubernetes objects (#52953)Apache Airflow - A platform to programmatically author, schedule, and monitor workflows