diff --git a/charts/deps/Chart.lock b/charts/deps/Chart.lock index b077fa21..d6562b26 100644 --- a/charts/deps/Chart.lock +++ b/charts/deps/Chart.lock @@ -4,9 +4,9 @@ dependencies: version: 14.0.2 - name: airflow repository: https://airflow.apache.org - version: 1.18.0 + version: 1.19.0 - name: opensearch repository: https://opensearch-project.github.io/helm-charts/ version: 3.3.2 -digest: sha256:94f8e65e4e65e50751e7885c424a97a3e4e543cd5fcb3e4fb5e9cb423fced69d -generated: "2026-02-09T10:47:40.254231+05:30" +digest: sha256:6febbaaf90a9881150e77c61c0c1a504b9ead0975b33579a93ad3b77a471f2f8 +generated: "2026-03-16T21:32:20.838807+07:00" diff --git a/charts/deps/Chart.yaml b/charts/deps/Chart.yaml index 47a2fc54..f1f6c56a 100644 --- a/charts/deps/Chart.yaml +++ b/charts/deps/Chart.yaml @@ -63,7 +63,7 @@ dependencies: repository: "https://charts.bitnami.com/bitnami" condition: mysql.enabled - name: airflow - version: "1.18.0" + version: "1.19.0" repository: "https://airflow.apache.org" condition: airflow.enabled - name: opensearch diff --git a/charts/deps/values.yaml b/charts/deps/values.yaml index 38468fdb..b79f6118 100644 --- a/charts/deps/values.yaml +++ b/charts/deps/values.yaml @@ -72,7 +72,17 @@ airflow: # Without this, JWT token authentication may fail between Airflow components # Generate a new key with: openssl rand -hex 32 # Set to empty string (~) to auto-generate (not recommended for production) - webserverSecretKey: "a5f8c3e2d1b9a7f6e4c3b2a1f9e8d7c6b5a4f3e2d1c9b8a7f6e5d4c3b2a1f0e9" + + # Fernet key settings + # Note: fernetKey can only be set during install, not upgrade + fernetKey: ~ + + # Flask secret key for Airflow 3+ Api: `[api] secret_key` in airflow.cfg + apiSecretKey: "a5f8c3e2d1b9a7f6e4c3b2a1f9e8d7c6b5a4f3e2d1c9b8a7f6e5d4c3b2a1f0e9" + + # Secret key used to encode and decode JWTs: `[api_auth] jwt_secret` in airflow.cfg + jwtSecret: ~ + # Use OpenMetadata Airflow image with Airflow 3 images: airflow: @@ -102,27 +112,80 @@ airflow: # Downgrade FAB provider to avoid CREATE INDEX IF NOT EXISTS issue - name: _PIP_ADDITIONAL_REQUIREMENTS value: "apache-airflow-providers-fab==2.4.4" + # JWT secret for Airflow 3+ Api: `[api_auth] jwt_secret` in airflow.cfg + - name: AIRFLOW__API_AUTH__JWT_SECRET + value: "{{ .Values.airflow.jwtSecret }}" + # Create admin user - webserver: + createUserJob: + # Whether the create user job should be created + enabled: true + # The default user to create defaultUser: - enabled: true role: Admin username: admin email: spiderman@superhero.org firstName: Peter lastName: Parker password: admin - # Disable internal PostgreSQL, use external MySQL - postgresql: - enabled: false + + # Airflow database migration job settings + migrateDatabaseJob: + enabled: true + # Worker configuration for KubernetesExecutor # Set replicas to 0 for LocalExecutor (local development) workers: replicas: 2 - # Disable Flower + + # Airflow scheduler settings + scheduler: + enabled: true + + # Amount of scheduler replicas (recommended to be set larger than 2 with MYSQL 8+ and Postgres 12+) + replicas: 1 + + # API server needs access to DAGs volume for OpenMetadata dynamic DAG generation + apiServer: + enabled: true + + # Number of Airflow API servers in the deployment. + # Omitted from the Deployment, when HPA is enabled. + replicas: 1 + + extraVolumes: + - name: dags + persistentVolumeClaim: + claimName: '{{ include "airflow.fullname" . }}-dags' + extraVolumeMounts: + - name: dags + mountPath: /opt/airflow/dags + + # Airflow Triggerer Config + triggerer: + enabled: true + # Number of airflow triggerers in the deployment + replicas: 1 + + # Airflow Dag Processor Config + dagProcessor: + enabled: false + # Number of airflow dag processors in the deployment + replicas: 1 + + # Disable Flower when use KubernetesExecutor flower: enabled: false - # Disable internal Redis + + # StatsD settings + statsd: + enabled: true + + # Disable internal PostgreSQL, use external MySQL + postgresql: + enabled: false + + # Disable internal Redis when use KubernetesExecutor redis: enabled: false # Configure external MySQL database @@ -149,12 +212,3 @@ airflow: enabled: true storageClassName: "" size: 1Gi - # API server needs access to DAGs volume for OpenMetadata dynamic DAG generation - apiServer: - extraVolumes: - - name: dags - persistentVolumeClaim: - claimName: '{{ include "airflow.fullname" . }}-dags' - extraVolumeMounts: - - name: dags - mountPath: /opt/airflow/dags