DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
https://github.com/apache/airflow/issues/64037
Discussion
https://lists.apache.org/thread/9714k5wo2jwz1xwdnh9xnp98hloxms15
Bi-Weekly Interest Group Alignment/Dicuss Call
Helm Release Discussion
Thursday 7 May • 18:00-19:00 CEST (Central European Summer Time)
Link to video call: https://meet.google.com/yjo-ueoq-nak
Complexity Analysis and Rating - Chart Parameters
...
Parameter | Description | Default | Opinion Jens | Opinion Bugra | Opinion Przemek |
|---|---|---|---|---|---|
| airflow_local_settings file as a string (templated). You can bake an airflow_local_settings.py into your image instead. In that case, set this value to null. |
| keep | keep | Keep |
| Airflow version (Used to make some decisions based on Airflow Version being deployed). |
| keep | keep | Keep |
| Annotations to add to the Api secret. |
| Why is this for flask in AF3? | Description remains from v2 terms. | Move under apiServer section |
| The Flask secret key for Airflow Api to encrypt browser session. |
| Why is this for flask in AF3? | Description remains from v2 terms. | Maybe dedicated section for flask-related configs 🤔
|
| This string (templated) will be mounted into the Airflow API Server as a custom webserver_config.py. You can bake a webserver_config.py in to your image instead or specify a configmap containing the webserver_config.py. |
Examples: apiServerConfig: |- from airflow import configuration as conf # The SQLAlchemy connection string. SQLALCHEMY_DATABASE_URI = conf.get('database', 'SQL_ALCHEMY_CONN') # Flask-WTF flag for CSRF CSRF_ENABLED = True | keep Is example still relevant? | This is still relevant if the user is using providers-fab and adding more fine-grained authentication integration through fab. That also generalised to BaseAuthManager and to providers that implement 3rd-party libraries and tools. I think the description should be updated. | |
| The configmap name containing the webserver_config.py. |
Examples: apiServerConfigConfigMapName: my-api-server-configmap | keep | keep | keep |
| Settings to go into the mounted airflow.cfg |
| keep | keep | keep |
| Enable default user creation. |
| keep | keep | If I remember correctly it is only flask-related, so maybe move to flask dedicated section? |
| Default airflow digest to deploy. Overrides tag. |
| keep | keep | keep |
| Default airflow repository. Overrides all the specific images below. |
| keep | keep | keep |
| Default airflow tag to deploy. |
| keep | keep | keep |
| Airflow executor. |
|
|
| keep |
| The Fernet key used to encrypt passwords (can only be set during install, not upgrade). |
| keep | keep | Move to the new encryption section |
| Annotations to add to the Fernet Key secret. |
| keep | keep | |
| Provide a name to substitute for the full names of resources | "" |
|
| keep |
| Secret key used to encode and decode JWTs to authenticate to public and private APIs (can only be set during install, not upgrade). |
| keep | keep | Move to the new encryption section |
| Annotations to add to the JWT secret. |
| keep | keep | |
| Override the name of the chart | "" |
|
| Change to chartNameOverride |
| Enable PgBouncer. |
| keep | keep | Whole section comment is under pgbouncer section |
| Whether to mount the config secret files under /etc/pgbouncer/ by default. |
| keep | keep | |
| Specify kube scheduler name for Pods. |
| Put this to Kustomize? | No disagreement with Jens. | No strong opinion |
| Use standard naming for all resources using airflow.fullname template | False |
| Deprecate the false value and remove it in future | |
| This string (templated) 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 or specify a configmap containing the webserver_config.py. |
Examples: webserverConfig: |- from airflow import configuration as conf # The SQLAlchemy connection string. SQLALCHEMY_DATABASE_URI = conf.get('database', 'SQL_ALCHEMY_CONN') # Flask-WTF flag for CSRF CSRF_ENABLED = True | removed with dropping AF2 support | Drop with Airflow 2
| |
| The configmap name containing the webserver_config.py. |
Examples: webserverConfigConfigMapName: my-webserver-configmap |
| ||
| Annotations to add to the webserver secret. |
|
| ||
| The Flask secret key for Airflow Webserver to encrypt browser session. |
|
| ||
| Specify kube scheduler name for Airflow Celery workers objects and pods created with pod-template-file. |
| Put this to Kustomize? | No disagreement with Jens. | No strong opinion |
...
Parameter | Description | Default | Opinion Jens | Opinion Bugra | Opinion Przemek |
|---|---|---|---|---|---|
| Specify scheduling constraints for Airflow Celery worker pods and pods created with pod-template-file. |
| All "workers" options should go to "workers.celery", Deprecations /fallback removed |
| Move proper sections to workers.celery/workers.kubernetes sections and remove all other under the workers section (finish work started in https://github.com/apache/airflow/issues/28880) |
| Annotations to add to the Airflow Celery worker deployment. |
| ditto |
| |
| Args to use when running Airflow Celery workers (templated) (deprecated, use workers.celery.args instead). |
| ditto |
| |
| Args to use when running Airflow Celery workers (templated). |
|
|
| keep |
| Command to use when running Airflow Celery workers (templated). |
|
|
| keep |
| Enable the default worker defined by the workers and workers.celery configurations. |
| Should we have a "default" worker and sets in parallel? Can we not make the set havinf one default to reduce complexity? |
| keep |
| Enable Kerberos init container. |
|
|
| Move to Kustomize with the whole Kerberos stuff |
| Resources on kerberos init container. |
Examples: resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi |
|
| |
| Command for LivenessProbe | ~ |
|
| keep |
| Enable liveness probe for Airflow Celery workers. |
|
|
| keep |
| Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. |
|
|
| keep |
| Number of seconds after the container has started before liveness probes are initiated. |
|
|
| keep |
| How often (in seconds) to perform the probe. Minimum value is 1. |
|
|
| keep |
| Number of seconds after which the probe times out. Minimum value is 1 seconds. |
|
|
| keep |
| Annotations to add to Airflow Celery worker volumes. |
|
|
| keep |
| Enable persistent volumes. |
|
|
| keep |
| Execute init container to chown log directory. This is currently only needed in kind, due to usage of local-path provisioner. |
|
|
| keep |
| Volume size for Airflow Celery worker StatefulSet. |
|
|
| keep |
| If using a custom StorageClass, pass name ref to all StatefulSets here (templated). |
|
|
| keep |
| Specifies the policy for managing pods within the Airflow Celery worker. Only applicable to StatefulSet. |
|
|
| keep |
| Queue name for the worker. |
|
|
| keep |
| Number of Airflow Celery workers. |
|
|
| keep |
| List of worker sets. Each item can overwrite values from the parent workers and workers.celery sections. |
| Here all properties from above and below should go in, with one "default"? |
| |
| Specifies the strategy used to replace old Airflow Celery worker pods by new ones when deployed as a Deployment. |
|
|
| keep |
| Specifies the strategy used to replace old Airflow Celery worker pods by new ones when deployed as a StatefulSet. |
|
|
| keep |
| Command to use when running Airflow Celery workers and using pod-template-file (templated). Use workers.celery.command and/or workers.kubernetes.command to separate value between Celery workers and pod-template-file. |
| ^^^ ditto |
| Move proper sections to workers.celery/workers.kubernetes sections and remove all other under the workers section (finish work started in https://github.com/apache/airflow/issues/28880) |
| Add additional env vars to the Airflow Celery workers and pods created with pod-template-file. |
| ditto |
| |
| Launch additional containers into Airflow Celery workers and pods created with pod-template-file (templated). Note, if used with KubernetesExecutor, you are responsible for signaling sidecars to exit when the main container finishes so Airflow can continue the worker shutdown process! |
| ditto |
| |
| Add additional init containers into Airflow Celery workers and pods created with pod-template-file (templated). |
| ditto |
| |
| Expose additional ports of Airflow Celery worker container. |
| ditto |
| |
| Additional volume mounts attached to the Airflow Celery workers and pods created with pod-template-file. |
| ditto |
| |
| Additional volumes attached to the Airflow Celery workers and pods created with pod-template-file. |
| ditto |
| |
| Specify HostAliases for Airflow Celery worker pods and pods created with pod-template-file. |
Examples: hostAliases: - hostnames: - test.hostname.one ip: 127.0.0.2 hostAliases: - hostnames: - test.hostname.two ip: 127.0.0.3 | ditto |
| |
| HorizontalPodAutoscalerBehavior configures the scaling behavior of the target. |
| Should we have HPA and KEDA? How about moving this to Kustomize? | I really love this idea, as mentioned above, I would move them to Kustomize. | |
| Allow HPA autoscaling (KEDA must be disabled). |
|
|
| |
| Maximum number of Airflow Celery workers created by HPA. |
|
|
| |
| Specifications for which to use to calculate the desired replica count. |
|
|
| |
| Minimum number of Airflow Celery workers created by HPA. |
|
|
| |
| Advanced KEDA configuration. |
|
|
| Move to Kustomize
|
| HorizontalPodAutoscalerConfig specifies horizontal scale config. |
|
|
| |
| HorizontalPodAutoscalerBehavior configures the scaling behavior of the target. |
|
|
| |
| How many seconds KEDA will wait before scaling to zero. |
|
|
| |
| Allow KEDA autoscaling. |
|
|
| |
| Maximum number of Airflow Celery workers created by KEDA. |
|
|
| |
| Minimum number of Airflow Celery workers created by KEDA. |
|
|
| |
| Labels used in matchLabels for namespace in the PgBouncer NetworkPolicy. |
|
|
| |
| How often KEDA polls the airflow DB to report new scale requests to the HPA. |
|
|
| |
| Query to use for KEDA autoscaling. Must return a single integer. |
|
|
| |
| Weather to use PGBouncer to connect to the database or not when it is enabled. This configuration will be ignored if PGBouncer is not enabled. |
|
|
| |
| Enable Kerberos init container. |
| ^^^ ditto | I agree, and Kerberos in Kustomize looks more manageable from both perspectives. | |
| Resources on kerberos init container. |
Examples: resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi | ditto |
| |
| Enable Kerberos sidecar. |
| ditto |
| |
| Resources on kerberos sidecar. |
Examples: resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi | ditto |
| |
| Command to use in pod-template-file (templated). |
|
|
| keep |
| Enable kerberos init container. |
|
|
| Move to Kustomize |
| Resources on kerberos init container. |
Examples: resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi |
|
| |
| Labels to add to the Airflow Celery workers objects and pods created with pod-template-file. |
| ^^^ ditto |
| Move proper sections to workers.celery/workers.kubernetes sections and remove all other under the workers section (finish work started in https://github.com/apache/airflow/issues/28880) |
| Command for LivenessProbe (deprecated, use workers.celery.livenessProbe.command instead) | ~ | ditto |
| |
| Enable liveness probe for Airflow Celery workers (deprecated, use workers.celery.livenessProbe.enabled instead). |
| ditto |
| |
| Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1 (deprecated, use workers.celery.livenessProbe.failureThreshold instead). |
| ditto |
| |
| Number of seconds after the container has started before liveness probes are initiated (deprecated, use workers.celery.livenessProbe.initialDelaySeconds instead). |
| ditto |
| |
| How often (in seconds) to perform the probe. Minimum value is 1 (deprecated, use workers.celery.livenessProbe.periodSeconds instead). |
| ditto |
| |
| Number of seconds after which the probe times out. Minimum value is 1 seconds (deprecated, use workers.celery.livenessProbe.timeoutSeconds instead). |
| ditto |
| |
| Select certain nodes for Airflow Celery worker pods and pods created with pod-template-file. |
| ditto |
| |
| Annotations to add to Airflow Celery worker volumes (deprecated, use workers.celery.persistence.annotations instead). |
| ditto |
| |
| Enable persistent volumes (deprecated, use workers.celery.persistence.enabled instead). |
| ditto |
| |
| Execute init container to chown log directory. This is currently only needed in kind, due to usage of local-path provisioner (deprecated, use workers.celery.persistence.fixPermissions instead). |
| ditto |
| Probably remove and/or move to Kustomize. It is only used in volume-permissions sidecar in workers, which, looking at the comment, is only needed with the local path provisioner https://github.com/rancher/local-path-provisioner setup. |
| Volume size for Airflow Celery worker StatefulSet (deprecated, use workers.celery.persistence.size instead). |
| ditto |
| Move proper sections to workers.celery/workers.kubernetes sections and remove all other under the workers section (finish work started in https://github.com/apache/airflow/issues/28880)
|
| If using a custom StorageClass, pass name ref to all StatefulSets here (templated) (deprecated, use workers.celery.persistence.storageClassName instead). |
| ditto |
| |
| Annotations to add to the Airflow Celery workers and pods created with pod-template-file. |
| ditto |
| |
| Max unavailable pods for worker. |
| ditto |
| |
| Min available pods for worker. |
| ditto |
| |
| Enable pod disruption budget. |
| ditto |
| |
| Specifies the policy for managing pods within the Airflow Celery worker (deprecated, use workers.celery.podManagementPolicy instead). Only applicable to StatefulSet. |
| ditto |
| |
| Specify priority for Airflow Celery worker pods and pods created with pod-template-file. |
| ditto |
| |
| Number of Airflow Celery workers (deprecated, use workers.celery.replicas instead). |
| ditto |
| |
| Resource configuration for Airflow Celery workers and pods created with pod-template-file. |
Examples: resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi | ditto |
| |
| Specify runtime for Airflow Celery worker pods and pods created with pod-template-file. |
| ditto |
| |
| This setting tells Kubernetes that it’s ok to evict when it wants to scale a node down. It is used by Airflow Celery workers and pod-template-file. |
| ditto |
| |
| Security context for the Airflow Celery worker pods and pods created with pod-template-file (deprecated, use securityContexts instead). If not set, the values from securityContext will be used. |
Examples: securityContext: fsGroup: 0 runAsGroup: 0 runAsUser: 50000 | ditto |
| |
| Annotations to add to the worker Kubernetes ServiceAccount. |
| ditto |
| |
| Specifies if ServiceAccount’s API credentials should be mounted onto Pods |
| ditto |
| |
| Specifies whether a ServiceAccount should be created. |
| ditto |
| |
| The name of the ServiceAccount to use. If not set and create is true, a name is generated using the release name. |
| ditto |
| |
| Specifies the strategy used to replace old Airflow Celery worker pods by new ones when deployed as a Deployment (deprecated, use workers.celery.strategy instead). |
| ditto |
| |
| Grace period for tasks to finish after SIGTERM is sent from Kubernetes. It is used by Airflow Celery workers and pod-template-file. |
| ditto |
| |
| Specify Tolerations for Airflow Celery worker pods and pods created with pod-template-file. |
| ditto |
| |
| Specify topology spread constraints for Airflow Celery worker pods and pods created with pod-template-file. |
| ditto |
| |
| Specifies the strategy used to replace old Airflow Celery worker pods by new ones when deployed as a StatefulSet (deprecated, use workers.celery.updateStrategy instead). |
| ditto |
| |
| Specify additional volume claim template for Airflow Celery workers. |
Examples: volumeClaimTemplates: - accessModes: - ReadWriteOnce name: data-volume-1 resources: requests: storage: 10Gi storageClassName: storage-class-1 volumeClaimTemplates: - accessModes: - ReadWriteOnce name: data-volume-2 resources: requests: storage: 20Gi storageClassName: storage-class-2 | ditto |
| |
| Enable wait-for-airflow-migrations init container. |
| ditto |
| |
| Add additional env vars to wait-for-airflow-migrations init container. |
| ditto |
|
...