Under which category would you file this issue?
Helm chart
Apache Airflow version
3.2.1
What happened and how to reproduce it?
When I deployed using the helm chart 1.21.0 by setting workers.celery.serviceAccount.name it had no effect on the Celery worker deployment, service account creation, or RBAC role bindings.
What you think should happen instead?
The release notes of the Helm release 1.21.0 say
workers.serviceAccount is now deprecated in favor of workers.celery.serviceAccount/workers.kubernetes.serviceAccount (#64730).
I thought that meant that I should set worker.celery.ServiceAccount but it seems to have no affect. Keeping the configuration at worker.ServiceAccount fixes the issue. I am not sure if I am misunderstanding the release note.
Expected behavior
Setting workers.celery.serviceAccount.name = "my-custom-sa" should result in:
- The Celery worker deployment using that service account
- The RBAC role bindings (pod-launcher, job-launcher) referencing that service account
- The worker service account resource being created with that name (if
create = true)
Actual behavior
All Celery worker templates use the worker.serviceAccountName helper, which reads from workers.serviceAccount (the deprecated path) and never checks workers.celery.serviceAccount. When a user only sets the new path, the helper falls back to generating a default name ({{ .Release.Name }}-worker), ignoring the user's configuration.
Root cause
PR #64730 added workers.celery.serviceAccount and workers.kubernetes.serviceAccount as new config sections and deprecated workers.serviceAccount. The PR correctly created a worker.kubernetes.serviceAccountName helper that reads from workers.kubernetes.serviceAccount via subKey = "kubernetes". However, no equivalent worker.celery.serviceAccountName helper was created.
There is no corresponding worker.celery.serviceAccountName.
https://github.com/apache/airflow/blob/helm-chart/1.21.0/chart/templates/_helpers.yaml#L724-L736
Operating System
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Deployment
Official Apache Airflow Helm Chart
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
1.21.0 (latest released)
Kubernetes Version
Server is v1.33.10 (EKS), client is v1.30.2.
Helm Chart configuration
No response
Docker Image customizations
Not applicable
Anything else?
Every time
Are you willing to submit PR?
Code of Conduct
Under which category would you file this issue?
Helm chart
Apache Airflow version
3.2.1
What happened and how to reproduce it?
When I deployed using the helm chart 1.21.0 by setting
workers.celery.serviceAccount.nameit had no effect on the Celery worker deployment, service account creation, or RBAC role bindings.What you think should happen instead?
The release notes of the Helm release 1.21.0 say
I thought that meant that I should set
worker.celery.ServiceAccountbut it seems to have no affect. Keeping the configuration atworker.ServiceAccountfixes the issue. I am not sure if I am misunderstanding the release note.Expected behavior
Setting
workers.celery.serviceAccount.name = "my-custom-sa"should result in:create = true)Actual behavior
All Celery worker templates use the
worker.serviceAccountNamehelper, which reads fromworkers.serviceAccount(the deprecated path) and never checksworkers.celery.serviceAccount. When a user only sets the new path, the helper falls back to generating a default name ({{ .Release.Name }}-worker), ignoring the user's configuration.Root cause
PR #64730 added
workers.celery.serviceAccountandworkers.kubernetes.serviceAccountas new config sections and deprecatedworkers.serviceAccount. The PR correctly created aworker.kubernetes.serviceAccountNamehelper that reads fromworkers.kubernetes.serviceAccountviasubKey = "kubernetes". However, no equivalentworker.celery.serviceAccountNamehelper was created.There is no corresponding
worker.celery.serviceAccountName.https://github.com/apache/airflow/blob/helm-chart/1.21.0/chart/templates/_helpers.yaml#L724-L736
Operating System
Deployment
Official Apache Airflow Helm Chart
Apache Airflow Provider(s)
No response
Versions of Apache Airflow Providers
No response
Official Helm Chart version
1.21.0 (latest released)
Kubernetes Version
Server is v1.33.10 (EKS), client is v1.30.2.
Helm Chart configuration
No response
Docker Image customizations
Not applicable
Anything else?
Every time
Are you willing to submit PR?
Code of Conduct