batch/airflow/values.yaml (210 lines of code) (raw):

# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # [START gke_batch_airflow_helm_values] # [START gke_batch_airflow_helm_values_ingress] ingress: web: enabled: true annotations: networking.gke.io/managed-certificates: "airflow" networking.gke.io/v1beta1.FrontendConfig: airflow kubernetes.io/ingress.global-static-ip-name: airflow kubernetes.io/ingress.class: gce path: "/" pathType: "Prefix" hosts: - airflow.BASE_DOMAIN # [END gke_batch_airflow_helm_values_ingress] # Airflow executor executor: "KubernetesExecutor" extraEnvFrom: | - secretRef: name: 'airflow-google-oauth-creds' # Airflow database & redis config # [START gke_batch_airflow_helm_values_metadata_db_connection] data: metadataConnection: user: airflow-metadata protocol: postgresql host: airflow-metadata-db port: 5432 db: airflow-metadata sslmode: disable # [END gke_batch_airflow_helm_values_metadata_db_connection] # Airflow Worker Config # [START gke_batch_airflow_helm_values_workers_config] workers: serviceAccount: create: false name: airflow podAnnotations: gke-gcsfuse/volumes: "true" persistence: enabled: true size: 10Gi storageClassName: standard-rwo resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi nodeSelector: group: "workers" tolerations: - key: group operator: Equal value: "workers" effect: NoSchedule # [END gke_batch_airflow_helm_values_workers_config] # Airflow scheduler settings # [START gke_batch_airflow_helm_values_scheduler_config] scheduler: serviceAccount: create: false name: airflow podAnnotations: gke-gcsfuse/volumes: "true" resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi logGroomerSidecar: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_scheduler_config] # Airflow database migration job settings # [START gke_batch_airflow_helm_values_migrate_database_job_config] migrateDatabaseJob: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_migrate_database_job_config] # Airflow webserver settings # [START gke_batch_airflow_helm_values_webserver_config] webserver: serviceAccount: create: false name: airflow podAnnotations: gke-gcsfuse/volumes: "true" livenessProbe: initialDelaySeconds: 120 timeoutSeconds: 30 failureThreshold: 5 periodSeconds: 60 readinessProbe: initialDelaySeconds: 120 timeoutSeconds: 30 failureThreshold: 5 periodSeconds: 60 resources: limits: cpu: 250m memory: 1.5Gi ephemeral-storage: 1Gi requests: cpu: 250m memory: 1.5Gi ephemeral-storage: 1Gi defaultUser: enabled: false webserverConfig: | import os from flask_appbuilder.security.manager import AUTH_OAUTH from airflow.www.security import AirflowSecurityManager AUTH_TYPE = AUTH_OAUTH SECURITY_MANAGER_CLASS = AirflowSecurityManager AUTH_USER_REGISTRATION = True # allow users who are not already in the FAB DB AUTH_USER_REGISTRATION_ROLE = "Admin" # this role will be given in addition to any AUTH_ROLES_MAPPING OAUTH_PROVIDERS = [ { "name": "google", "icon": "fa-google", "token_key": "access_token", "remote_app": { "client_id": os.environ.get("GOOGLE_OAUTH_CLIENT_ID"), "client_secret": os.environ.get("GOOGLE_OAUTH_CLIENT_SECRET"), "api_base_url": "https://www.googleapis.com/oauth2/v2/", "client_kwargs": {"scope": "email profile"}, "request_token_url": None, "access_token_url": "https://oauth2.googleapis.com/token", "authorize_url": "https://accounts.google.com/o/oauth2/auth", "jwks_uri": "https://www.googleapis.com/oauth2/v3/certs", }, }, ] AUTH_ROLES_SYNC_AT_LOGIN = True PERMANENT_SESSION_LIFETIME = 1800 # [END gke_batch_airflow_helm_values_webserver_config] # Airflow Triggerer Config # [START gke_batch_airflow_helm_values_trigger_config] triggerer: enabled: true serviceAccount: create: false name: airflow podAnnotations: gke-gcsfuse/volumes: "true" persistence: enabled: true size: 10Gi resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi logGroomerSidecar: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_trigger_config] # StatsD settings # [START gke_batch_airflow_helm_values_statsd_config] statsd: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_statsd_config] # Configuration for the redis provisioned by the chart # [START gke_batch_airflow_helm_values_redis_config] redis: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_redis_config] # This runs as a CronJob to cleanup old pods. # [START gke_batch_airflow_helm_values_cleanup_job_config] cleanup: enabled: true resources: limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi # [END gke_batch_airflow_helm_values_cleanup_job_config] postgresql: enabled: false # [START gke_batch_airflow_helm_values_dags_persistence_config] dags: persistence: enabled: true existingClaim: "airflow-dags-gcs" # [END gke_batch_airflow_helm_values_dags_persistence_config] # [END gke_batch_airflow_helm_values] # gitSync: # enabled: true # repo: https://github.com/apache/airflow.git # branch: main # subPath: "tests/dags" # wait: 5 # resources: # limits: # cpu: 250m # memory: 512Mi # ephemeral-storage: 1Gi # requests: # cpu: 250m # memory: 512Mi # ephemeral-storage: 1Gi