| { |
| "$schema": "http://json-schema.org/draft-07/schema", |
| "description": "Default values for airflow. Declare variables to be passed into your templates.", |
| "type": "object", |
| "x-docsSectionOrder": [ |
| "Common", |
| "Airflow", |
| "Images", |
| "Ports", |
| "Database", |
| "PgBouncer", |
| "Scheduler", |
| "Webserver", |
| "Workers", |
| "Flower", |
| "Redis", |
| "Statsd", |
| "Jobs", |
| "Kubernetes", |
| "Ingress", |
| "Kerberos" |
| ], |
| "properties": { |
| "fullnameOverride": { |
| "description": "Provide a name to substitute for the full names of resources", |
| "type": "string", |
| "default": "", |
| "x-docsSection": null |
| }, |
| "nameOverride": { |
| "description": "Override the name of the chart", |
| "type": "string", |
| "default": "", |
| "x-docsSection": null |
| }, |
| "uid": { |
| "description": "User of airflow user.", |
| "type": "integer", |
| "default": 50000, |
| "x-docsSection": "Airflow" |
| }, |
| "gid": { |
| "description": "Group of airflow user.", |
| "type": "integer", |
| "default": 0, |
| "x-docsSection": "Airflow" |
| }, |
| "airflowHome": { |
| "description": "Airflow home directory. Used for mount paths.", |
| "type": "string", |
| "default": "/opt/airflow", |
| "x-docsSection": "Airflow" |
| }, |
| "defaultAirflowRepository": { |
| "description": "Default airflow repository. Overrides all the specific images below.", |
| "type": "string", |
| "default": "apache/airflow", |
| "x-docsSection": "Common" |
| }, |
| "defaultAirflowTag": { |
| "description": "Default airflow tag to deploy.", |
| "type": "string", |
| "default": "2.0.2", |
| "x-docsSection": "Common" |
| }, |
| "airflowVersion": { |
| "description": "Airflow version (Used to make some decisions based on Airflow Version being deployed).", |
| "type": "string", |
| "default": "2.0.2", |
| "x-docsSection": "Common" |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for all pods.", |
| "type": "object", |
| "default": {}, |
| "x-docsSection": "Kubernetes", |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for all pods.", |
| "type": "object", |
| "default": {}, |
| "x-docsSection": "Kubernetes" |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for all pods.", |
| "type": "array", |
| "default": [], |
| "x-docsSection": "Kubernetes" |
| }, |
| "labels": { |
| "description": "Add common labels to all objects and pods defined in this chart.", |
| "type": "object", |
| "default": {}, |
| "x-docsSection": "Kubernetes", |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "ingress": { |
| "description": "Ingress configuration.", |
| "type": "object", |
| "x-docsSection": "Ingress", |
| "properties": { |
| "enabled": { |
| "description": "Enable ingress resource.", |
| "type": "boolean", |
| "default": false |
| }, |
| "web": { |
| "description": "Configuration for the Ingress of the web Service.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "annotations": { |
| "description": "Annotations for the web Ingress.", |
| "type": "object", |
| "default": {} |
| }, |
| "path": { |
| "description": "The path for the web Ingress.", |
| "type": "string", |
| "default": "" |
| }, |
| "host": { |
| "description": "The hostname for the web Ingress.", |
| "type": "string", |
| "default": "" |
| }, |
| "tls": { |
| "description": "Configuration for web Ingress TLS.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable TLS termination for the web Ingress.", |
| "type": "boolean", |
| "default": false |
| }, |
| "secretName": { |
| "description": "The name of a pre-created Secret containing a TLS private key and certificate.", |
| "type": "string", |
| "default": "" |
| } |
| } |
| }, |
| "precedingPaths": { |
| "description": "HTTP paths to add to the web Ingress before the default path.", |
| "type": "array", |
| "default": [] |
| }, |
| "succeedingPaths": { |
| "description": "HTTP paths to add to the web Ingress after the default path.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| }, |
| "flower": { |
| "description": "Configuration for the Ingress of the flower Service.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "annotations": { |
| "description": "Annotations for the flower Ingress.", |
| "type": "object", |
| "default": {} |
| }, |
| "path": { |
| "description": "The path for the flower Ingress.", |
| "type": "string", |
| "default": "" |
| }, |
| "host": { |
| "description": "The hostname for the flower Ingress.", |
| "type": "string", |
| "default": "" |
| }, |
| "tls": { |
| "description": "Configuration for flower Ingress TLS.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable TLS termination for the flower Ingress.", |
| "type": "boolean", |
| "default": false |
| }, |
| "secretName": { |
| "description": "The name of a pre-created Secret containing a TLS private key and certificate.", |
| "type": "string", |
| "default": "" |
| } |
| } |
| }, |
| "precedingPaths": { |
| "description": "HTTP paths to add to the flower Ingress before the default path.", |
| "type": "array", |
| "default": [] |
| }, |
| "succeedingPaths": { |
| "description": "HTTP paths to add to the flower Ingress after the default path.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| } |
| } |
| }, |
| "networkPolicies": { |
| "description": "Network policy configuration.", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enabled network policies.", |
| "type": "boolean", |
| "default": false |
| } |
| } |
| }, |
| "airflowPodAnnotations": { |
| "description": "Extra annotations to apply to all Airflow pods.", |
| "type": "object", |
| "default": {}, |
| "x-docsSection": "Kubernetes" |
| }, |
| "airflowConfigAnnotations": { |
| "description": "Extra annotations to apply to the main Airflow configmap.", |
| "type": "object", |
| "default": {}, |
| "x-docsSection": "Kubernetes" |
| }, |
| "airflowLocalSettings": { |
| "description": "`airflow_local_settings` file as a string.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Common", |
| "default": null |
| }, |
| "rbac": { |
| "description": "Enable RBAC (default on most clusters these days).", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "properties": { |
| "create": { |
| "description": "Specifies whether RBAC resources should be created.", |
| "type": "boolean", |
| "default": true |
| } |
| } |
| }, |
| "executor": { |
| "description": "Airflow executor.", |
| "type": "string", |
| "x-docsSection": "Common", |
| "default": "CeleryExecutor", |
| "enum": [ |
| "LocalExecutor", |
| "CeleryExecutor", |
| "KubernetesExecutor", |
| "CeleryKubernetesExecutor" |
| ] |
| }, |
| "allowPodLaunching": { |
| "description": "Whether various Airflow components launch pods.", |
| "type": "boolean", |
| "x-docsSection": "Airflow", |
| "default": true |
| }, |
| "images": { |
| "description": "Images.", |
| "type": "object", |
| "x-docsSection": "Images", |
| "additionalProperties": false, |
| "properties": { |
| "airflow": { |
| "description": "Configuration of the airflow image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The airflow image repository.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "tag": { |
| "description": "The airflow image tag.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "pullPolicy": { |
| "description": "The airflow image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "pod_template": { |
| "description": "Configuration of the pod_template image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The pod_template image repository.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "tag": { |
| "description": "The pod_template image tag.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "pullPolicy": { |
| "description": "The pod_template image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "flower": { |
| "description": "Configuration of the flower image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The flower image repository.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "tag": { |
| "description": "The flower image tag.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "pullPolicy": { |
| "description": "The flower image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "statsd": { |
| "description": "Configuration of the statsd image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The statsd image repository.", |
| "type": "string", |
| "default": "apache/airflow" |
| }, |
| "tag": { |
| "description": "The statsd image tag.", |
| "type": "string", |
| "default": "airflow-statsd-exporter-2021.04.28-v0.17.0" |
| }, |
| "pullPolicy": { |
| "description": "The statsd image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "redis": { |
| "description": "Configuration of the redis image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The redis image repository.", |
| "type": "string", |
| "default": "redis" |
| }, |
| "tag": { |
| "description": "The redis image tag.", |
| "type": "string", |
| "default": "6-buster" |
| }, |
| "pullPolicy": { |
| "description": "The redis image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "pgbouncer": { |
| "description": "Configuration of the PgBouncer image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The PgBouncer image repository.", |
| "type": "string", |
| "default": "apache/airflow" |
| }, |
| "tag": { |
| "description": "The PgBouncer image tag.", |
| "type": "string", |
| "default": "airflow-pgbouncer-2021.04.28-1.14.0" |
| }, |
| "pullPolicy": { |
| "description": "The PgBouncer image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "pgbouncerExporter": { |
| "description": "Configuration of the PgBouncer exporter image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The PgBouncer exporter image repository.", |
| "type": "string", |
| "default": "apache/airflow" |
| }, |
| "tag": { |
| "description": "The PgBouncer exporter image tag.", |
| "type": "string", |
| "default": "airflow-pgbouncer-exporter-2021.04.28-0.5.0" |
| }, |
| "pullPolicy": { |
| "description": "The PgBouncer exporter image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| }, |
| "gitSync": { |
| "description": "Configuration of the gitSync image.", |
| "type": "object", |
| "properties": { |
| "repository": { |
| "description": "The gitSync image repository.", |
| "type": "string", |
| "default": "k8s.gcr.io/git-sync/git-sync" |
| }, |
| "tag": { |
| "description": "The gitSync image tag.", |
| "type": "string", |
| "default": "v3.3.0" |
| }, |
| "pullPolicy": { |
| "description": "The gitSync image pull policy.", |
| "type": "string", |
| "enum": [ |
| "Always", |
| "Never", |
| "IfNotPresent" |
| ], |
| "default": "IfNotPresent" |
| } |
| } |
| } |
| } |
| }, |
| "env": { |
| "description": "Environment variables for all Airflow containers.", |
| "type": "array", |
| "x-docsSection": "Airflow", |
| "default": [], |
| "examples": [ |
| { |
| "name": "MYENVVAR", |
| "value": "something_fun" |
| } |
| ] |
| }, |
| "secret": { |
| "description": "Secrets for all Airflow containers.", |
| "type": "array", |
| "x-docsSection": "Airflow", |
| "default": [], |
| "examples": [ |
| { |
| "envName": "SecretEnvVar", |
| "secretName": "somesecret", |
| "secretKey": "somekey" |
| } |
| ] |
| }, |
| "extraEnv": { |
| "description": "Extra env 'items' that will be added to the definition of Airflow containers; a string is expected (can be templated).", |
| "type": [ |
| "null", |
| "string" |
| ], |
| "x-docsSection": "Airflow", |
| "default": null, |
| "examples": [ |
| "- name: AIRFLOW__CORE__LOAD_EXAMPLES\n value: True" |
| ] |
| }, |
| "extraEnvFrom": { |
| "description": "Extra envFrom 'items' that will be added to the definition of Airflow containers; a string is expected (can be templated).", |
| "type": [ |
| "null", |
| "string" |
| ], |
| "x-docsSection": "Airflow", |
| "default": null, |
| "examples": [ |
| "- secretRef:\n name: '{{ .Release.Name }}-airflow-connections'", |
| "- configMapRef:\n name: '{{ .Release.Name }}-airflow-variables'" |
| ] |
| }, |
| "extraSecrets": { |
| "description": "Extra secrets that will be managed by the chart.", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "default": {}, |
| "additionalProperties": { |
| "description": "Name of the secret (can be templated).", |
| "type": "object", |
| "minProperties": 1, |
| "additionalProperties": false, |
| "properties": { |
| "data": { |
| "description": "Content **as string** for the 'data' item of the secret (can be templated)", |
| "type": "string" |
| }, |
| "stringData": { |
| "description": "Content **as string** for the 'stringData' item of the secret (can be templated)", |
| "type": "string" |
| } |
| } |
| }, |
| "examples": [ |
| { |
| "{{ .Release.Name }}-airflow-connections": { |
| "data": "AIRFLOW_CONN_GCP: 'base64_encoded_gcp_conn_string'\nAIRFLOW_CONN_AWS: 'base64_encoded_aws_conn_string'", |
| "stringData": "AIRFLOW_CONN_OTHER: 'other_conn'" |
| } |
| } |
| ] |
| }, |
| "extraConfigMaps": { |
| "description": "Extra ConfigMaps that will be managed by the chart.", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "default": {}, |
| "additionalProperties": { |
| "description": "Name of the configMap (can be templated).", |
| "type": "object", |
| "minProperties": 1, |
| "additionalProperties": false, |
| "properties": { |
| "data": { |
| "description": "Content **as string** for the 'data' item of the secret (can be templated)", |
| "type": "string" |
| } |
| } |
| }, |
| "examples": [ |
| { |
| "{{ .Release.Name }}-airflow-variables": { |
| "data": "AIRFLOW_VAR_HELLO_MESSAGE: 'Hi!'\nAIRFLOW_VAR_KUBERNETES_NAMESPACE: '{{ .Release.Namespace }}'" |
| } |
| } |
| ] |
| }, |
| "data": { |
| "description": "Airflow database & redis configuration.", |
| "type": "object", |
| "x-docsSection": "Database", |
| "additionalProperties": false, |
| "properties": { |
| "metadataSecretName": { |
| "description": "Metadata connection string secret.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "resultBackendSecretName": { |
| "description": "Result backend connection string secret.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "brokerUrlSecretName": { |
| "description": "Redis broker URL secret.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Redis", |
| "default": null |
| }, |
| "metadataConnection": { |
| "description": "Metadata connection configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "user": { |
| "description": "The database user.", |
| "type": "string", |
| "default": "postgres" |
| }, |
| "pass": { |
| "description": "The user's password.", |
| "type": "string", |
| "default": "postgres" |
| }, |
| "protocol": { |
| "description": "The database protocol.", |
| "type": "string", |
| "default": "postgresql" |
| }, |
| "host": { |
| "description": "The database host.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "port": { |
| "description": "The database port.", |
| "type": "integer", |
| "default": 5432 |
| }, |
| "db": { |
| "description": "The name of the database.", |
| "type": "string", |
| "default": "postgres" |
| }, |
| "sslmode": { |
| "description": "The database SSL parameter.", |
| "type": "string", |
| "default": "disable" |
| } |
| } |
| }, |
| "resultBackendConnection": { |
| "description": "Result backend connection configuration.", |
| "type": [ |
| "object", |
| "null" |
| ], |
| "default": null, |
| "additionalProperties": false, |
| "properties": { |
| "user": { |
| "description": "The database user.", |
| "type": "string", |
| "default": null |
| }, |
| "pass": { |
| "description": "The database password.", |
| "type": "string", |
| "default": null |
| }, |
| "protocol": { |
| "description": "The database protocol.", |
| "type": "string", |
| "default": null |
| }, |
| "host": { |
| "description": "The database host.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "port": { |
| "description": "The database port.", |
| "type": "integer", |
| "default": null |
| }, |
| "db": { |
| "description": "The name of the database.", |
| "type": "string", |
| "default": null |
| }, |
| "sslmode": { |
| "description": "The database SSL parameter.", |
| "type": "string", |
| "default": null |
| } |
| }, |
| "required": [ |
| "user", |
| "pass", |
| "protocol", |
| "host", |
| "port", |
| "db", |
| "sslmode" |
| ] |
| }, |
| "brokerUrl": { |
| "description": "Direct url to the redis broker (when using an external redis instance).", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Redis", |
| "default": null |
| } |
| } |
| }, |
| "fernetKey": { |
| "description": "The Fernet key used to encrypt passwords.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Common", |
| "default": null |
| }, |
| "fernetKeySecretName": { |
| "description": "The Fernet key secret name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Airflow", |
| "default": null |
| }, |
| "kerberos": { |
| "description": "Kerberos configurations for airflow", |
| "type": "object", |
| "x-docsSection": "Kerberos", |
| "properties": { |
| "enabled": { |
| "description": "Enable kerberos.", |
| "type": "boolean", |
| "default": false |
| }, |
| "ccacheMountPath": { |
| "description": "Path to mount shared volume for kerberos credentials cache.", |
| "type": "string", |
| "default": "/var/kerberos-ccache" |
| }, |
| "ccacheFileName": { |
| "description": "Name for kerberos credentials cache file.", |
| "type": "string", |
| "default": "cache" |
| }, |
| "configPath": { |
| "description": "Path to mount krb5.conf kerberos configuration file.", |
| "type": "string", |
| "default": "/etc/krb5.conf" |
| }, |
| "keytabPath": { |
| "description": "Path to mount the keytab for refreshing credentials in the kerberos sidecar.", |
| "type": "string", |
| "default": "/etc/airflow.keytab" |
| }, |
| "principal": { |
| "description": "Principal to use when refreshing kerberos credentials.", |
| "type": "string", |
| "default": "airflow@FOO.COM" |
| }, |
| "reinitFrequency": { |
| "description": "How often (in seconds) airflow kerberos will reinitialize the credentials cache.", |
| "type": "integer", |
| "default": 3600 |
| }, |
| "config": { |
| "description": "Contents of krb5.conf.", |
| "type": "string", |
| "default": "See values.yaml" |
| } |
| } |
| }, |
| "workers": { |
| "description": "Airflow Worker configuration.", |
| "type": "object", |
| "x-docsSection": "Workers", |
| "additionalProperties": false, |
| "properties": { |
| "replicas": { |
| "description": "Number of Airflow Celery workers in StatefulSet.", |
| "type": "integer", |
| "default": 1 |
| }, |
| "updateStrategy": { |
| "description": "Specifies the strategy used to replace old Pods by new ones when deployed as a StatefulSet.", |
| "type": [ |
| "null", |
| "object" |
| ], |
| "default": null |
| }, |
| "strategy": { |
| "description": "Specifies the strategy used to replace old Pods by new ones when deployed as a Deployment.", |
| "type": [ |
| "null", |
| "object" |
| ], |
| "default": { |
| "rollingUpdate": { |
| "maxSurge": "100%", |
| "maxUnavailable": "50%" |
| } |
| } |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the worker Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "keda": { |
| "description": "KEDA configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Allow KEDA autoscaling. `Persistence.enabled` must be set to false to use KEDA.", |
| "type": "boolean", |
| "default": false |
| }, |
| "namespaceLabels": { |
| "description": "Labels used in `matchLabels` for namespace in the PgBouncer NetworkPolicy.", |
| "type": "object", |
| "default": {} |
| }, |
| "pollingInterval": { |
| "description": "How often KEDA polls the airflow DB to report new scale requests to the HPA.", |
| "type": "integer", |
| "default": 5 |
| }, |
| "cooldownPeriod": { |
| "description": "How many seconds KEDA will wait before scaling to zero.", |
| "type": "integer", |
| "default": 30 |
| }, |
| "maxReplicaCount": { |
| "description": "Maximum number of workers created by KEDA.", |
| "type": "integer", |
| "default": 10 |
| } |
| } |
| }, |
| "persistence": { |
| "description": "Persistence configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable persistent volumes.", |
| "type": "boolean", |
| "default": true |
| }, |
| "size": { |
| "description": "Volume size for worker StatefulSet.", |
| "type": "string", |
| "default": "100Gi" |
| }, |
| "storageClassName": { |
| "description": "If using a custom StorageClass, pass name ref to all StatefulSets here.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "fixPermissions": { |
| "description": "Execute init container to chown log directory. This is currently only needed in kind, due to usage of local-path provisioner.", |
| "type": "boolean", |
| "default": false |
| } |
| } |
| }, |
| "kerberosSidecar": { |
| "description": "Kerberos sidecar for Airflow workers.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable Kerberos sidecar for the worker.", |
| "type": "boolean", |
| "default": false |
| }, |
| "resources": { |
| "description": "Resources on workers kerberos sidecar", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| } |
| } |
| }, |
| "resources": { |
| "description": "Resources on workers", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "terminationGracePeriodSeconds": { |
| "description": "Grace period for tasks to finish after SIGTERM is sent from Kubernetes.", |
| "type": "integer", |
| "default": 600 |
| }, |
| "safeToEvict": { |
| "description": "This setting tells Kubernetes that it's ok to evict when it wants to scale a node down.", |
| "type": "boolean", |
| "default": true |
| }, |
| "extraContainers": { |
| "description": "Launch additional containers into workers.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumes": { |
| "description": "Mount additional volumes into workers.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumeMounts": { |
| "description": "Mount additional volumes into workers.", |
| "type": "array", |
| "default": [] |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for worker pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for worker pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for worker pods.", |
| "type": "array", |
| "default": [] |
| }, |
| "hostAliases": { |
| "description": "Specify HostAliases for workers.", |
| "type": "array", |
| "default": [], |
| "examples": [ |
| { |
| "ip": "127.0.0.2", |
| "hostnames": [ |
| "test.hostname.one" |
| ] |
| }, |
| { |
| "ip": "127.0.0.3", |
| "hostnames": [ |
| "test.hostname.two" |
| ] |
| } |
| ] |
| } |
| } |
| }, |
| "scheduler": { |
| "description": "Airflow scheduler settings.", |
| "type": "object", |
| "x-docsSection": "Scheduler", |
| "additionalProperties": false, |
| "properties": { |
| "livenessProbe": { |
| "description": "Liveness probe configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "initialDelaySeconds": { |
| "description": "Scheduler Liveness probe initial delay.", |
| "type": "integer", |
| "default": 10 |
| }, |
| "timeoutSeconds": { |
| "description": "Scheduler Liveness probe timeout seconds.", |
| "type": "integer", |
| "default": 5 |
| }, |
| "failureThreshold": { |
| "description": "Scheduler Liveness probe failure threshold.", |
| "type": "integer", |
| "default": 10 |
| }, |
| "periodSeconds": { |
| "description": "Webserver Liveness probe period seconds.", |
| "type": "integer", |
| "default": 30 |
| } |
| } |
| }, |
| "replicas": { |
| "description": "Airflow 2.0 allows users to run multiple schedulers. This feature is only recommended for MySQL 8+ and PostgreSQL", |
| "type": "integer", |
| "default": 1 |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the scheduler Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "podDisruptionBudget": { |
| "description": "Scheduler pod disruption budget.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable pod disruption budget.", |
| "type": "boolean", |
| "default": false |
| }, |
| "config": { |
| "description": "Disruption budget configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "maxUnavailable": { |
| "description": "Max unavailable pods for scheduler.", |
| "type": "integer", |
| "default": 1 |
| } |
| } |
| } |
| } |
| }, |
| "resources": { |
| "description": "Resources for scheduler pods.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "safeToEvict": { |
| "description": "This setting tells Kubernetes that its ok to evict when it wants to scale a node down.", |
| "type": "boolean", |
| "default": true |
| }, |
| "extraContainers": { |
| "description": "Launch additional containers into scheduler.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumes": { |
| "description": "Mount additional volumes into scheduler.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumeMounts": { |
| "description": "Mount additional volumes into scheduler.", |
| "type": "array", |
| "default": [] |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for scheduler pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for scheduler pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for scheduler pods.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| }, |
| "createUserJob": { |
| "description": "Airflow job to create a user settings.", |
| "type": "object", |
| "x-docsSection": "Jobs", |
| "additionalProperties": false, |
| "properties": { |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the create user job Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| } |
| } |
| }, |
| "migrateDatabaseJob": { |
| "description": "Airflow job to migrate databases settings.", |
| "type": "object", |
| "x-docsSection": "Jobs", |
| "additionalProperties": false, |
| "properties": { |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the migrate database job Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| } |
| } |
| }, |
| "webserver": { |
| "description": "Airflow webserver settings.", |
| "type": "object", |
| "x-docsSection": "Webserver", |
| "additionalProperties": false, |
| "properties": { |
| "allowPodLogReading": { |
| "description": "Allow webserver to read k8s pod logs. Useful when you don't have an external log store.", |
| "type": "boolean", |
| "default": true |
| }, |
| "livenessProbe": { |
| "description": "Liveness probe configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "initialDelaySeconds": { |
| "description": "Webserver Liveness probe initial delay.", |
| "type": "integer", |
| "default": 15 |
| }, |
| "timeoutSeconds": { |
| "description": "Webserver Liveness probe timeout seconds.", |
| "type": "integer", |
| "default": 30 |
| }, |
| "failureThreshold": { |
| "description": "Webserver Liveness probe failure threshold.", |
| "type": "integer", |
| "default": 20 |
| }, |
| "periodSeconds": { |
| "description": "Webserver Liveness probe period seconds.", |
| "type": "integer", |
| "default": 5 |
| } |
| } |
| }, |
| "readinessProbe": { |
| "description": "Readiness probe configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "initialDelaySeconds": { |
| "description": "Webserver Readiness probe initial delay.", |
| "type": "integer", |
| "default": 15 |
| }, |
| "timeoutSeconds": { |
| "description": "Webserver Readiness probe timeout seconds.", |
| "type": "integer", |
| "default": 30 |
| }, |
| "failureThreshold": { |
| "description": "Webserver Readiness probe failure threshold.", |
| "type": "integer", |
| "default": 20 |
| }, |
| "periodSeconds": { |
| "description": "Webserver Readiness probe period seconds.", |
| "type": "integer", |
| "default": 5 |
| } |
| } |
| }, |
| "replicas": { |
| "description": "How many Airflow webserver replicas should run.", |
| "type": "integer", |
| "default": 1 |
| }, |
| "strategy": { |
| "description": "Specifies the strategy used to replace old Pods by new ones.", |
| "type": [ |
| "null", |
| "object" |
| ], |
| "default": null |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the webserver Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "extraNetworkPolicies": { |
| "description": "Additional NetworkPolicies as needed.", |
| "type": "array", |
| "default": [] |
| }, |
| "resources": { |
| "description": "Resources for webserver pods.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "defaultUser": { |
| "description": "Optional default Airflow user information", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable default user creation.", |
| "type": "boolean", |
| "x-docsSection": "Common", |
| "default": true |
| }, |
| "role": { |
| "description": "Default user role.", |
| "type": "string", |
| "default": "Admin" |
| }, |
| "username": { |
| "description": "Default user username.", |
| "type": "string", |
| "default": "admin" |
| }, |
| "email": { |
| "description": "Default user email address.", |
| "type": "string", |
| "default": "admin@example.com" |
| }, |
| "firstName": { |
| "description": "Default user firstname.", |
| "type": "string", |
| "default": "admin" |
| }, |
| "lastName": { |
| "description": "Default user lastname.", |
| "type": "string", |
| "default": "user" |
| }, |
| "password": { |
| "description": "Default user password.", |
| "type": "string", |
| "default": "admin" |
| } |
| } |
| }, |
| "extraContainers": { |
| "description": "Launch additional containers into webserver.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumes": { |
| "description": "Mount additional volumes into webserver.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraVolumeMounts": { |
| "description": "Mount additional volumes into webserver.", |
| "type": "array", |
| "default": [] |
| }, |
| "webserverConfig": { |
| "description": "This will be mounted into the Airflow webserver as a custom `webserver_config.py`. You can bake a `webserver_config.py` in to your image instead.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Common", |
| "default": null, |
| "examples": [ |
| "from airflow import configuration as conf\n\n# The SQLAlchemy connection string.\nSQLALCHEMY_DATABASE_URI = conf.get('core', 'SQL_ALCHEMY_CONN')\n\n# Flask-WTF flag for CSRF\nCSRF_ENABLED = True" |
| ] |
| }, |
| "service": { |
| "description": "Webserver Service configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "type": { |
| "description": "Webserver Service type.", |
| "type": "string", |
| "default": "ClusterIP" |
| }, |
| "annotations": { |
| "description": "Annotations for the webserver Service.", |
| "type": "object", |
| "default": {} |
| }, |
| "loadBalancerIP": { |
| "description": "Webserver Service loadBalancerIP.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for webserver pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for webserver pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for webserver pods.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| }, |
| "flower": { |
| "description": "Flower settings.", |
| "type": "object", |
| "x-docsSection": "Flower", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable Flower.", |
| "type": "boolean", |
| "default": true |
| }, |
| "extraNetworkPolicies": { |
| "description": "Additional NetworkPolicies as needed.", |
| "type": "array", |
| "default": [] |
| }, |
| "resources": { |
| "description": "Resources for Flower pods.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "secretName": { |
| "description": "A secret containing the user and password pair.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "username": { |
| "description": "Username use to access Flower.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "password": { |
| "description": "Password use to access Flower.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "service": { |
| "description": "Flower Service configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "type": { |
| "description": "Flower Service type.", |
| "type": "string", |
| "default": "ClusterIP" |
| }, |
| "annotations": { |
| "description": "Annotations for the flower Service.", |
| "type": "object", |
| "default": {} |
| }, |
| "loadBalancerIP": { |
| "description": "Flower Service loadBalancerIP.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the worker Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for Flower pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for Flower pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for Flower pods.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| }, |
| "statsd": { |
| "description": "StatsD settings.", |
| "type": "object", |
| "x-docsSection": "Statsd", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable StatsD.", |
| "type": "boolean", |
| "default": true |
| }, |
| "extraNetworkPolicies": { |
| "description": "Additional NetworkPolicies as needed.", |
| "type": "array", |
| "default": [] |
| }, |
| "resources": { |
| "description": "Resources for StatsD pods.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "service": { |
| "description": "StatsD Service configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "extraAnnotations": { |
| "description": "Extra annotations for the StatsD Service.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the StatsD Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "uid": { |
| "description": "StatsD run as user parameter.", |
| "type": "integer", |
| "default": 65534 |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for StatsD pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for StatsD pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for StatsD pods.", |
| "type": "array", |
| "default": [] |
| }, |
| "extraMappings": { |
| "description": "Additional mappings for StatsD exporter.", |
| "type": "array", |
| "default": [] |
| } |
| } |
| }, |
| "pgbouncer": { |
| "description": "PgBouncer settings.", |
| "type": "object", |
| "x-docsSection": "PgBouncer", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable PgBouncer.", |
| "type": "boolean", |
| "x-docsSection": "Common", |
| "default": false |
| }, |
| "extraNetworkPolicies": { |
| "description": "Additional NetworkPolicies as needed.", |
| "type": "array", |
| "default": [] |
| }, |
| "metadataPoolSize": { |
| "description": "Metadata pool size.", |
| "type": "integer", |
| "default": 10 |
| }, |
| "resultBackendPoolSize": { |
| "description": "Result backend pool size.", |
| "type": "integer", |
| "default": 5 |
| }, |
| "maxClientConn": { |
| "description": "Maximum clients that can connect to PgBouncer (higher = more file descriptors).", |
| "type": "integer", |
| "default": 100 |
| }, |
| "configSecretName": { |
| "description": "The PgBouncer config Secret name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "podDisruptionBudget": { |
| "description": "PgBouncer PodDisruptionBudget.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enabled PodDistributionBudget.", |
| "type": "boolean", |
| "default": false |
| }, |
| "config": { |
| "description": "Pod distribution configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "maxUnavailable": { |
| "description": "Max unavailable pods for PgBouncer.", |
| "type": "integer", |
| "default": 1 |
| } |
| } |
| } |
| } |
| }, |
| "resources": { |
| "description": "Resources for the PgBouncer pods.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "service": { |
| "description": "PgBouncer Service configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "extraAnnotations": { |
| "description": "Extra annotations for the PgBouncer Service.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "verbose": { |
| "description": "Increase PgBouncer verbosity.", |
| "type": "integer", |
| "default": 0 |
| }, |
| "logDisconnections": { |
| "description": "Log disconnections with reasons.", |
| "type": "integer", |
| "default": 0 |
| }, |
| "logConnections": { |
| "description": "Log successful logins.", |
| "type": "integer", |
| "default": 0 |
| }, |
| "sslmode": { |
| "description": "SSL mode for PgBouncer.", |
| "type": "string", |
| "enum": [ |
| "disable", |
| "allow", |
| "prefer", |
| "require", |
| "verify-ca", |
| "verify-full" |
| ], |
| "default": "prefer" |
| }, |
| "ciphers": { |
| "description": "The allowed ciphers, might be 'fast', 'normal' or list ciphers separated with ':'.", |
| "type": "string", |
| "default": "normal" |
| }, |
| "ssl": { |
| "description": "SSL certificates for PgBouncer connection.", |
| "type": "object", |
| "properties": { |
| "ca": { |
| "description": "Certificate Authority for server side", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "cert": { |
| "description": "Server Certificate for server side", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "key": { |
| "description": "Private key used to authenticate with the server", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the worker Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for PgBouncer pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for PgBouncer pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for PgBouncer pods.", |
| "type": "array", |
| "default": [] |
| }, |
| "uid": { |
| "description": "PgBouncer run as user parameter.", |
| "type": "integer", |
| "default": 65534 |
| } |
| } |
| }, |
| "redis": { |
| "description": "Configuration for the Redis provisioned by the chart.", |
| "type": "object", |
| "x-docsSection": "Redis", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable the Redis provisioned by the chart (you can also use an external Redis instance with `data.brokerUrl` or `data.brokerUrlSecretName`).", |
| "type": "boolean", |
| "default": true |
| }, |
| "terminationGracePeriodSeconds": { |
| "description": "Grace period for Redis to exit after SIGTERM is sent from Kubernetes.", |
| "type": "integer", |
| "default": 600 |
| }, |
| "persistence": { |
| "description": "Persistence configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable persistent volumes.", |
| "type": "boolean", |
| "default": true |
| }, |
| "size": { |
| "description": "Volume size for Redis StatefulSet.", |
| "type": "string", |
| "default": "1Gi" |
| }, |
| "storageClassName": { |
| "description": "If using a custom StorageClass, pass name ref to all StatefulSets here.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| }, |
| "resources": { |
| "description": "Resources for the Redis pods", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "limits": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| }, |
| "requests": { |
| "cpu": "100m", |
| "memory": "128Mi" |
| } |
| } |
| ] |
| }, |
| "passwordSecretName": { |
| "description": "Redis password secret.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "password": { |
| "description": "If password is set, create secret with it, else generate a new one on install.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "safeToEvict": { |
| "description": "This setting tells Kubernetes that its ok to evict when it wants to scale a node down.", |
| "type": "boolean", |
| "default": true |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for Redis pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for Redis pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for Redis pods.", |
| "type": "array", |
| "default": [] |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the worker Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| } |
| } |
| }, |
| "registry": { |
| "description": "Auth secret for a private registry. This is used if pulling Airflow images from a private registry.", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "additionalProperties": false, |
| "properties": { |
| "secretName": { |
| "description": "Registry connection string secret.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "connection": { |
| "description": "Registry connection configuration.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "user": "...", |
| "pass": "...", |
| "host": "...", |
| "email": "..." |
| } |
| ] |
| } |
| } |
| }, |
| "elasticsearch": { |
| "description": "Elasticsearch logging configuration.", |
| "type": "object", |
| "x-docsSection": "Airflow", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable Elasticsearch task logging.", |
| "type": "boolean", |
| "default": false |
| }, |
| "secretName": { |
| "description": "A secret containing the connection string.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "connection": { |
| "description": "Elasticsearch connection configuration.", |
| "type": "object", |
| "default": {}, |
| "examples": [ |
| { |
| "user": "...", |
| "pass": "...", |
| "host": "...", |
| "email": "..." |
| } |
| ] |
| } |
| } |
| }, |
| "ports": { |
| "description": "All ports used by chart.", |
| "type": "object", |
| "x-docsSection": "Ports", |
| "additionalProperties": false, |
| "properties": { |
| "flowerUI": { |
| "description": "Flower UI port.", |
| "type": "integer", |
| "default": 5555 |
| }, |
| "airflowUI": { |
| "description": "Airflow UI port.", |
| "type": "integer", |
| "default": 8080 |
| }, |
| "workerLogs": { |
| "description": "Worker logs port.", |
| "type": "integer", |
| "default": 8793 |
| }, |
| "redisDB": { |
| "description": "Redis port.", |
| "type": "integer", |
| "default": 6379 |
| }, |
| "statsdIngest": { |
| "description": "StatsD ingest port.", |
| "type": "integer", |
| "default": 9125 |
| }, |
| "statsdScrape": { |
| "description": "StatsD scrape port.", |
| "type": "integer", |
| "default": 9102 |
| }, |
| "pgbouncer": { |
| "description": "PgBouncer port.", |
| "type": "integer", |
| "default": 6543 |
| }, |
| "pgbouncerScrape": { |
| "description": "PgBouncer scrape port.", |
| "type": "integer", |
| "default": 9127 |
| } |
| } |
| }, |
| "quotas": { |
| "description": "Define any ResourceQuotas for namespace.", |
| "type": "object", |
| "x-docsSection": "Kubernetes", |
| "default": {} |
| }, |
| "limits": { |
| "description": "Define default/max/min values for pods and containers in namespace.", |
| "type": "array", |
| "x-docsSection": "Kubernetes", |
| "default": [] |
| }, |
| "cleanup": { |
| "description": "This runs as a CronJob to cleanup old pods.", |
| "type": "object", |
| "x-docsSection": "Jobs", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable cleanup.", |
| "type": "boolean", |
| "default": false |
| }, |
| "schedule": { |
| "description": "Cleanup schedule.", |
| "type": "string", |
| "default": "*/15 * * * *" |
| }, |
| "nodeSelector": { |
| "description": "Select certain nodes for cleanup pods.", |
| "type": "object", |
| "default": {}, |
| "additionalProperties": { |
| "type": "string" |
| } |
| }, |
| "affinity": { |
| "description": "Specify scheduling constraints for cleanup pods.", |
| "type": "object", |
| "default": {} |
| }, |
| "tolerations": { |
| "description": "Specify Tolerations for cleanup pods.", |
| "type": "array", |
| "default": [] |
| }, |
| "serviceAccount": { |
| "description": "Create ServiceAccount.", |
| "type": "object", |
| "properties": { |
| "create": { |
| "description": "Specifies whether a ServiceAccount should be created.", |
| "type": "boolean", |
| "default": true |
| }, |
| "name": { |
| "description": "The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "annotations": { |
| "description": "Annotations to add to the cleanup CronJob Kubernetes ServiceAccount.", |
| "type": "object", |
| "default": {} |
| } |
| } |
| } |
| } |
| }, |
| "postgresql": { |
| "description": "Configuration for PostgreSQL subchart.", |
| "type": "object", |
| "x-docsSection": "Database", |
| "properties": { |
| "enabled": { |
| "description": "Enable PostgreSQL subchart.", |
| "type": "boolean", |
| "default": true |
| }, |
| "postgresqlPassword": { |
| "description": "PostgreSQL password.", |
| "type": "string", |
| "default": "postgres" |
| }, |
| "postgresqlUsername": { |
| "description": "PostgreSQL username.", |
| "type": "string", |
| "default": "postgres" |
| } |
| } |
| }, |
| "config": { |
| "description": "Settings to go into the mounted airflow.cfg", |
| "type": "object", |
| "x-docsSection": "Common", |
| "default": "See values.yaml", |
| "additionalProperties": { |
| "type": "object", |
| "additionalProperties": { |
| "type": [ |
| "boolean", |
| "integer", |
| "number", |
| "string" |
| ] |
| } |
| } |
| }, |
| "multiNamespaceMode": { |
| "description": "Whether the KubernetesExecutor can launch workers and pods in multiple namespaces", |
| "x-docsSection": "Airflow", |
| "type": "boolean", |
| "default": false |
| }, |
| "podTemplate": { |
| "description": "pod_template used for KubernetesExecutor workers", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "x-docsSection": "Airflow", |
| "default": null |
| }, |
| "dags": { |
| "description": "DAGs settings.", |
| "type": "object", |
| "x-docsSection": "Airflow", |
| "additionalProperties": false, |
| "properties": { |
| "persistence": { |
| "description": "Persistence configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable persistent volume for storing dags.", |
| "type": "boolean", |
| "default": false |
| }, |
| "size": { |
| "description": "Volume size for dags.", |
| "type": "string", |
| "default": "1Gi" |
| }, |
| "storageClassName": { |
| "description": "If using a custom StorageClass, pass name here.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "accessMode": { |
| "description": "Access mode of the persistent volume.", |
| "type": "string", |
| "enum": [ |
| "ReadWriteOnce", |
| "ReadOnlyMany", |
| "ReadWriteMany" |
| ], |
| "default": "ReadWriteOnce" |
| }, |
| "existingClaim": { |
| "description": "The name of an existing PVC to use.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| }, |
| "gitSync": { |
| "description": "Git sync settings.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable Git sync.", |
| "type": "boolean", |
| "default": false |
| }, |
| "excludeWebserver": { |
| "description": "Disable Git sync on webserver as it is not needed when DAG Serialization is enabled.", |
| "type": "boolean", |
| "default": false |
| }, |
| "repo": { |
| "description": "Git repository.", |
| "type": "string", |
| "default": "https://github.com/apache/airflow.git" |
| }, |
| "branch": { |
| "description": "Git branch", |
| "type": "string", |
| "default": "v2-1-stable" |
| }, |
| "rev": { |
| "description": "Git revision.", |
| "type": "string", |
| "default": "HEAD" |
| }, |
| "depth": { |
| "description": "Repository depth.", |
| "type": "integer", |
| "default": 1 |
| }, |
| "maxFailures": { |
| "description": "The number of consecutive failures allowed before aborting.", |
| "type": "integer", |
| "default": 0 |
| }, |
| "subPath": { |
| "description": "Subpath within the repo where dags are located.", |
| "type": "string", |
| "default": "tests/dags" |
| }, |
| "wait": { |
| "description": "Interval between git sync attempts in seconds.", |
| "type": "integer", |
| "default": 60 |
| }, |
| "containerName": { |
| "description": "Git sync container name.", |
| "type": "string", |
| "default": "git-sync" |
| }, |
| "uid": { |
| "description": "Git sync container run as user parameter.", |
| "type": "integer", |
| "default": 65533 |
| }, |
| "extraVolumeMounts": { |
| "description": "Mount additional volumes into git sync container.", |
| "type": "array", |
| "default": [] |
| }, |
| "credentialsSecret": { |
| "description": "Name of a Secret containing the repo `GIT_SYNC_USERNAME` and `GIT_SYNC_PASSWORD`.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "sshKeySecret": { |
| "description": "Name of a Secret containing the repo `sshKeySecret`.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "knownHosts": { |
| "description": "When using a ssh private key, the contents of your `known_hosts` file.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null, |
| "examples": [ |
| "<host1>,<ip1> <key1>\n<host2>,<ip2> <key2>", |
| "<host1>,<ip1> <key1>" |
| ] |
| }, |
| "env": { |
| "description": "Environment variables for git sync container.", |
| "type": "array", |
| "default": [], |
| "items": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "value": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "name", |
| "value" |
| ], |
| "additionalProperties": false |
| }, |
| "examples": [ |
| { |
| "name": "GIT_SYNC_TIMEOUT", |
| "value": "60" |
| } |
| ] |
| } |
| } |
| } |
| } |
| }, |
| "logs": { |
| "description": "Logs settings.", |
| "type": "object", |
| "x-docsSection": "Airflow", |
| "additionalProperties": false, |
| "properties": { |
| "persistence": { |
| "description": "Persistence configuration.", |
| "type": "object", |
| "additionalProperties": false, |
| "properties": { |
| "enabled": { |
| "description": "Enable persistent volume for storing logs.", |
| "type": "boolean", |
| "default": false |
| }, |
| "size": { |
| "description": "Volume size for logs.", |
| "type": "string", |
| "default": "100Gi" |
| }, |
| "storageClassName": { |
| "description": "If using a custom StorageClass, pass name here.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| }, |
| "existingClaim": { |
| "description": "The name of an existing PVC to use.", |
| "type": [ |
| "string", |
| "null" |
| ], |
| "default": null |
| } |
| } |
| } |
| } |
| } |
| } |
| } |