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 698157fd265 Chart: Remove breaking change for createUser (#61337)
698157fd265 is described below

commit 698157fd2658dc3bcf80387e5bed2f0bc1237366
Author: Jens Scheffler <[email protected]>
AuthorDate: Mon Feb 2 19:40:22 2026 +0100

    Chart: Remove breaking change for createUser (#61337)
---
 chart/RELEASE_NOTES.rst                            | 11 +++++
 chart/reproducible_build.yaml                      |  4 +-
 chart/templates/NOTES.txt                          | 14 ++++++-
 .../jobs/create-user-job-serviceaccount.yaml       |  4 +-
 chart/templates/jobs/create-user-job.yaml          |  6 +--
 .../security-context-constraint-rolebinding.yaml   |  6 +--
 chart/values.schema.json                           | 48 +++++++++++++++++++---
 chart/values.yaml                                  | 24 +++++++----
 8 files changed, 93 insertions(+), 24 deletions(-)

diff --git a/chart/RELEASE_NOTES.rst b/chart/RELEASE_NOTES.rst
index 0770d457a6a..6f670d3e20f 100644
--- a/chart/RELEASE_NOTES.rst
+++ b/chart/RELEASE_NOTES.rst
@@ -53,6 +53,17 @@ This change introduces support for advanced Celery Workers 
topologies to Apache
 
 **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.
 
+Options to create a default user have been moved under the ``createUserJob`` 
section
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Please 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 specific config options have been moved under the ``celery`` section in 
``workers``
 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
diff --git a/chart/reproducible_build.yaml b/chart/reproducible_build.yaml
index 062281940b9..a2468948ffe 100644
--- a/chart/reproducible_build.yaml
+++ b/chart/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: b0ace4cbce4fe3f1c34de9c60ecc7fb7
-source-date-epoch: 1769927217
+release-notes-hash: b769a1a52290c4c11fc21615511aef6d
+source-date-epoch: 1769977763
diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt
index 53248aa31a3..0d4c29c7bb3 100644
--- a/chart/templates/NOTES.txt
+++ b/chart/templates/NOTES.txt
@@ -114,7 +114,11 @@ Flower Dashboard:      kubectl port-forward svc/{{ include 
"airflow.fullname" .
 {{- end }}
 
 
-{{- if .Values.createUserJob.enabled}}
+{{- if and .Values.webserver.defaultUser 
.Values.webserver.defaultUser.enabled}}
+Default user (Airflow UI) Login credentials:
+    username: {{ .Values.createUserJob.defaultUser.username }}
+    password: {{ .Values.createUserJob.defaultUser.password }}
+{{- else if .Values.createUserJob.enabled}}
 Default user (Airflow UI) Login credentials:
     username: {{ .Values.createUserJob.defaultUser.username }}
     password: {{ .Values.createUserJob.defaultUser.password }}
@@ -340,6 +344,14 @@ DEPRECATION WARNING:
 
 {{- end }}
 
+{{- if not (empty .Values.webserver.defaultUser) }}
+
+ DEPRECATION WARNING:
+    `webserver.defaultUser` has been renamed to `createUserJob.defaultUser`.
+    Please change your values as support for the old name will be dropped in a 
future release.
+
+{{- end }}
+
 {{ if (semverCompare ">=3.0.0" .Values.airflowVersion) }}
 #####################################################
 #  WARNING: You should set a static API secret key  #
diff --git a/chart/templates/jobs/create-user-job-serviceaccount.yaml 
b/chart/templates/jobs/create-user-job-serviceaccount.yaml
index 60b2a36579e..0af6a9e96b5 100644
--- a/chart/templates/jobs/create-user-job-serviceaccount.yaml
+++ b/chart/templates/jobs/create-user-job-serviceaccount.yaml
@@ -17,9 +17,9 @@
  under the License.
 */}}
 
-###########################################
+#########################################
 ## Airflow Create User Job ServiceAccount
-###########################################
+#########################################
 {{- if .Values.createUserJob.serviceAccount.create }}
 apiVersion: v1
 kind: ServiceAccount
diff --git a/chart/templates/jobs/create-user-job.yaml 
b/chart/templates/jobs/create-user-job.yaml
index 6913d4ef19f..0a58b50ce00 100644
--- a/chart/templates/jobs/create-user-job.yaml
+++ b/chart/templates/jobs/create-user-job.yaml
@@ -17,10 +17,10 @@
  under the License.
 */}}
 
-################################
+##########################
 ## Airflow Create User Job
-#################################
-{{- if .Values.createUserJob.enabled }}
+##########################
+{{- if or (and .Values.webserver.defaultUser 
.Values.webserver.defaultUser.enabled) .Values.createUserJob.enabled }}
 {{- $nodeSelector := or .Values.createUserJob.nodeSelector 
.Values.nodeSelector }}
 {{- $affinity := or .Values.createUserJob.affinity .Values.affinity }}
 {{- $tolerations := or .Values.createUserJob.tolerations .Values.tolerations }}
diff --git a/chart/templates/rbac/security-context-constraint-rolebinding.yaml 
b/chart/templates/rbac/security-context-constraint-rolebinding.yaml
index 185eb3a890e..8e01246bd56 100644
--- a/chart/templates/rbac/security-context-constraint-rolebinding.yaml
+++ b/chart/templates/rbac/security-context-constraint-rolebinding.yaml
@@ -17,9 +17,9 @@
  under the License.
 */}}
 
-################################
+###########################
 ## Airflow SCC Role Binding
-#################################
+###########################
 {{- if and .Values.rbac.create .Values.rbac.createSCCRoleBinding }}
 {{- $hasWorkers := has .Values.executor (list "CeleryExecutor" 
"LocalKubernetesExecutor" "KubernetesExecutor" "CeleryKubernetesExecutor") }}
 apiVersion: rbac.authorization.k8s.io/v1
@@ -88,7 +88,7 @@ subjects:
   - kind: ServiceAccount
     name: {{ include "migrateDatabaseJob.serviceAccountName" . }}
     namespace: "{{ .Release.Namespace }}"
-  {{- if .Values.createUserJob.enabled }}
+  {{- if or (and .Values.webserver.defaultUser 
.Values.webserver.defaultUser.enabled) .Values.createUserJob.enabled }}
   - kind: ServiceAccount
     name: {{ include "createUserJob.serviceAccountName" . }}
     namespace: "{{ .Release.Namespace }}"
diff --git a/chart/values.schema.json b/chart/values.schema.json
index d3e0c98c2a8..990ae0cfa1f 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -5027,17 +5027,17 @@
                         "exec \\\nairflow {{ semverCompare \">=2.0.0\" 
.Values.airflowVersion | ternary \"users create\" \"create_user\" }} \"$@\"",
                         "--",
                         "-r",
-                        "{{ .Values.createUserJob.defaultUser.role }}",
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.role }}{{ else }}{{ 
.Values.createUserJob.defaultUser.role }}{{ end }}",
                         "-u",
-                        "{{ .Values.createUserJob.defaultUser.username }}",
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.username }}{{ else }}{{ 
.Values.createUserJob.defaultUser.username }}{{ end }}",
                         "-e",
-                        "{{ .Values.createUserJob.defaultUser.email }}",
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.email }}{{ else }}{{ 
.Values.createUserJob.defaultUser.email }}{{ end }}",
                         "-f",
-                        "{{ .Values.createUserJob.defaultUser.firstName }}",
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.firstName }}{{ else }}{{ 
.Values.createUserJob.defaultUser.firstName }}{{ end }}",
                         "-l",
-                        "{{ .Values.createUserJob.defaultUser.lastName }}",
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.lastName }}{{ else }}{{ 
.Values.createUserJob.defaultUser.lastName }}{{ end }}",
                         "-p",
-                        "{{ .Values.createUserJob.defaultUser.password }}"
+                        "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.password }}{{ else }}{{ 
.Values.createUserJob.defaultUser.password }}{{ end }}"
                     ]
                 },
                 "annotations": {
@@ -6879,6 +6879,42 @@
                     ],
                     "$ref": 
"#/definitions/io.k8s.api.core.v1.ResourceRequirements"
                 },
+                "defaultUser": {
+                    "description": "Optional default Airflow user information 
(deprecated, use createUserJob section instead)",
+                    "type": "object",
+                    "additionalProperties": false,
+                    "properties": {
+                        "enabled": {
+                            "description": "Enable default user creation.",
+                            "type": "boolean",
+                            "x-docsSection": "Common"
+                        },
+                        "role": {
+                            "description": "Default user role.",
+                            "type": "string"
+                        },
+                        "username": {
+                            "description": "Default user username.",
+                            "type": "string"
+                        },
+                        "email": {
+                            "description": "Default user email address.",
+                            "type": "string"
+                        },
+                        "firstName": {
+                            "description": "Default user firstname.",
+                            "type": "string"
+                        },
+                        "lastName": {
+                            "description": "Default user lastname.",
+                            "type": "string"
+                        },
+                        "password": {
+                            "description": "Default user password.",
+                            "type": "string"
+                        }
+                    }
+                },
                 "extraContainers": {
                     "description": "Launch additional containers into 
webserver (templated).",
                     "type": "array",
diff --git a/chart/values.yaml b/chart/values.yaml
index ae3ff24aeb2..598c6b9ffad 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1414,19 +1414,19 @@ createUserJob:
       exec \
       airflow {{ semverCompare ">=2.0.0" .Values.airflowVersion | ternary 
"users create" "create_user" }} "$@"
     - --
+    # yamllint disable rule:line-length
     - "-r"
-    - "{{ .Values.createUserJob.defaultUser.role }}"
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.role }}{{ else }}{{ 
.Values.createUserJob.defaultUser.role }}{{ end }}"
     - "-u"
-    - "{{ .Values.createUserJob.defaultUser.username }}"
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.username }}{{ else }}{{ 
.Values.createUserJob.defaultUser.username }}{{ end }}"
     - "-e"
-    - "{{ .Values.createUserJob.defaultUser.email }}"
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.email }}{{ else }}{{ 
.Values.createUserJob.defaultUser.email }}{{ end }}"
     - "-f"
-    - "{{ .Values.createUserJob.defaultUser.firstName }}"
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.firstName }}{{ else }}{{ 
.Values.createUserJob.defaultUser.firstName }}{{ end }}"
     - "-l"
-    - "{{ .Values.createUserJob.defaultUser.lastName }}"
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.lastName }}{{ else }}{{ 
.Values.createUserJob.defaultUser.lastName }}{{ end }}"
     - "-p"
-    - "{{ .Values.createUserJob.defaultUser.password }}"
-
+    - "{{ if .Values.webserver.defaultUser }}{{ 
.Values.webserver.defaultUser.password }}{{ else }}{{ 
.Values.createUserJob.defaultUser.password }}{{ end }}"
   # Annotations on the create user job pod
   annotations: {}
   # jobAnnotations are annotations on the create user job
@@ -1930,6 +1930,16 @@ webserver:
   #     cpu: 100m
   #     memory: 128Mi
 
+  # Create initial user. (Note: Deprecated, use createUserJob section instead)
+  # defaultUser:
+  #   enabled: true
+  #   role: Admin
+  #   username: admin
+  #   email: [email protected]
+  #   firstName: admin
+  #   lastName: user
+  #   password: admin
+
   # Launch additional containers into webserver (templated).
   extraContainers: []
   # Add additional init containers into webserver (templated).

Reply via email to