1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
15## @param global.imageRegistry Global Docker image registry
16## @param global.imagePullSecrets Global Docker registry secret names as an array
17## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
23 ## - myRegistryKeySecretName
26 defaultStorageClass: ""
27 ## Security parameters
30 ## @param global.security.allowInsecureImages Allows skipping image verification
31 allowInsecureImages: false
32 ## Compatibility adaptations for Kubernetes platforms
35 ## Compatibility adaptations for Openshift
38 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
40 adaptSecurityContext: auto
41 ## @param global.compatibility.omitEmptySeLinuxOptions If set to true, removes the seLinuxOptions from the securityContexts when it is set to an empty object
43 omitEmptySeLinuxOptions: false
45## @section Common parameters
47## @param kubeVersion Override Kubernetes version
50## @param apiVersions Override Kubernetes API versions reported by .Capabilities
53## @param nameOverride String to partially override common.names.name
56## @param fullnameOverride String to fully override common.names.fullname
59## @param namespaceOverride String to fully override common.names.namespace
62## @param commonLabels Labels to add to all deployed objects
65## @param commonAnnotations Annotations to add to all deployed objects
68## @param clusterDomain Kubernetes cluster domain name
70clusterDomain: cluster.local
71## @param extraDeploy Array of extra objects to deploy with the release
74## @param usePasswordFiles Mount credentials as files instead of using environment variables
78## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
79## @param diagnosticMode.command Command to override all containers in the chart release
80## @param diagnosticMode.args Args to override all containers in the chart release
88## @section Airflow common parameters
90## Iamguarded Airflow image version
91## @param image.registry [default: REGISTRY_NAME] Airflow image registry
92## @param image.repository [default: REPOSITORY_NAME/airflow] Airflow image repository
93## @skip image.tag Airflow image tag (immutable tags are recommended)
94## @param image.digest Airflow image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
95## @param image.pullPolicy Airflow image pull policy
96## @param image.pullSecrets Airflow image pull secrets
97## @param image.debug Enable image debug mode
100 repository: chainguard-private/airflow-iamguarded
103 ## Specify a imagePullPolicy
104 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
105 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
107 pullPolicy: IfNotPresent
108 ## Optionally specify an array of imagePullSecrets.
109 ## Secrets must be manually created in the namespace.
110 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
113 ## - myRegistryKeySecretName
116 ## Set to true if you would like to see extra information on logs
119## Authentication parameters
122 ## @param auth.username Username to access web UI
125 ## @param auth.password Password to access web UI
128 ## @param auth.fernetKey Fernet key to secure connections
129 ## ref: https://airflow.readthedocs.io/en/stable/howto/secure-connections.html
130 ## ref: https://bcb.github.io/airflow/fernet-key
133 ## @param auth.secretKey Secret key to run your flask app
134 ## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key
137 ## @param auth.jwtSecretKey JWT secret key to run your flask app
138 ## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key
141 ## @param auth.existingSecret Name of an existing secret to use for Airflow credentials
142 ## `auth.password`, `auth.fernetKey`, and `auth.secretKey` will be ignored and picked up from this secret
143 ## The secret must contain the keys `airflow-password`, `airflow-fernet-key` and `airflow-secret-key'
144 ## The value is evaluated as a template
147## @param executor Airflow executor. Allowed values: `LocalExecutor`, `CeleryExecutor`, `KubernetesExecutor`, `SequentialExecutor` (Airflow 2.x only), `CeleryKubernetesExecutor` (Airflow 2.x only), and `LocalKubernetesExecutor` (Airflow 2.x only)
148## ref: http://airflow.apache.org/docs/stable/executor/index.html
150executor: CeleryExecutor
151## @param loadExamples Switch to load some Airflow examples
154## @param configuration Specify content for Airflow config file (auto-generated based on other parameters otherwise)
155## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html
156## Use YAML format, then it's transformed to .cfg format by the chart. e.g:
159## dags_folder: "/opt/iamguarded/airflow/dags"
160## ... will be transformed to:
162## dags_folder = "/opt/iamguarded/airflow/dags"
165## @param overrideConfiguration Airflow common configuration override. Values defined here takes precedence over the ones defined at `configuration`
167overrideConfiguration: {}
168## @param localSettings Specify content for Airflow local settings (airflow_local_settings.py)
169## ref: https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html#configuring-local-settings
175## @param existingConfigmap Name of an existing ConfigMap with the Airflow config file and, optionally, the local settings file
178## Load custom DAGs files from a ConfigMap or Git repositories
179## @param dags.enabled Enable loading DAGs from a ConfigMap or Git repositories
180## @param dags.existingConfigmap Name of an existing ConfigMap with all the DAGs files you want to load in Airflow
181## @param dags.repositories [array] Array of repositories from which to download DAG files
185 existingConfigmap: ""
188 ## - repository: https://github.com/myuser/myrepo
194 ## @param dags.sshKey SSH Private key used to clone/sync DAGs from Git repositories (ignored if dags.existingSshKeySecret is set)
197 ## @param dags.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync DAGs from Git repositories
199 existingSshKeySecret: ""
200 ## @param dags.existingSshKeySecretKey Key in the existing secret containing the SSH private key
202 existingSshKeySecretKey: ""
203## Load custom plugins from Git repositories
204## @param plugins.enabled Enable loading plugins from Git repositories
205## @param plugins.repositories [array] Array of repositories from which to download plugins
211 ## - repository: https://github.com/myuser/myrepo
217 ## @param plugins.sshKey SSH Private key used to clone/sync plugins from Git repositories (ignored if plugins.existingSshKeySecret is set)
220 ## @param plugins.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync plugins from Git repositories
222 existingSshKeySecret: ""
223 ## @param plugins.existingSshKeySecretKey Key in the existing secret containing the SSH private key
225 existingSshKeySecretKey: ""
226## Default init Containers
228defaultInitContainers:
229 ## Airflow "prepare-config" init container
230 ## Used to prepare the Airflow configuration files for main containers to use them
233 ## Configure "prepare-config" init-container Security Context
234 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
235 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.enabled Enabled "prepare-config" init-containers' Security Context
236 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "prepare-config" init-containers
237 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsUser Set runAsUser in "prepare-config" init-containers' Security Context
238 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsGroup Set runAsUser in "prepare-config" init-containers' Security Context
239 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "prepare-config" init-containers' Security Context
240 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "prepare-config" init-containers' Security Context
241 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.privileged Set privileged in "prepare-config" init-containers' Security Context
242 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "prepare-config" init-containers' Security Context
243 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.capabilities.add List of capabilities to be added in "prepare-config" init-containers
244 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "prepare-config" init-containers
245 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.seccompProfile.type Set seccomp profile in "prepare-config" init-containers
247 containerSecurityContext:
253 readOnlyRootFilesystem: true
255 allowPrivilegeEscalation: false
260 type: "RuntimeDefault"
261 ## Airflow "prepare-config" init container resource requests and limits
262 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
263 ## @param defaultInitContainers.prepareConfig.resourcesPreset Set Airflow "prepare-config" init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultInitContainers.prepareConfig.resources is set (defaultInitContainers.prepareConfig.resources is recommended for production).
265 resourcesPreset: "nano"
266 ## @param defaultInitContainers.prepareConfig.resources Set Airflow "prepare-config" init container requests and limits for different resources like CPU or memory (essential for production workloads)
277 ## Airflow "wait-for-db-migrations" init container
278 ## Used to wait for db migrations to be ready
281 ## Configure "wait-for-db-migrations" init-container Security Context
282 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
283 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.enabled Enabled "wait-for-db-migrations" init-containers' Security Context
284 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "wait-for-db-migrations" init-containers
285 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsUser Set runAsUser in "wait-for-db-migrations" init-containers' Security Context
286 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsGroup Set runAsUser in "wait-for-db-migrations" init-containers' Security Context
287 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "wait-for-db-migrations" init-containers' Security Context
288 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "wait-for-db-migrations" init-containers' Security Context
289 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.privileged Set privileged in "wait-for-db-migrations" init-containers' Security Context
290 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "wait-for-db-migrations" init-containers' Security Context
291 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.capabilities.add List of capabilities to be added in "wait-for-db-migrations" init-containers
292 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "wait-for-db-migrations" init-containers
293 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.seccompProfile.type Set seccomp profile in "wait-for-db-migrations" init-containers
295 containerSecurityContext:
301 readOnlyRootFilesystem: true
303 allowPrivilegeEscalation: false
308 type: "RuntimeDefault"
309 ## Airflow "wait-for-db-migrations" init container resource requests and limits
310 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
311 ## @param defaultInitContainers.waitForDBMigrations.resourcesPreset Set Airflow "wait-for-db-migrations" init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultInitContainers.waitForDBMigrations.resources is set (defaultInitContainers.waitForDBMigrations.resources is recommended for production).
313 resourcesPreset: "micro"
314 ## @param defaultInitContainers.waitForDBMigrations.resources Set Airflow "wait-for-db-migrations" init container requests and limits for different resources like CPU or memory (essential for production workloads)
326 ## Configure "prepare-venv" init-container Security Context
327 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
328 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.enabled Enabled "prepare-venv" init-containers' Security Context
329 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "prepare-venv" init-containers
330 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsUser Set runAsUser in "prepare-venv" init-containers' Security Context
331 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsGroup Set runAsUser in "prepare-venv" init-containers' Security Context
332 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "prepare-venv" init-containers' Security Context
333 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "prepare-venv" init-containers' Security Context
334 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.privileged Set privileged in "prepare-venv" init-containers' Security Context
335 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "prepare-venv" init-containers' Security Context
336 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.capabilities.add List of capabilities to be added in "prepare-venv" init-containers
337 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "prepare-venv" init-containers
338 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.seccompProfile.type Set seccomp profile in "prepare-venv" init-containers
340 containerSecurityContext:
346 readOnlyRootFilesystem: true
348 allowPrivilegeEscalation: false
353 type: "RuntimeDefault"
354 ## Airflow "prepare-venv" init container resource requests and limits
355 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
356 ## @param defaultInitContainers.prepareVenv.resourcesPreset Set Airflow "prepare-venv" init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultInitContainers.prepareVenv.resources is set (defaultInitContainers.prepareVenv.resources is recommended for production).
358 resourcesPreset: "nano"
359 ## @param defaultInitContainers.prepareVenv.resources Set Airflow "prepare-venv" init container requests and limits for different resources like CPU or memory (essential for production workloads)
370 ## Airflow "load-dags-plugins" init container
371 ## Used to load DAGs and/or plugins from a ConfigMap or Git repositories
374 ## @param defaultInitContainers.loadDAGsPlugins.command Override cmd
375 ## @param defaultInitContainers.loadDAGsPlugins.args Override args
376 ## @param defaultInitContainers.loadDAGsPlugins.extraVolumeMounts Add extra volume mounts
377 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVars Add extra environment variables
378 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVarsCM ConfigMap with extra environment variables
379 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVarsSecret Secret with extra environment variables
382 extraVolumeMounts: []
385 extraEnvVarsSecret: ""
386 ## Configure "load-dags-plugins" init-container Security Context
387 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
388 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.enabled Enabled "load-dags-plugins" init-containers' Security Context
389 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "load-dags-plugins" init-containers
390 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsUser Set runAsUser in "load-dags-plugins" init-containers' Security Context
391 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsGroup Set runAsUser in "load-dags-plugins" init-containers' Security Context
392 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "load-dags-plugins" init-containers' Security Context
393 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "load-dags-plugins" init-containers' Security Context
394 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.privileged Set privileged in "load-dags-plugins" init-containers' Security Context
395 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "load-dags-plugins" init-containers' Security Context
396 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.capabilities.add List of capabilities to be added in "load-dags-plugins" init-containers
397 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "load-dags-plugins" init-containers
398 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.seccompProfile.type Set seccomp profile in "load-dags-plugins" init-containers
400 containerSecurityContext:
406 readOnlyRootFilesystem: true
408 allowPrivilegeEscalation: false
413 type: "RuntimeDefault"
414 ## Airflow "load-dags-plugins" init container resource requests and limits
415 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
416 ## @param defaultInitContainers.loadDAGsPlugins.resourcesPreset Set Airflow "load-dags-plugins" init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultInitContainers.loadDAGsPlugins.resources is set (defaultInitContainers.loadDAGsPlugins.resources is recommended for production).
418 resourcesPreset: "nano"
419 ## @param defaultInitContainers.loadDAGsPlugins.resources Set Airflow "load-dags-plugins" init container requests and limits for different resources like CPU or memory (essential for production workloads)
433 ## Airflow "sync-dags-plugins" sidecar
434 ## Used to sync DAGs and/or plugins from Git repositories
437 ## @param defaultSidecars.syncDAGsPlugins.interval Interval in seconds to pull the git repository containing the DAGs and/or plugins
438 ## @param defaultSidecars.syncDAGsPlugins.command Override cmd
439 ## @param defaultSidecars.syncDAGsPlugins.args Override args
440 ## @param defaultSidecars.syncDAGsPlugins.extraVolumeMounts Add extra volume mounts
441 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVars Add extra environment variables
442 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVarsCM ConfigMap with extra environment variables
443 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVarsSecret Secret with extra environment variables
447 extraVolumeMounts: []
450 extraEnvVarsSecret: ""
451 ## Configure "sync-dags-plugins" sidecar Security Context
452 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
453 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.enabled Enabled "sync-dags-plugins" sidecars' Security Context
454 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "sync-dags-plugins" sidecars
455 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsUser Set runAsUser in "sync-dags-plugins" sidecars' Security Context
456 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsGroup Set runAsUser in "sync-dags-plugins" sidecars' Security Context
457 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "sync-dags-plugins" sidecars' Security Context
458 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "sync-dags-plugins" sidecars' Security Context
459 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.privileged Set privileged in "sync-dags-plugins" sidecars' Security Context
460 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "sync-dags-plugins" sidecars' Security Context
461 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.capabilities.add List of capabilities to be added in "sync-dags-plugins" sidecars
462 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "sync-dags-plugins" sidecars
463 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.seccompProfile.type Set seccomp profile in "sync-dags-plugins" sidecars
465 containerSecurityContext:
471 readOnlyRootFilesystem: true
473 allowPrivilegeEscalation: false
478 type: "RuntimeDefault"
479 ## Airflow "sync-dags-plugins" sidecar resource requests and limits
480 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
481 ## @param defaultSidecars.syncDAGsPlugins.resourcesPreset Set Airflow "sync-dags-plugins" sidecar resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultSidecars.syncDAGsPlugins.resources is set (defaultSidecars.syncDAGsPlugins.resources is recommended for production).
483 resourcesPreset: "nano"
484 ## @param defaultSidecars.syncDAGsPlugins.resources Set Airflow "sync-dags-plugins" sidecar requests and limits for different resources like CPU or memory (essential for production workloads)
495## @param extraEnvVars Add extra environment variables for all the Airflow pods
498## @param extraEnvVarsCM ConfigMap with extra environment variables for all the Airflow pods
501## @param extraEnvVarsCMs List of ConfigMaps with extra environment variables for all the Airflow pods
504## @param extraEnvVarsSecret Secret with extra environment variables for all the Airflow pods
506extraEnvVarsSecret: ""
507## @param extraEnvVarsSecrets List of secrets with extra environment variables for all the Airflow pods
509extraEnvVarsSecrets: []
510## @param sidecars Add additional sidecar containers to all the Airflow pods
513## - name: your-image-name
515## imagePullPolicy: Always
518## containerPort: 1234
521## @param initContainers Add additional init containers to all the Airflow pods
524## - name: your-image-name
526## imagePullPolicy: Always
529## containerPort: 1234
532## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for all the Airflow pods
535## @param extraVolumes Optionally specify extra list of additional volumes for the all the Airflow pods
538## @section Airflow webserver parameters
541 ## @param web.baseUrl URL used to access to Airflow webserver
544 ## @param web.configuration Specify content for webserver_config.py (auto-generated based on other env. vars otherwise)
547 ## @param web.extraConfiguration Specify extra content to be appended to default webserver_config.py (ignored if `web.configuration` or `web.existingConfigmap` are set)
549 extraConfiguration: ""
550 ## @param web.existingConfigmap Name of an existing config map containing the Airflow webserver config file
552 existingConfigmap: ""
553 ## @param web.tls.enabled Enable TLS configuration for Airflow webserver
554 ## @param web.tls.autoGenerated.enabled Enable automatic generation of TLS certificates
555 ## @param web.tls.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
556 ## @param web.tls.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
557 ## @param web.tls.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
558 ## @param web.tls.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
559 ## @param web.tls.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
560 ## @param web.tls.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
561 ## @param web.tls.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
562 ## @param web.tls.ca CA certificate for TLS. Ignored if `tls.existingSecret` is set
563 ## @param web.tls.cert TLS certificate for Airflow webserver. Ignored if `tls.master.existingSecret` is set
564 ## @param web.tls.key TLS key for Airflow webserver. Ignored if `tls.master.existingSecret` is set
565 ## @param web.tls.existingSecret The name of an existing Secret containing the Airflow webserver certificates for TLS
574 existingIssuerKind: ""
583 ## @param web.command Override default container command (useful when using custom images)
586 ## @param web.args Override default container args (useful when using custom images)
589 ## @param web.extraEnvVars Array with extra environment variables to add Airflow webserver pods
592 ## @param web.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow webserver pods
595 ## @param web.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow webserver pods
598 ## @param web.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow webserver pods
600 extraEnvVarsSecret: ""
601 ## @param web.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow webserver pods
603 extraEnvVarsSecrets: []
604 ## @param web.containerPorts.http Airflow webserver HTTP container port
608 ## @param web.replicaCount Number of Airflow webserver replicas
611 ## Configure extra options for Airflow webserver containers' liveness, readiness and startup probes
612 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
613 ## @param web.livenessProbe.enabled Enable livenessProbe on Airflow webserver containers
614 ## @param web.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
615 ## @param web.livenessProbe.periodSeconds Period seconds for livenessProbe
616 ## @param web.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
617 ## @param web.livenessProbe.failureThreshold Failure threshold for livenessProbe
618 ## @param web.livenessProbe.successThreshold Success threshold for livenessProbe
622 initialDelaySeconds: 180
627 ## @param web.readinessProbe.enabled Enable readinessProbe on Airflow webserver containers
628 ## @param web.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
629 ## @param web.readinessProbe.periodSeconds Period seconds for readinessProbe
630 ## @param web.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
631 ## @param web.readinessProbe.failureThreshold Failure threshold for readinessProbe
632 ## @param web.readinessProbe.successThreshold Success threshold for readinessProbe
636 initialDelaySeconds: 30
641 ## @param web.startupProbe.enabled Enable startupProbe on Airflow webserver containers
642 ## @param web.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
643 ## @param web.startupProbe.periodSeconds Period seconds for startupProbe
644 ## @param web.startupProbe.timeoutSeconds Timeout seconds for startupProbe
645 ## @param web.startupProbe.failureThreshold Failure threshold for startupProbe
646 ## @param web.startupProbe.successThreshold Success threshold for startupProbe
650 initialDelaySeconds: 60
655 ## @param web.customLivenessProbe Custom livenessProbe that overrides the default one
657 customLivenessProbe: {}
658 ## @param web.customReadinessProbe Custom readinessProbe that overrides the default one
660 customReadinessProbe: {}
661 ## @param web.customStartupProbe Custom startupProbe that overrides the default one
663 customStartupProbe: {}
664 ## Airflow webserver resource requests and limits
665 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
666 ## @param web.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if web.resources is set (web.resources is recommended for production).
668 resourcesPreset: "medium"
669 ## @param web.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
680 ## Configure Airflow webserver pods Security Context
681 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
682 ## @param web.podSecurityContext.enabled Enabled Airflow webserver pods' Security Context
683 ## @param web.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
684 ## @param web.podSecurityContext.sysctls Set kernel settings using the sysctl interface
685 ## @param web.podSecurityContext.supplementalGroups Set filesystem extra groups
686 ## @param web.podSecurityContext.fsGroup Set Airflow webserver pod's Security Context fsGroup
690 fsGroupChangePolicy: Always
692 supplementalGroups: []
694 ## Configure Airflow webserver containers (only main one) Security Context
695 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
696 ## @param web.containerSecurityContext.enabled Enabled Airflow webserver containers' Security Context
697 ## @param web.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
698 ## @param web.containerSecurityContext.runAsUser Set Airflow webserver containers' Security Context runAsUser
699 ## @param web.containerSecurityContext.runAsGroup Set Airflow webserver containers' Security Context runAsGroup
700 ## @param web.containerSecurityContext.runAsNonRoot Set Airflow webserver containers' Security Context runAsNonRoot
701 ## @param web.containerSecurityContext.privileged Set web container's Security Context privileged
702 ## @param web.containerSecurityContext.allowPrivilegeEscalation Set web container's Security Context allowPrivilegeEscalation
703 ## @param web.containerSecurityContext.readOnlyRootFilesystem Set web container's Security Context readOnlyRootFilesystem
704 ## @param web.containerSecurityContext.capabilities.drop List of capabilities to be dropped
705 ## @param web.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
707 containerSecurityContext:
714 allowPrivilegeEscalation: false
715 readOnlyRootFilesystem: true
719 type: "RuntimeDefault"
720 ## @param web.lifecycleHooks for the Airflow webserver container(s) to automate configuration before or after startup
723 ## @param web.automountServiceAccountToken Mount Service Account token in pod
725 automountServiceAccountToken: false
726 ## @param web.hostAliases Deployment pod host aliases
727 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
730 ## @param web.podLabels Add extra labels to the Airflow webserver pods
733 ## @param web.podAnnotations Add extra annotations to the Airflow webserver pods
736 ## @param web.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
737 ## i.e. topologyKey: topology.kubernetes.io/zone
740 ## @param web.affinity Affinity for Airflow webserver pods assignment (evaluated as a template)
741 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
742 ## Note: `web.podAffinityPreset`, `web.podAntiAffinityPreset`, and `web.nodeAffinityPreset` will be ignored when it's set
745 ## Node affinity preset
746 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
747 ## @param web.nodeAffinityPreset.key Node label key to match. Ignored if `web.affinity` is set.
748 ## @param web.nodeAffinityPreset.type Node affinity preset type. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`
749 ## @param web.nodeAffinityPreset.values Node label values to match. Ignored if `web.affinity` is set.
753 ## key: "kubernetes.io/e2e-az-name"
763 ## @param web.nodeSelector Node labels for Airflow webserver pods assignment
764 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
767 ## @param web.podAffinityPreset Pod affinity preset. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`.
768 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
770 podAffinityPreset: ""
771 ## @param web.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`.
772 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
774 podAntiAffinityPreset: soft
775 ## @param web.tolerations Tolerations for Airflow webserver pods assignment
776 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
779 ## @param web.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
780 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
782 topologySpreadConstraints: []
783 ## @param web.priorityClassName Priority Class Name
784 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
786 priorityClassName: ""
787 ## @param web.schedulerName Use an alternate scheduler, e.g. "stork".
788 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
791 ## @param web.terminationGracePeriodSeconds Seconds Airflow webserver pod needs to terminate gracefully
792 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
794 terminationGracePeriodSeconds: ""
795 ## @param web.updateStrategy.type Airflow webserver deployment strategy type
796 ## @param web.updateStrategy.rollingUpdate Airflow webserver deployment rolling update configuration parameters
797 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
802 ## @param web.sidecars Add additional sidecar containers to the Airflow webserver pods
805 ## - name: your-image-name
807 ## imagePullPolicy: Always
810 ## containerPort: 1234
813 ## @param web.initContainers Add additional init containers to the Airflow webserver pods
816 ## - name: your-image-name
818 ## imagePullPolicy: Always
821 ## containerPort: 1234
824 ## Specify temporary volume parameters for the Airflow webserver pods
825 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
826 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
829 ## @param web.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
830 ## Possible values: "Memory", ""
834 ## @param web.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
837 ## @param web.ephemeral.storageClass Storage class of backing PVC
838 ## If defined, storageClassName: <storageClass>
839 ## If set to "-", storageClassName: "", which disables dynamic provisioning
840 ## If undefined (the default) or set to null, no storageClassName spec is
841 ## set, choosing the default provisioner. (gp2 on AWS, standard on
842 ## GKE, AWS & OpenStack)
845 ## @param web.ephemeral.annotations Additional annotations for backing PVC
848 ## @param web.ephemeral.accessModes Persistent Volume Access Modes
852 ## @param web.ephemeral.size Size of the generic ephemeral volume
855 ## @param web.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow webserver pods
857 extraVolumeMounts: []
858 ## @param web.extraVolumes Optionally specify extra list of additional volumes for the Airflow webserver pods
861 ## Airflow webserver Pod Disruption Budget
862 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
863 ## @param web.pdb.create Deploy a pdb object for the Airflow webserver pods
864 ## @param web.pdb.minAvailable Maximum number/percentage of unavailable Airflow webserver replicas
865 ## @param web.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow webserver replicas
871 ## Autoscaling configuration
872 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
875 ## @param web.autoscaling.vpa.enabled Enable VPA for Airflow webserver
876 ## @param web.autoscaling.vpa.annotations Annotations for VPA resource
877 ## @param web.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
878 ## @param web.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
879 ## @param web.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
884 controlledResources: []
887 ## @param web.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
888 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
889 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
893 ## @param web.autoscaling.hpa.enabled Enable HPA for Airflow webserver
894 ## @param web.autoscaling.hpa.minReplicas Minimum number of replicas
895 ## @param web.autoscaling.hpa.maxReplicas Maximum number of replicas
896 ## @param web.autoscaling.hpa.targetCPU Target CPU utilization percentage
897 ## @param web.autoscaling.hpa.targetMemory Target Memory utilization percentage
905 ## Web Network Policies
906 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
909 ## @param web.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
912 ## @param web.networkPolicy.allowExternal Don't require client label for connections
913 ## The Policy model to apply. When set to false, only pods with the correct
914 ## client label will have network access to the ports Web is listening
915 ## on. When true, Web will accept connections from any source
916 ## (with the correct destination port).
919 ## @param web.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
921 allowExternalEgress: true
922 ## @param web.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
932 ## - matchExpressions:
938 ## @param web.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
948 ## - matchExpressions:
955 ## @param web.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
956 ## @param web.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
958 ingressNSMatchLabels: {}
959 ingressNSPodMatchLabels: {}
960## @section Airflow scheduler parameters
963 ## @param scheduler.replicaCount Number of scheduler replicas
966 ## @param scheduler.command Override cmd
969 ## @param scheduler.args Override args
972 ## @param scheduler.extraEnvVars Add extra environment variables
975 ## @param scheduler.extraEnvVarsCM ConfigMap with extra environment variables
978 ## @param scheduler.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow scheduler pods
981 ## @param scheduler.extraEnvVarsSecret Secret with extra environment variables
983 extraEnvVarsSecret: ""
984 ## @param scheduler.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow scheduler pods
986 extraEnvVarsSecrets: []
987 ## Configure extra options for Airflow scheduler containers' liveness, readiness and startup probes
988 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
989 ## @param scheduler.livenessProbe.enabled Enable livenessProbe on Airflow scheduler containers
990 ## @param scheduler.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
991 ## @param scheduler.livenessProbe.periodSeconds Period seconds for livenessProbe
992 ## @param scheduler.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
993 ## @param scheduler.livenessProbe.failureThreshold Failure threshold for livenessProbe
994 ## @param scheduler.livenessProbe.successThreshold Success threshold for livenessProbe
998 initialDelaySeconds: 180
1003 ## @param scheduler.readinessProbe.enabled Enable readinessProbe on Airflow scheduler containers
1004 ## @param scheduler.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1005 ## @param scheduler.readinessProbe.periodSeconds Period seconds for readinessProbe
1006 ## @param scheduler.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1007 ## @param scheduler.readinessProbe.failureThreshold Failure threshold for readinessProbe
1008 ## @param scheduler.readinessProbe.successThreshold Success threshold for readinessProbe
1012 initialDelaySeconds: 30
1017 ## @param scheduler.startupProbe.enabled Enable startupProbe on Airflow scheduler containers
1018 ## @param scheduler.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1019 ## @param scheduler.startupProbe.periodSeconds Period seconds for startupProbe
1020 ## @param scheduler.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1021 ## @param scheduler.startupProbe.failureThreshold Failure threshold for startupProbe
1022 ## @param scheduler.startupProbe.successThreshold Success threshold for startupProbe
1026 initialDelaySeconds: 60
1029 failureThreshold: 15
1031 ## @param scheduler.customLivenessProbe Custom livenessProbe that overrides the default one
1033 customLivenessProbe: {}
1034 ## @param scheduler.customReadinessProbe Custom readinessProbe that overrides the default one
1036 customReadinessProbe: {}
1037 ## @param scheduler.customStartupProbe Custom startupProbe that overrides the default one
1039 customStartupProbe: {}
1040 ## Airflow scheduler resource requests and limits
1041 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1042 ## @param scheduler.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if scheduler.resources is set (scheduler.resources is recommended for production).
1044 resourcesPreset: "small"
1045 ## @param scheduler.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1056 ## Configure Airflow scheduler pods Security Context
1057 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1058 ## @param scheduler.podSecurityContext.enabled Enabled Airflow scheduler pods' Security Context
1059 ## @param scheduler.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1060 ## @param scheduler.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1061 ## @param scheduler.podSecurityContext.supplementalGroups Set filesystem extra groups
1062 ## @param scheduler.podSecurityContext.fsGroup Set Airflow scheduler pod's Security Context fsGroup
1066 fsGroupChangePolicy: Always
1068 supplementalGroups: []
1070 ## Configure Airflow scheduler containers (only main one) Security Context
1071 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1072 ## @param scheduler.containerSecurityContext.enabled Enabled Airflow scheduler containers' Security Context
1073 ## @param scheduler.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1074 ## @param scheduler.containerSecurityContext.runAsUser Set Airflow scheduler containers' Security Context runAsUser
1075 ## @param scheduler.containerSecurityContext.runAsGroup Set Airflow scheduler containers' Security Context runAsGroup
1076 ## @param scheduler.containerSecurityContext.runAsNonRoot Set Airflow scheduler containers' Security Context runAsNonRoot
1077 ## @param scheduler.containerSecurityContext.privileged Set scheduler container's Security Context privileged
1078 ## @param scheduler.containerSecurityContext.allowPrivilegeEscalation Set scheduler container's Security Context allowPrivilegeEscalation
1079 ## @param scheduler.containerSecurityContext.readOnlyRootFilesystem Set scheduler container's Security Context readOnlyRootFilesystem
1080 ## @param scheduler.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1081 ## @param scheduler.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1083 containerSecurityContext:
1090 allowPrivilegeEscalation: false
1091 readOnlyRootFilesystem: true
1095 type: "RuntimeDefault"
1096 ## @param scheduler.lifecycleHooks for the Airflow scheduler container(s) to automate configuration before or after startup
1099 ## @param scheduler.automountServiceAccountToken Mount Service Account token in pod
1101 automountServiceAccountToken: false
1102 ## @param scheduler.hostAliases Deployment pod host aliases
1103 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1106 ## @param scheduler.podLabels Add extra labels to the Airflow scheduler pods
1109 ## @param scheduler.podAnnotations Add extra annotations to the Airflow scheduler pods
1112 ## @param scheduler.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1113 ## i.e. topologyKey: topology.kubernetes.io/zone
1116 ## @param scheduler.affinity Affinity for Airflow scheduler pods assignment (evaluated as a template)
1117 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1118 ## Note: `scheduler.podAffinityPreset`, `scheduler.podAntiAffinityPreset`, and `scheduler.nodeAffinityPreset` will be ignored when it's set
1121 ## Node affinity preset
1122 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1123 ## @param scheduler.nodeAffinityPreset.key Node label key to match. Ignored if `scheduler.affinity` is set.
1124 ## @param scheduler.nodeAffinityPreset.type Node affinity preset type. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`
1125 ## @param scheduler.nodeAffinityPreset.values Node label values to match. Ignored if `scheduler.affinity` is set.
1129 ## key: "kubernetes.io/e2e-az-name"
1139 ## @param scheduler.nodeSelector Node labels for Airflow scheduler pods assignment
1140 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1143 ## @param scheduler.podAffinityPreset Pod affinity preset. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`.
1144 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1146 podAffinityPreset: ""
1147 ## @param scheduler.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`.
1148 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1150 podAntiAffinityPreset: soft
1151 ## @param scheduler.tolerations Tolerations for Airflow scheduler pods assignment
1152 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1155 ## @param scheduler.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1156 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1158 topologySpreadConstraints: []
1159 ## @param scheduler.priorityClassName Priority Class Name
1160 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1162 priorityClassName: ""
1163 ## @param scheduler.schedulerName Use an alternate scheduler, e.g. "stork".
1164 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1167 ## @param scheduler.terminationGracePeriodSeconds Seconds Airflow scheduler pod needs to terminate gracefully
1168 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1170 terminationGracePeriodSeconds: ""
1171 ## @param scheduler.updateStrategy.type Airflow scheduler deployment strategy type
1172 ## @param scheduler.updateStrategy.rollingUpdate Airflow scheduler deployment rolling update configuration parameters
1173 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1178 ## @param scheduler.sidecars Add additional sidecar containers to the Airflow scheduler pods
1181 ## - name: your-image-name
1182 ## image: your-image
1183 ## imagePullPolicy: Always
1186 ## containerPort: 1234
1189 ## @param scheduler.initContainers Add additional init containers to the Airflow scheduler pods
1192 ## - name: your-image-name
1193 ## image: your-image
1194 ## imagePullPolicy: Always
1197 ## containerPort: 1234
1200 ## Specify temporary volume parameters for the Airflow scheduler pods
1201 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1202 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1205 ## @param scheduler.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1206 ## Possible values: "Memory", ""
1210 ## @param scheduler.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1213 ## @param scheduler.ephemeral.storageClass Storage class of backing PVC
1214 ## If defined, storageClassName: <storageClass>
1215 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1216 ## If undefined (the default) or set to null, no storageClassName spec is
1217 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1218 ## GKE, AWS & OpenStack)
1221 ## @param scheduler.ephemeral.annotations Additional annotations for backing PVC
1224 ## @param scheduler.ephemeral.accessModes Persistent Volume Access Modes
1228 ## @param scheduler.ephemeral.size Size of the generic ephemeral volume
1231 ## @param scheduler.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow scheduler pods
1233 extraVolumeMounts: []
1234 ## @param scheduler.extraVolumes Optionally specify extra list of additional volumes for the Airflow scheduler pods
1237 ## Airflow scheduler Pod Disruption Budget
1238 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1239 ## @param scheduler.pdb.create Deploy a pdb object for the Airflow scheduler pods
1240 ## @param scheduler.pdb.minAvailable Maximum number/percentage of unavailable Airflow scheduler replicas
1241 ## @param scheduler.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow scheduler replicas
1247 ## Autoscaling configuration
1248 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1251 ## @param scheduler.autoscaling.vpa.enabled Enable VPA for Airflow scheduler
1252 ## @param scheduler.autoscaling.vpa.annotations Annotations for VPA resource
1253 ## @param scheduler.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
1254 ## @param scheduler.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
1255 ## @param scheduler.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
1260 controlledResources: []
1263 ## @param scheduler.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
1264 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1265 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1269 ## @param scheduler.autoscaling.hpa.enabled Enable HPA for Airflow scheduler
1270 ## @param scheduler.autoscaling.hpa.minReplicas Minimum number of replicas
1271 ## @param scheduler.autoscaling.hpa.maxReplicas Maximum number of replicas
1272 ## @param scheduler.autoscaling.hpa.targetCPU Target CPU utilization percentage
1273 ## @param scheduler.autoscaling.hpa.targetMemory Target Memory utilization percentage
1281 ## Scheduler Network Policies
1282 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1285 ## @param scheduler.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1288 ## @param scheduler.networkPolicy.allowExternal Don't require client label for connections
1289 ## The Policy model to apply. When set to false, only pods with the correct
1290 ## client label will have network access to the ports Scheduler is listening
1291 ## on. When true, Scheduler will accept connections from any source
1292 ## (with the correct destination port).
1295 ## @param scheduler.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1297 allowExternalEgress: true
1298 ## @param scheduler.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1308 ## - matchExpressions:
1314 ## @param scheduler.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1324 ## - matchExpressions:
1331 ## @param scheduler.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1332 ## @param scheduler.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1334 ingressNSMatchLabels: {}
1335 ingressNSPodMatchLabels: {}
1336## @section Airflow Dag Processor parameters
1337## ref: https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/dagfile-processing.html
1340 ## @param dagProcessor.enabled Run Airflow Dag Processor Manager as a standalone component
1343 ## @param dagProcessor.replicaCount Number of Airflow Dag Processor replicas
1346 ## @param dagProcessor.command Override default Airflow Dag Processor cmd
1349 ## @param dagProcessor.args Override default Airflow Dag Processor args
1352 ## @param dagProcessor.extraEnvVars Add extra environment variables to Airflow Dag Processor containers
1355 ## @param dagProcessor.extraEnvVarsCM ConfigMap with extra environment variables
1358 ## @param dagProcessor.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow dagProcessor pods
1361 ## @param dagProcessor.extraEnvVarsSecret Secret with extra environment variables
1363 extraEnvVarsSecret: ""
1364 ## Configure extra options for Airflow Dag Processor containers' liveness, readiness and startup probes
1365 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1366 ## @param dagProcessor.livenessProbe.enabled Enable livenessProbe on Airflow Dag Processor containers
1367 ## @param dagProcessor.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1368 ## @param dagProcessor.livenessProbe.periodSeconds Period seconds for livenessProbe
1369 ## @param dagProcessor.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1370 ## @param dagProcessor.livenessProbe.failureThreshold Failure threshold for livenessProbe
1371 ## @param dagProcessor.livenessProbe.successThreshold Success threshold for livenessProbe
1375 initialDelaySeconds: 180
1380 ## @param dagProcessor.readinessProbe.enabled Enable readinessProbe on Airflow Dag Processor containers
1381 ## @param dagProcessor.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1382 ## @param dagProcessor.readinessProbe.periodSeconds Period seconds for readinessProbe
1383 ## @param dagProcessor.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1384 ## @param dagProcessor.readinessProbe.failureThreshold Failure threshold for readinessProbe
1385 ## @param dagProcessor.readinessProbe.successThreshold Success threshold for readinessProbe
1389 initialDelaySeconds: 30
1394 ## @param dagProcessor.startupProbe.enabled Enable startupProbe on Airflow Dag Processor containers
1395 ## @param dagProcessor.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1396 ## @param dagProcessor.startupProbe.periodSeconds Period seconds for startupProbe
1397 ## @param dagProcessor.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1398 ## @param dagProcessor.startupProbe.failureThreshold Failure threshold for startupProbe
1399 ## @param dagProcessor.startupProbe.successThreshold Success threshold for startupProbe
1403 initialDelaySeconds: 60
1406 failureThreshold: 15
1408 ## @param dagProcessor.customLivenessProbe Custom livenessProbe that overrides the default one
1410 customLivenessProbe: {}
1411 ## @param dagProcessor.customReadinessProbe Custom readinessProbe that overrides the default one
1413 customReadinessProbe: {}
1414 ## @param dagProcessor.customStartupProbe Custom startupProbe that overrides the default one
1416 customStartupProbe: {}
1417 ## Airflow Dag Processor resource requests and limits
1418 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1419 ## @param dagProcessor.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if dagProcessor.resources is set (dagProcessor.resources is recommended for production).
1421 resourcesPreset: "small"
1422 ## @param dagProcessor.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1433 ## Configure Airflow Dag Processor pods Security Context
1434 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1435 ## @param dagProcessor.podSecurityContext.enabled Enabled Airflow Dag Processor pods' Security Context
1436 ## @param dagProcessor.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1437 ## @param dagProcessor.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1438 ## @param dagProcessor.podSecurityContext.supplementalGroups Set filesystem extra groups
1439 ## @param dagProcessor.podSecurityContext.fsGroup Set Airflow Dag Processor pod's Security Context fsGroup
1443 fsGroupChangePolicy: Always
1445 supplementalGroups: []
1447 ## Configure Airflow Dag Processor containers (only main one) Security Context
1448 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1449 ## @param dagProcessor.containerSecurityContext.enabled Enabled Airflow Dag Processor containers' Security Context
1450 ## @param dagProcessor.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1451 ## @param dagProcessor.containerSecurityContext.runAsUser Set Airflow Dag Processor containers' Security Context runAsUser
1452 ## @param dagProcessor.containerSecurityContext.runAsGroup Set Airflow Dag Processor containers' Security Context runAsGroup
1453 ## @param dagProcessor.containerSecurityContext.runAsNonRoot Set Airflow Dag Processor containers' Security Context runAsNonRoot
1454 ## @param dagProcessor.containerSecurityContext.privileged Set Airflow Dag Processor container's Security Context privileged
1455 ## @param dagProcessor.containerSecurityContext.allowPrivilegeEscalation Set Airflow Dag Processor container's Security Context allowPrivilegeEscalation
1456 ## @param dagProcessor.containerSecurityContext.readOnlyRootFilesystem Set Airflow Dag Processor container's Security Context readOnlyRootFilesystem
1457 ## @param dagProcessor.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1458 ## @param dagProcessor.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1460 containerSecurityContext:
1467 allowPrivilegeEscalation: false
1468 readOnlyRootFilesystem: true
1472 type: "RuntimeDefault"
1473 ## @param dagProcessor.lifecycleHooks for the Airflow Dag Processor containers to automate configuration before or after startup
1476 ## @param dagProcessor.automountServiceAccountToken Mount Service Account token in pod
1478 automountServiceAccountToken: false
1479 ## @param dagProcessor.hostAliases Deployment pod host aliases
1480 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1483 ## @param dagProcessor.podLabels Add extra labels to the Airflow Dag Processor pods
1486 ## @param dagProcessor.podAnnotations Add extra annotations to the Airflow Dag Processor pods
1489 ## @param dagProcessor.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1490 ## i.e. topologyKey: topology.kubernetes.io/zone
1493 ## @param dagProcessor.affinity Affinity for Airflow Dag Processor pods assignment (evaluated as a template)
1494 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1495 ## Note: `dagProcessor.podAffinityPreset`, `dagProcessor.podAntiAffinityPreset`, and `dagProcessor.nodeAffinityPreset` will be ignored when it's set
1498 ## Node affinity preset
1499 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1500 ## @param dagProcessor.nodeAffinityPreset.key Node label key to match. Ignored if `dagProcessor.affinity` is set.
1501 ## @param dagProcessor.nodeAffinityPreset.type Node affinity preset type. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`
1502 ## @param dagProcessor.nodeAffinityPreset.values Node label values to match. Ignored if `dagProcessor.affinity` is set.
1506 ## key: "kubernetes.io/e2e-az-name"
1516 ## @param dagProcessor.nodeSelector Node labels for Airflow Dag Processor pods assignment
1517 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1520 ## @param dagProcessor.podAffinityPreset Pod affinity preset. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`.
1521 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1523 podAffinityPreset: ""
1524 ## @param dagProcessor.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`.
1525 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1527 podAntiAffinityPreset: soft
1528 ## @param dagProcessor.tolerations Tolerations for Airflow Dag Processor pods assignment
1529 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1532 ## @param dagProcessor.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1533 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1535 topologySpreadConstraints: []
1536 ## @param dagProcessor.priorityClassName Priority Class Name
1537 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1539 priorityClassName: ""
1540 ## @param dagProcessor.schedulerName Use an alternate K8s scheduler, e.g. "stork".
1541 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1544 ## @param dagProcessor.terminationGracePeriodSeconds Seconds Airflow Dag Processor pod needs to terminate gracefully
1545 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1547 terminationGracePeriodSeconds: ""
1548 ## @param dagProcessor.updateStrategy.type Airflow Dag Processor deployment strategy type
1549 ## @param dagProcessor.updateStrategy.rollingUpdate Airflow Dag Processor deployment rolling update configuration parameters
1550 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1555 ## @param dagProcessor.sidecars Add additional sidecar containers to the Airflow Dag Processor pods
1558 ## - name: your-image-name
1559 ## image: your-image
1560 ## imagePullPolicy: Always
1563 ## containerPort: 1234
1566 ## @param dagProcessor.initContainers Add additional init containers to the Airflow Dag Processor pods
1569 ## - name: your-image-name
1570 ## image: your-image
1571 ## imagePullPolicy: Always
1574 ## containerPort: 1234
1577 ## Specify temporary volume parameters for the Airflow Dag Processor pods
1578 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1579 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1582 ## @param dagProcessor.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1583 ## Possible values: "Memory", ""
1587 ## @param dagProcessor.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1590 ## @param dagProcessor.ephemeral.storageClass Storage class of backing PVC
1591 ## If defined, storageClassName: <storageClass>
1592 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1593 ## If undefined (the default) or set to null, no storageClassName spec is
1594 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1595 ## GKE, AWS & OpenStack)
1598 ## @param dagProcessor.ephemeral.annotations Additional annotations for backing PVC
1601 ## @param dagProcessor.ephemeral.accessModes Persistent Volume Access Modes
1605 ## @param dagProcessor.ephemeral.size Size of the generic ephemeral volume
1608 ## @param dagProcessor.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Dag Processor containers
1610 extraVolumeMounts: []
1611 ## @param dagProcessor.extraVolumes Optionally specify extra list of additional volumes for the Airflow Dag Processor pods
1614 ## Airflow Dag Processor Pod Disruption Budget
1615 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1616 ## @param dagProcessor.pdb.create Deploy a pdb object for the Airflow Dag Processor pods
1617 ## @param dagProcessor.pdb.minAvailable Maximum number/percentage of unavailable Airflow Dag Processor replicas
1618 ## @param dagProcessor.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow Dag Processor replicas
1624 ## Autoscaling configuration
1625 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1628 ## @param dagProcessor.autoscaling.vpa.enabled Enable VPA for Airflow Dag Processor
1629 ## @param dagProcessor.autoscaling.vpa.annotations Annotations for VPA resource
1630 ## @param dagProcessor.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
1631 ## @param dagProcessor.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
1632 ## @param dagProcessor.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
1637 controlledResources: []
1640 ## @param dagProcessor.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
1641 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1642 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1646 ## @param dagProcessor.autoscaling.hpa.enabled Enable HPA for Airflow Dag Processor
1647 ## @param dagProcessor.autoscaling.hpa.minReplicas Minimum number of replicas
1648 ## @param dagProcessor.autoscaling.hpa.maxReplicas Maximum number of replicas
1649 ## @param dagProcessor.autoscaling.hpa.targetCPU Target CPU utilization percentage
1650 ## @param dagProcessor.autoscaling.hpa.targetMemory Target Memory utilization percentage
1658 ## Airflow Dag Processor Network Policies
1659 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1662 ## @param dagProcessor.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1665 ## @param dagProcessor.networkPolicy.allowExternal Don't require client label for connections
1666 ## The Policy model to apply. When set to false, only pods with the correct
1667 ## client label will have network access to the ports Airflow Dag Processor is listening
1668 ## on. When true, Airflow Dag Processor will accept connections from any source
1669 ## (with the correct destination port).
1672 ## @param dagProcessor.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1674 allowExternalEgress: true
1675 ## @param dagProcessor.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1685 ## - matchExpressions:
1691 ## @param dagProcessor.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1701 ## - matchExpressions:
1708 ## @param dagProcessor.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1709 ## @param dagProcessor.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1711 ingressNSMatchLabels: {}
1712 ingressNSPodMatchLabels: {}
1713## @section Airflow Triggerer parameters
1714## ref: https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/deferring.html#deferrable-operators-triggers
1717 ## @param triggerer.enabled Run Airflow Triggerer as a standalone component
1720 ## @param triggerer.defaultCapacity How many triggers a single Triggerer can run at once
1722 defaultCapacity: 1000
1723 ## @param triggerer.replicaCount Number of Airflow Triggerer replicas
1726 ## @param triggerer.command Override default Airflow Triggerer cmd
1729 ## @param triggerer.args Override default Airflow Triggerer args
1732 ## @param triggerer.extraEnvVars Add extra environment variables to Airflow Triggerer containers
1735 ## @param triggerer.extraEnvVarsCM ConfigMap with extra environment variables
1738 ## @param triggerer.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow triggerer pods
1741 ## @param triggerer.extraEnvVarsSecret Secret with extra environment variables
1743 extraEnvVarsSecret: ""
1744 ## @param triggerer.containerPorts.logs Airflow Triggerer logs container port
1748 ## Configure extra options for Airflow Triggerer containers' liveness, readiness and startup probes
1749 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1750 ## @param triggerer.livenessProbe.enabled Enable livenessProbe on Airflow Triggerer containers
1751 ## @param triggerer.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1752 ## @param triggerer.livenessProbe.periodSeconds Period seconds for livenessProbe
1753 ## @param triggerer.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1754 ## @param triggerer.livenessProbe.failureThreshold Failure threshold for livenessProbe
1755 ## @param triggerer.livenessProbe.successThreshold Success threshold for livenessProbe
1759 initialDelaySeconds: 180
1764 ## @param triggerer.readinessProbe.enabled Enable readinessProbe on Airflow Triggerer containers
1765 ## @param triggerer.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1766 ## @param triggerer.readinessProbe.periodSeconds Period seconds for readinessProbe
1767 ## @param triggerer.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1768 ## @param triggerer.readinessProbe.failureThreshold Failure threshold for readinessProbe
1769 ## @param triggerer.readinessProbe.successThreshold Success threshold for readinessProbe
1773 initialDelaySeconds: 30
1778 ## @param triggerer.startupProbe.enabled Enable startupProbe on Airflow Triggerer containers
1779 ## @param triggerer.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1780 ## @param triggerer.startupProbe.periodSeconds Period seconds for startupProbe
1781 ## @param triggerer.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1782 ## @param triggerer.startupProbe.failureThreshold Failure threshold for startupProbe
1783 ## @param triggerer.startupProbe.successThreshold Success threshold for startupProbe
1787 initialDelaySeconds: 60
1790 failureThreshold: 15
1792 ## @param triggerer.customLivenessProbe Custom livenessProbe that overrides the default one
1794 customLivenessProbe: {}
1795 ## @param triggerer.customReadinessProbe Custom readinessProbe that overrides the default one
1797 customReadinessProbe: {}
1798 ## @param triggerer.customStartupProbe Custom startupProbe that overrides the default one
1800 customStartupProbe: {}
1801 ## Airflow Triggerer resource requests and limits
1802 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1803 ## @param triggerer.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if triggerer.resources is set (triggerer.resources is recommended for production).
1805 resourcesPreset: "small"
1806 ## @param triggerer.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1817 ## Configure Airflow Triggerer pods Security Context
1818 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1819 ## @param triggerer.podSecurityContext.enabled Enabled Airflow Triggerer pods' Security Context
1820 ## @param triggerer.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1821 ## @param triggerer.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1822 ## @param triggerer.podSecurityContext.supplementalGroups Set filesystem extra groups
1823 ## @param triggerer.podSecurityContext.fsGroup Set Airflow Triggerer pod's Security Context fsGroup
1827 fsGroupChangePolicy: Always
1829 supplementalGroups: []
1831 ## Configure Airflow Triggerer containers (only main one) Security Context
1832 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1833 ## @param triggerer.containerSecurityContext.enabled Enabled Airflow Triggerer containers' Security Context
1834 ## @param triggerer.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1835 ## @param triggerer.containerSecurityContext.runAsUser Set Airflow Triggerer containers' Security Context runAsUser
1836 ## @param triggerer.containerSecurityContext.runAsGroup Set Airflow Triggerer containers' Security Context runAsGroup
1837 ## @param triggerer.containerSecurityContext.runAsNonRoot Set Airflow Triggerer containers' Security Context runAsNonRoot
1838 ## @param triggerer.containerSecurityContext.privileged Set Airflow Triggerer container's Security Context privileged
1839 ## @param triggerer.containerSecurityContext.allowPrivilegeEscalation Set Airflow Triggerer container's Security Context allowPrivilegeEscalation
1840 ## @param triggerer.containerSecurityContext.readOnlyRootFilesystem Set Airflow Triggerer container's Security Context readOnlyRootFilesystem
1841 ## @param triggerer.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1842 ## @param triggerer.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1844 containerSecurityContext:
1851 allowPrivilegeEscalation: false
1852 readOnlyRootFilesystem: true
1856 type: "RuntimeDefault"
1857 ## @param triggerer.lifecycleHooks for the Airflow Triggerer containers to automate configuration before or after startup
1860 ## @param triggerer.automountServiceAccountToken Mount Service Account token in pod
1862 automountServiceAccountToken: false
1863 ## @param triggerer.hostAliases Deployment pod host aliases
1864 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1867 ## @param triggerer.podLabels Add extra labels to the Airflow Triggerer pods
1870 ## @param triggerer.podAnnotations Add extra annotations to the Airflow Triggerer pods
1873 ## @param triggerer.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1874 ## i.e. topologyKey: topology.kubernetes.io/zone
1877 ## @param triggerer.affinity Affinity for Airflow Triggerer pods assignment (evaluated as a template)
1878 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1879 ## Note: `triggerer.podAffinityPreset`, `triggerer.podAntiAffinityPreset`, and `triggerer.nodeAffinityPreset` will be ignored when it's set
1882 ## Node affinity preset
1883 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1884 ## @param triggerer.nodeAffinityPreset.key Node label key to match. Ignored if `triggerer.affinity` is set.
1885 ## @param triggerer.nodeAffinityPreset.type Node affinity preset type. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`
1886 ## @param triggerer.nodeAffinityPreset.values Node label values to match. Ignored if `triggerer.affinity` is set.
1890 ## key: "kubernetes.io/e2e-az-name"
1900 ## @param triggerer.nodeSelector Node labels for Airflow Triggerer pods assignment
1901 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1904 ## @param triggerer.podAffinityPreset Pod affinity preset. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`.
1905 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1907 podAffinityPreset: ""
1908 ## @param triggerer.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`.
1909 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1911 podAntiAffinityPreset: soft
1912 ## @param triggerer.tolerations Tolerations for Airflow Triggerer pods assignment
1913 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1916 ## @param triggerer.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1917 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1919 topologySpreadConstraints: []
1920 ## @param triggerer.priorityClassName Priority Class Name
1921 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1923 priorityClassName: ""
1924 ## @param triggerer.schedulerName Use an alternate K8s scheduler, e.g. "stork".
1925 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1928 ## @param triggerer.terminationGracePeriodSeconds Seconds Airflow Triggerer pod needs to terminate gracefully
1929 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1931 terminationGracePeriodSeconds: ""
1932 ## @param triggerer.podManagementPolicy Pod management policy for the Airflow Triggerer statefulset
1933 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1935 podManagementPolicy: OrderedReady
1936 ## @param triggerer.updateStrategy.type Airflow Triggerer statefulset strategy type
1937 ## @param triggerer.updateStrategy.rollingUpdate Airflow Triggerer statefulset rolling update configuration parameters
1938 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1943 ## @param triggerer.sidecars Add additional sidecar containers to the Airflow Triggerer pods
1946 ## - name: your-image-name
1947 ## image: your-image
1948 ## imagePullPolicy: Always
1951 ## containerPort: 1234
1954 ## @param triggerer.initContainers Add additional init containers to the Airflow Triggerer pods
1957 ## - name: your-image-name
1958 ## image: your-image
1959 ## imagePullPolicy: Always
1962 ## containerPort: 1234
1965 ## Specify temporary volume parameters for the Airflow Triggerer pods
1966 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1967 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1970 ## @param triggerer.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1971 ## Possible values: "Memory", ""
1975 ## @param triggerer.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1978 ## @param triggerer.ephemeral.storageClass Storage class of backing PVC
1979 ## If defined, storageClassName: <storageClass>
1980 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1981 ## If undefined (the default) or set to null, no storageClassName spec is
1982 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1983 ## GKE, AWS & OpenStack)
1986 ## @param triggerer.ephemeral.annotations Additional annotations for backing PVC
1989 ## @param triggerer.ephemeral.accessModes Persistent Volume Access Modes
1993 ## @param triggerer.ephemeral.size Size of the generic ephemeral volume
1996 ## @param triggerer.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Triggerer containers
1998 extraVolumeMounts: []
1999 ## @param triggerer.extraVolumes Optionally specify extra list of additional volumes for the Airflow Triggerer pods
2002 ## Airflow Triggerer Pod Disruption Budget
2003 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
2004 ## @param triggerer.pdb.create Deploy a pdb object for the Airflow Triggerer pods
2005 ## @param triggerer.pdb.minAvailable Maximum number/percentage of unavailable Airflow Triggerer replicas
2006 ## @param triggerer.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow Triggerer replicas
2012 ## Autoscaling configuration
2013 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2016 ## @param triggerer.autoscaling.vpa.enabled Enable VPA for Airflow Triggerer
2017 ## @param triggerer.autoscaling.vpa.annotations Annotations for VPA resource
2018 ## @param triggerer.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
2019 ## @param triggerer.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
2020 ## @param triggerer.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
2025 controlledResources: []
2028 ## @param triggerer.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
2029 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
2030 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
2034 ## @param triggerer.autoscaling.hpa.enabled Enable HPA
2035 ## @param triggerer.autoscaling.hpa.minReplicas Minimum number of replicas
2036 ## @param triggerer.autoscaling.hpa.maxReplicas Maximum number of replicas
2037 ## @param triggerer.autoscaling.hpa.targetCPU Target CPU utilization percentage
2038 ## @param triggerer.autoscaling.hpa.targetMemory Target Memory utilization percentage
2046 ## Airflow Triggerer Persistence Parameters
2047 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes
2050 ## @param triggerer.persistence.enabled Enable logs persistence using Persistent Volume Claims
2053 ## @param triggerer.persistence.storageClass Storage class of backing PVC
2054 ## If defined, storageClassName: <storageClass>
2055 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2056 ## If undefined (the default) or set to null, no storageClassName spec is
2057 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2058 ## GKE, AWS & OpenStack)
2061 ## @param triggerer.persistence.annotations Additional Persistent Volume Claim annotations
2064 ## @param triggerer.persistence.accessModes Persistent Volume Access Modes
2068 ## @param triggerer.persistence.size Size of logs volume
2071 ## @param triggerer.persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
2072 ## If set, the PVC can't have a PV dynamically provisioned for it
2079 ## @param triggerer.persistence.dataSource Custom PVC data source
2082 ## @param triggerer.persistence.existingClaim The name of an existing PVC to use for persistence (only if triggerer.replicaCount=1)
2085 ## persistentVolumeClaimRetentionPolicy
2086 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
2087 ## @param triggerer.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
2088 ## @param triggerer.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
2089 ## @param triggerer.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
2091 persistentVolumeClaimRetentionPolicy:
2095 ## Airflow Triggerer Service
2098 ## @param triggerer.service.type Airflow Triggerer service type
2101 ## @param triggerer.service.ports.logs Airflow Triggerer service logs port
2105 ## Node ports to expose
2106 ## @param triggerer.service.nodePorts.logs Node port for Airflow Triggerer service logs
2107 ## NOTE: choose port between <30000-32767>
2111 ## @param triggerer.service.clusterIP Airflow Triggerer service Cluster IP
2116 ## @param triggerer.service.loadBalancerIP Airflow Triggerer service Load Balancer IP
2117 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2120 ## @param triggerer.service.loadBalancerSourceRanges Airflow Triggerer service Load Balancer sources
2121 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2123 ## loadBalancerSourceRanges:
2126 loadBalancerSourceRanges: []
2127 ## @param triggerer.service.externalTrafficPolicy Airflow Triggerer service external traffic policy
2128 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2130 externalTrafficPolicy: Cluster
2131 ## @param triggerer.service.annotations Additional custom annotations for Airflow Triggerer service
2134 ## @param triggerer.service.extraPorts Extra ports to expose in Airflow Triggerer service (normally used with the `triggerer.sidecars` value)
2137 ## @param triggerer.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2138 ## Values: ClientIP or None
2139 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2141 sessionAffinity: None
2142 ## @param triggerer.service.sessionAffinityConfig Additional settings for the sessionAffinity
2143 ## sessionAffinityConfig:
2145 ## timeoutSeconds: 300
2147 sessionAffinityConfig: {}
2148 ## Airflow Triggerer Network Policies
2149 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2152 ## @param triggerer.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2155 ## @param triggerer.networkPolicy.allowExternal Don't require client label for connections
2156 ## The Policy model to apply. When set to false, only pods with the correct
2157 ## client label will have network access to the ports Airflow Triggerer is listening
2158 ## on. When true, Airflow Triggerer will accept connections from any source
2159 ## (with the correct destination port).
2162 ## @param triggerer.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2164 allowExternalEgress: true
2165 ## @param triggerer.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2175 ## - matchExpressions:
2181 ## @param triggerer.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2191 ## - matchExpressions:
2198 ## @param triggerer.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2199 ## @param triggerer.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2201 ingressNSMatchLabels: {}
2202 ingressNSPodMatchLabels: {}
2203## @section Airflow worker parameters
2206 ## @param worker.command Override default container command (useful when using custom images)
2209 ## @param worker.args Override default container args (useful when using custom images)
2212 ## @param worker.extraEnvVars Array with extra environment variables to add Airflow worker pods
2215 ## @param worker.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow worker pods
2218 ## @param worker.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow worker pods
2221 ## @param worker.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow worker pods
2223 extraEnvVarsSecret: ""
2224 ## @param worker.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow worker pods
2226 extraEnvVarsSecrets: []
2227 ## @param worker.containerPorts.http Airflow worker HTTP container port
2231 ## @param worker.replicaCount Number of Airflow worker replicas
2234 ## Configure extra options for Airflow worker containers' liveness, readiness and startup probes
2235 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
2236 ## @param worker.livenessProbe.enabled Enable livenessProbe on Airflow worker containers
2237 ## @param worker.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2238 ## @param worker.livenessProbe.periodSeconds Period seconds for livenessProbe
2239 ## @param worker.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2240 ## @param worker.livenessProbe.failureThreshold Failure threshold for livenessProbe
2241 ## @param worker.livenessProbe.successThreshold Success threshold for livenessProbe
2245 initialDelaySeconds: 180
2250 ## @param worker.readinessProbe.enabled Enable readinessProbe on Airflow worker containers
2251 ## @param worker.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2252 ## @param worker.readinessProbe.periodSeconds Period seconds for readinessProbe
2253 ## @param worker.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2254 ## @param worker.readinessProbe.failureThreshold Failure threshold for readinessProbe
2255 ## @param worker.readinessProbe.successThreshold Success threshold for readinessProbe
2259 initialDelaySeconds: 30
2264 ## @param worker.startupProbe.enabled Enable startupProbe on Airflow worker containers
2265 ## @param worker.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2266 ## @param worker.startupProbe.periodSeconds Period seconds for startupProbe
2267 ## @param worker.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2268 ## @param worker.startupProbe.failureThreshold Failure threshold for startupProbe
2269 ## @param worker.startupProbe.successThreshold Success threshold for startupProbe
2273 initialDelaySeconds: 60
2276 failureThreshold: 15
2278 ## @param worker.customLivenessProbe Custom livenessProbe that overrides the default one
2280 customLivenessProbe: {}
2281 ## @param worker.customReadinessProbe Custom readinessProbe that overrides the default one
2283 customReadinessProbe: {}
2284 ## @param worker.customStartupProbe Custom startupProbe that overrides the default one
2286 customStartupProbe: {}
2287 ## Airflow worker resource requests and limits
2288 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2289 ## @param worker.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if worker.resources is set (worker.resources is recommended for production).
2291 resourcesPreset: "large"
2292 ## @param worker.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2303 ## Configure Airflow worker pods Security Context
2304 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2305 ## @param worker.podSecurityContext.enabled Enabled Airflow worker pods' Security Context
2306 ## @param worker.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2307 ## @param worker.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2308 ## @param worker.podSecurityContext.supplementalGroups Set filesystem extra groups
2309 ## @param worker.podSecurityContext.fsGroup Set Airflow worker pod's Security Context fsGroup
2313 fsGroupChangePolicy: Always
2315 supplementalGroups: []
2317 ## Configure Airflow worker containers (only main one) Security Context
2318 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2319 ## @param worker.containerSecurityContext.enabled Enabled Airflow worker containers' Security Context
2320 ## @param worker.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2321 ## @param worker.containerSecurityContext.runAsUser Set Airflow worker containers' Security Context runAsUser
2322 ## @param worker.containerSecurityContext.runAsGroup Set Airflow worker containers' Security Context runAsGroup
2323 ## @param worker.containerSecurityContext.runAsNonRoot Set Airflow worker containers' Security Context runAsNonRoot
2324 ## @param worker.containerSecurityContext.privileged Set worker container's Security Context privileged
2325 ## @param worker.containerSecurityContext.allowPrivilegeEscalation Set worker container's Security Context allowPrivilegeEscalation
2326 ## @param worker.containerSecurityContext.readOnlyRootFilesystem Set worker container's Security Context readOnlyRootFilesystem
2327 ## @param worker.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2328 ## @param worker.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2330 containerSecurityContext:
2337 allowPrivilegeEscalation: false
2338 readOnlyRootFilesystem: true
2342 type: "RuntimeDefault"
2343 ## @param worker.lifecycleHooks for the Airflow worker container(s) to automate configuration before or after startup
2346 ## @param worker.automountServiceAccountToken Mount Service Account token in pod
2348 automountServiceAccountToken: false
2349 ## @param worker.hostAliases Deployment pod host aliases
2350 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2353 ## @param worker.podLabels Add extra labels to the Airflow worker pods
2356 ## @param worker.podAnnotations Add extra annotations to the Airflow worker pods
2359 ## @param worker.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
2360 ## i.e. topologyKey: topology.kubernetes.io/zone
2363 ## @param worker.affinity Affinity for Airflow worker pods assignment (evaluated as a template)
2364 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2365 ## Note: `worker.podAffinityPreset`, `worker.podAntiAffinityPreset`, and `worker.nodeAffinityPreset` will be ignored when it's set
2368 ## Node affinity preset
2369 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2370 ## @param worker.nodeAffinityPreset.key Node label key to match. Ignored if `worker.affinity` is set.
2371 ## @param worker.nodeAffinityPreset.type Node affinity preset type. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`
2372 ## @param worker.nodeAffinityPreset.values Node label values to match. Ignored if `worker.affinity` is set.
2376 ## key: "kubernetes.io/e2e-az-name"
2386 ## @param worker.nodeSelector Node labels for Airflow worker pods assignment
2387 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2390 ## @param worker.podAffinityPreset Pod affinity preset. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`.
2391 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2393 podAffinityPreset: ""
2394 ## @param worker.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`.
2395 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2397 podAntiAffinityPreset: soft
2398 ## @param worker.tolerations Tolerations for Airflow worker pods assignment
2399 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2402 ## @param worker.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2403 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2405 topologySpreadConstraints: []
2406 ## @param worker.priorityClassName Priority Class Name
2407 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2409 priorityClassName: ""
2410 ## @param worker.schedulerName Use an alternate scheduler, e.g. "stork".
2411 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2414 ## @param worker.terminationGracePeriodSeconds Seconds Airflow worker pod needs to terminate gracefully
2415 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2417 terminationGracePeriodSeconds: ""
2418 ## @param worker.podManagementPolicy Pod management policy for the worker statefulset
2419 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
2421 podManagementPolicy: OrderedReady
2422 ## @param worker.updateStrategy.type Airflow worker statefulset strategy type
2423 ## @param worker.updateStrategy.rollingUpdate Airflow worker statefulset rolling update configuration parameters
2424 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2429 ## @param worker.sidecars Add additional sidecar containers to the Airflow worker pods
2432 ## - name: your-image-name
2433 ## image: your-image
2434 ## imagePullPolicy: Always
2437 ## containerPort: 1234
2440 ## @param worker.initContainers Add additional init containers to the Airflow worker pods
2443 ## - name: your-image-name
2444 ## image: your-image
2445 ## imagePullPolicy: Always
2448 ## containerPort: 1234
2451 ## Specify temporary volume parameters for the Airflow worker pods
2452 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
2453 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
2456 ## @param worker.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2457 ## Possible values: "Memory", ""
2461 ## @param worker.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2464 ## @param worker.ephemeral.storageClass Storage class of backing PVC
2465 ## If defined, storageClassName: <storageClass>
2466 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2467 ## If undefined (the default) or set to null, no storageClassName spec is
2468 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2469 ## GKE, AWS & OpenStack)
2472 ## @param worker.ephemeral.annotations Additional annotations for backing PVC
2475 ## @param worker.ephemeral.accessModes Persistent Volume Access Modes
2479 ## @param worker.ephemeral.size Size of the generic ephemeral volume
2482 ## @param worker.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow worker pods
2484 extraVolumeMounts: []
2485 ## @param worker.extraVolumes Optionally specify extra list of additional volumes for the Airflow worker pods
2488 ## @param worker.extraVolumeClaimTemplates Optionally specify extra list of volumesClaimTemplates for the Airflow worker statefulset
2490 extraVolumeClaimTemplates: []
2491 ## @param worker.podTemplate Template to replace the default one to be use when `executor=KubernetesExecutor` to create Airflow worker pods
2494 ## Airflow worker Pod Disruption Budget
2495 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
2496 ## @param worker.pdb.create Deploy a pdb object for the Airflow worker pods
2497 ## @param worker.pdb.minAvailable Maximum number/percentage of unavailable Airflow worker replicas
2498 ## @param worker.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow worker replicas
2504 ## Autoscaling configuration
2505 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2508 ## @param worker.autoscaling.vpa.enabled Enable VPA for Airflow Worker
2509 ## @param worker.autoscaling.vpa.annotations Annotations for VPA resource
2510 ## @param worker.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
2511 ## @param worker.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
2512 ## @param worker.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
2517 controlledResources: []
2520 ## @param worker.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
2521 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
2522 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
2526 ## @param worker.autoscaling.hpa.enabled Enable HPA for Airflow Worker
2527 ## @param worker.autoscaling.hpa.minReplicas Minimum number of replicas
2528 ## @param worker.autoscaling.hpa.maxReplicas Maximum number of replicas
2529 ## @param worker.autoscaling.hpa.targetCPU Target CPU utilization percentage
2530 ## @param worker.autoscaling.hpa.targetMemory Target Memory utilization percentage
2538 ## Worker Network Policies
2539 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2542 ## @param worker.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2545 ## @param worker.networkPolicy.allowExternal Don't require client label for connections
2546 ## The Policy model to apply. When set to false, only pods with the correct
2547 ## client label will have network access to the ports Worker is listening
2548 ## on. When true, Worker will accept connections from any source
2549 ## (with the correct destination port).
2552 ## @param worker.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2554 allowExternalEgress: true
2555 ## @param worker.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2565 ## - matchExpressions:
2571 ## @param worker.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2581 ## - matchExpressions:
2588 ## @param worker.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2589 ## @param worker.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2591 ingressNSMatchLabels: {}
2592 ingressNSPodMatchLabels: {}
2593## @section Airflow "setup-db" K8s Job parameters
2596 ## @param setupDBJob.enabled Enable setting up the Airflow database using a K8s job (otherwise it's done by the Webserver on startup)
2599 ## @param setupDBJob.backoffLimit set backoff limit of the job
2602 ## @param setupDBJob.command Override default container command on "setup-db" job's containers
2605 ## @param setupDBJob.args Override default container args on "setup-db" job's containers
2608 ## Configure "setup-db" job's container Security Context
2609 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2610 ## @param setupDBJob.containerSecurityContext.enabled Enabled "setup-db" job's containers' Security Context
2611 ## @param setupDBJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "setup-db" job's containers
2612 ## @param setupDBJob.containerSecurityContext.runAsUser Set runAsUser in "setup-db" job's containers' Security Context
2613 ## @param setupDBJob.containerSecurityContext.runAsGroup Set runAsUser in "setup-db" job's containers' Security Context
2614 ## @param setupDBJob.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "setup-db" job's containers' Security Context
2615 ## @param setupDBJob.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "setup-db" job's containers' Security Context
2616 ## @param setupDBJob.containerSecurityContext.privileged Set privileged in "setup-db" job's containers' Security Context
2617 ## @param setupDBJob.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "setup-db" job's containers' Security Context
2618 ## @param setupDBJob.containerSecurityContext.capabilities.add List of capabilities to be added in "setup-db" job's containers
2619 ## @param setupDBJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "setup-db" job's containers
2620 ## @param setupDBJob.containerSecurityContext.seccompProfile.type Set seccomp profile in "setup-db" job's containers
2622 containerSecurityContext:
2628 readOnlyRootFilesystem: true
2630 allowPrivilegeEscalation: false
2635 type: "RuntimeDefault"
2636 ## Configure "setup-db" job's pod Security Context
2637 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2638 ## @param setupDBJob.podSecurityContext.enabled Enabled "setup-db" job's pods' Security Context
2639 ## @param setupDBJob.podSecurityContext.fsGroupChangePolicy Set fsGroupChangePolicy in "setup-db" job's pods' Security Context
2640 ## @param setupDBJob.podSecurityContext.sysctls List of sysctls to allow in "setup-db" job's pods' Security Context
2641 ## @param setupDBJob.podSecurityContext.supplementalGroups List of supplemental groups to add to "setup-db" job's pods' Security Context
2642 ## @param setupDBJob.podSecurityContext.fsGroup Set fsGroup in "setup-db" job's pods' Security Context
2646 fsGroupChangePolicy: Always
2648 supplementalGroups: []
2650 ## @param setupDBJob.extraEnvVars Array containing extra env vars to configure the Airflow "setup-db" job's container
2653 ## @param setupDBJob.extraEnvVarsCM ConfigMap containing extra env vars to configure the Airflow "setup-db" job's container
2656 ## @param setupDBJob.extraEnvVarsSecret Secret containing extra env vars to configure the Airflow "setup-db" job's container (in case of sensitive data)
2658 extraEnvVarsSecret: ""
2659 ## Airflow "setup-db" job's container resource requests and limits
2660 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2661 ## @param setupDBJob.resourcesPreset Set Airflow "setup-db" job's container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if setupDBJob.resources is set (setupDBJob.resources is recommended for production).
2663 resourcesPreset: "small"
2664 ## @param setupDBJob.resources Set Airflow "setup-db" job's container requests and limits for different resources like CPU or memory (essential for production workloads)
2675 ## @param setupDBJob.automountServiceAccountToken Mount Service Account token in Airflow "setup-db" job's pods
2677 automountServiceAccountToken: false
2678 ## @param setupDBJob.hostAliases Add deployment host aliases
2679 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2682 ## @param setupDBJob.annotations [object] Add annotations to the Airflow "setup-db" job
2685 ## @param setupDBJob.podLabels Additional pod labels for Airflow "setup-db" job
2686 ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2689 ## @param setupDBJob.podAnnotations Additional pod annotations for Airflow "setup-db" job
2690 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2693 ## @param setupDBJob.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
2694 ## i.e. topologyKey: topology.kubernetes.io/zone
2697 ## @param setupDBJob.affinity Affinity for Airflow setup-db pods assignment (evaluated as a template)
2698 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2699 ## Note: `setupDBJob.podAffinityPreset`, `setupDBJob.podAntiAffinityPreset`, and `setupDBJob.nodeAffinityPreset` will be ignored when it's set
2702 ## Node affinity preset
2703 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2704 ## @param setupDBJob.nodeAffinityPreset.key Node label key to match. Ignored if `setupDBJob.affinity` is set.
2705 ## @param setupDBJob.nodeAffinityPreset.type Node affinity preset type. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`
2706 ## @param setupDBJob.nodeAffinityPreset.values Node label values to match. Ignored if `setupDBJob.affinity` is set.
2710 ## key: "kubernetes.io/e2e-az-name"
2720 ## @param setupDBJob.nodeSelector Node labels for Airflow setup-db pods assignment
2721 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2724 ## @param setupDBJob.podAffinityPreset Pod affinity preset. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`.
2725 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2727 podAffinityPreset: ""
2728 ## @param setupDBJob.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`.
2729 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2731 podAntiAffinityPreset: soft
2732 ## @param setupDBJob.tolerations Tolerations for Airflow setup-db pods assignment
2733 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2736 ## @param setupDBJob.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2737 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2739 topologySpreadConstraints: []
2740 ## @param setupDBJob.priorityClassName Priority Class Name
2741 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2743 priorityClassName: ""
2744 ## @param setupDBJob.schedulerName Use an alternate scheduler, e.g. "stork".
2745 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2748 ## @param setupDBJob.terminationGracePeriodSeconds Seconds Airflow setup-db pod needs to terminate gracefully
2749 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2751 terminationGracePeriodSeconds: ""
2752 ## Specify temporary volume parameters for the Airflow setup-db pods
2753 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
2754 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
2757 ## @param setupDBJob.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2758 ## Possible values: "Memory", ""
2762 ## @param setupDBJob.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2765 ## @param setupDBJob.ephemeral.storageClass Storage class of backing PVC
2766 ## If defined, storageClassName: <storageClass>
2767 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2768 ## If undefined (the default) or set to null, no storageClassName spec is
2769 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2770 ## GKE, AWS & OpenStack)
2773 ## @param setupDBJob.ephemeral.annotations Additional annotations for backing PVC
2776 ## @param setupDBJob.ephemeral.accessModes Persistent Volume Access Modes
2780 ## @param setupDBJob.ephemeral.size Size of the generic ephemeral volume
2783 ## @param setupDBJob.extraVolumes Optionally specify extra list of additional volumes for Airflow "setup-db" job's pods
2786 ## @param setupDBJob.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow "setup-db" job's containers
2788 extraVolumeMounts: []
2789 ## @param setupDBJob.initContainers Add additional init containers to the Airflow "setup-db" job's pods
2792 ## - name: your-image-name
2793 ## image: your-image
2794 ## imagePullPolicy: Always
2797 ## containerPort: 1234
2800## @section Airflow ldap parameters
2802## LDAP configuration
2803## @param ldap.enabled Enable LDAP authentication
2804## @param ldap.uri Server URI, eg. ldap://ldap_server:389
2805## @param ldap.basedn Base of the search, eg. ou=example,o=org.
2806## @param ldap.searchAttribute if doing an indirect bind to ldap, this is the field that matches the username when searching for the account to bind to
2807## @param ldap.firstnameField LDAP field that stores the user's first name.
2808## @param ldap.lastnameField LDAP field that stores the user's last name.
2809## @param ldap.emailField field that stores the user's email address, if null in LDAP, email is set to: "{username}@email.notfound"
2810## @param ldap.binddn DN of the account used to search in the LDAP server.
2811## @param ldap.bindpw Bind Password
2812## @param ldap.existingSecret Name of an existing secret containing the LDAP bind password
2813## @param ldap.userRegistration Set to True to enable user self registration
2814## @param ldap.userRegistrationRole Set role name to be assign when a user registers himself. This role must already exist. Mandatory when using ldap.userRegistration
2815## @param ldap.rolesMapping mapping from LDAP DN to a list of roles
2816## @param ldap.rolesSyncAtLogin replace ALL the user's roles each login, or only on registration
2820 uri: "ldap://ldap_server:389"
2821 basedn: "dc=example,dc=org"
2822 searchAttribute: "cn"
2823 firstnameField: "givenName"
2826 binddn: "cn=admin,dc=example,dc=org"
2829 userRegistration: 'True'
2830 userRegistrationRole: "Public"
2831 rolesMapping: '{ "cn=All,ou=Groups,dc=example,dc=org": ["User"], "cn=Admins,ou=Groups,dc=example,dc=org": ["Admin"], }'
2832 rolesSyncAtLogin: 'True'
2833 ## SSL/TLS parameters for LDAP
2834 ## @param ldap.tls.enabled Enabled TLS/SSL for LDAP, you must include the CA file.
2835 ## @param ldap.tls.allowSelfSigned Allow to use self signed certificates
2836 ## @param ldap.tls.certificatesSecret Name of the existing secret containing the certificate CA file that will be used by ldap client
2837 ## @param ldap.tls.certificatesMountPath Where LDAP certifcates are mounted.
2838 ## @param ldap.tls.CAFilename LDAP CA cert filename
2842 allowSelfSigned: true
2843 certificatesSecret: ""
2844 certificatesMountPath: /opt/iamguarded/airflow/conf/certs
2846## @section Traffic Exposure Parameters
2848## Airflow service parameters
2851 ## @param service.type Airflow service type
2854 ## @param service.ports.http Airflow service HTTP port
2858 ## Node ports to expose
2859 ## @param service.nodePorts.http Node port for HTTP
2860 ## NOTE: choose port between <30000-32767>
2864 ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
2865 ## Values: ClientIP or None
2866 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2868 sessionAffinity: None
2869 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
2870 ## sessionAffinityConfig:
2872 ## timeoutSeconds: 300
2874 sessionAffinityConfig: {}
2875 ## @param service.clusterIP Airflow service Cluster IP
2880 ## @param service.loadBalancerIP Airflow service Load Balancer IP
2881 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2884 ## @param service.loadBalancerSourceRanges Airflow service Load Balancer sources
2885 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2887 ## loadBalancerSourceRanges:
2890 loadBalancerSourceRanges: []
2891 ## @param service.externalTrafficPolicy Airflow service external traffic policy
2892 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2894 externalTrafficPolicy: Cluster
2895 ## @param service.annotations Additional custom annotations for Airflow service
2898 ## @param service.extraPorts Extra port to expose on Airflow service
2901## Airflow ingress parameters
2902## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2905 ## @param ingress.enabled Enable ingress record generation for Airflow
2908 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2909 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2910 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2912 ingressClassName: ""
2913 ## @param ingress.pathType Ingress path type
2915 pathType: ImplementationSpecific
2916 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
2919 ## @param ingress.hostname Default host for the ingress record
2921 hostname: airflow.local
2922 ## @param ingress.path Default path for the ingress record
2923 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2926 ## @param ingress.annotations [object] Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2927 ## Use this parameter to set the required annotations for cert-manager, see
2928 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2931 ## kubernetes.io/ingress.class: nginx
2932 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2935 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2936 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2938 ## - Use the `ingress.secrets` parameter to create this TLS secret
2939 ## - Rely on cert-manager to create it by setting the corresponding annotations
2940 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2943 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2946 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2949 ## - name: airflow.local
2953 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2958 ## serviceName: ssl-redirect
2959 ## servicePort: use-annotation
2962 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2963 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2968 ## secretName: airflow.local-tls
2971 ## @param ingress.secrets Custom TLS certificates as secrets
2972 ## NOTE: 'key' and 'certificate' are expected in PEM format
2973 ## NOTE: 'name' should line up with a 'secretName' set further up
2974 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
2975 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2976 ## It is also possible to create and manage the certificates outside of this helm chart
2977 ## Please see README.md for more information
2980 ## - name: airflow.local-tls
2982 ## -----BEGIN RSA PRIVATE KEY-----
2984 ## -----END RSA PRIVATE KEY-----
2986 ## -----BEGIN CERTIFICATE-----
2988 ## -----END CERTIFICATE-----
2991 ## @param ingress.extraRules Additional rules to be covered with this ingress record
2992 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2995 ## - host: example.local
3000 ## name: example-svc
3005## @section Other Parameters
3007## Service account for Airflow pods to use.
3008## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3011 ## @param serviceAccount.create Enable creation of ServiceAccount for Airflow pods
3014 ## @param serviceAccount.name The name of the ServiceAccount to use.
3015 ## If not set and create is true, a name is generated using the common.names.fullname template
3018 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
3019 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
3021 automountServiceAccountToken: false
3022 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
3026## Ref: https://kubernetes.io/docs/admin/authorization/rbac/
3027## @param rbac.create Create Role and RoleBinding
3031 ## @param rbac.rules Custom RBAC rules to set
3043## @section StatsD metrics parameters
3046 ## @param metrics.enabled Enable a StatsD exporter that collects StatsD metrics from Airflow components and expose them as Prometheus metrics
3049 ## Iamguarded StatsD exporter image
3050 ## @param metrics.image.registry [default: REGISTRY_NAME] StatsD exporter image registry
3051 ## @param metrics.image.repository [default: REPOSITORY_NAME/statsd-exporter] StatsD exporter image repository
3052 ## @skip metrics.image.tag StatsD exporter image tag (immutable tags are recommended)
3053 ## @param metrics.image.digest StatsD exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3054 ## @param metrics.image.pullPolicy StatsD exporter image pull policy
3055 ## @param metrics.image.pullSecrets StatsD exporter image pull secrets
3059 repository: chainguard-private/prometheus-statsd-exporter-iamguarded
3062 pullPolicy: IfNotPresent
3063 ## Optionally specify an array of imagePullSecrets.
3064 ## Secrets must be manually created in the namespace.
3065 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3068 ## - myRegistryKeySecretName
3071 ## @param metrics.configuration Specify content for StatsD exporter's mappings.yml
3074 ## @param metrics.existingConfigmap Name of an existing config map containing the StatsD exporter's mappings.yml
3076 existingConfigmap: ""
3077 ## @param metrics.containerPorts.ingest StatsD exporter ingest container port (used for the metrics ingestion from Airflow components)
3078 ## @param metrics.containerPorts.metrics StatsD exporter metrics container port (used to expose Prometheus metrics)
3083 ## StatsD exporter resource requests and limits
3084 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3085 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
3087 resourcesPreset: "nano"
3088 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3099 ## StatsD exporter pods' Security Context
3100 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3101 ## @param metrics.podSecurityContext.enabled Enable security context for the pods
3102 ## @param metrics.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3103 ## @param metrics.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3104 ## @param metrics.podSecurityContext.supplementalGroups Set filesystem extra groups
3105 ## @param metrics.podSecurityContext.fsGroup Set StatsD exporter pod's Security Context fsGroup
3109 fsGroupChangePolicy: Always
3111 supplementalGroups: []
3113 ## StatsD exporter containers' Security Context
3114 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3115 ## @param metrics.containerSecurityContext.enabled Enable StatsD exporter containers' Security Context
3116 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
3117 ## @param metrics.containerSecurityContext.runAsUser Set StatsD exporter containers' Security Context runAsUser
3118 ## @param metrics.containerSecurityContext.runAsGroup Set StatsD exporter containers' Security Context runAsGroup
3119 ## @param metrics.containerSecurityContext.runAsNonRoot Set StatsD exporter containers' Security Context runAsNonRoot
3120 ## @param metrics.containerSecurityContext.privileged Set StatsD exporter containers' Security Context privileged
3121 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set StatsD exporter containers' Security Context allowPrivilegeEscalation
3122 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set StatsD exporter containers' Security Context readOnlyRootFilesystem
3123 ## @param metrics.containerSecurityContext.capabilities.drop List of capabilities to be dropped
3124 ## @param metrics.containerSecurityContext.seccompProfile.type Set containers' Security Context seccomp profile
3126 ## containerSecurityContext:
3129 ## drop: ["NET_RAW"]
3130 ## readOnlyRootFilesystem: true
3132 containerSecurityContext:
3139 allowPrivilegeEscalation: false
3140 readOnlyRootFilesystem: true
3144 type: "RuntimeDefault"
3145 ## Configure extra options for StatsD exporter containers' liveness, readiness and startup probes
3146 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
3147 ## @param metrics.livenessProbe.enabled Enable livenessProbe on StatsD exporter containers
3148 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
3149 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
3150 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
3151 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
3152 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
3156 initialDelaySeconds: 180
3161 ## @param metrics.readinessProbe.enabled Enable readinessProbe on StatsD exporter containers
3162 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
3163 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
3164 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
3165 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
3166 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
3170 initialDelaySeconds: 30
3175 ## @param metrics.startupProbe.enabled Enable startupProbe on StatsD exporter containers
3176 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
3177 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
3178 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
3179 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
3180 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
3184 initialDelaySeconds: 60
3187 failureThreshold: 15
3189 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
3191 customLivenessProbe: {}
3192 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
3194 customReadinessProbe: {}
3195 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
3197 customStartupProbe: {}
3198 ## @param metrics.lifecycleHooks for the StatsD exporter containers' to automate configuration before or after startup
3201 ## @param metrics.automountServiceAccountToken Mount Service Account token in pod
3203 automountServiceAccountToken: false
3204 ## @param metrics.hostAliases StatsD exporter pods host aliases
3205 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3208 ## @param metrics.podLabels Extra labels for StatsD exporter pods
3209 ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3212 ## @param metrics.podAnnotations Extra annotations for StatsD exporter pods
3213 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3216 ## @param metrics.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
3217 ## i.e. topologyKey: topology.kubernetes.io/zone
3220 ## @param metrics.podAffinityPreset Pod affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3221 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3223 podAffinityPreset: ""
3224 ## @param metrics.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3225 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3227 podAntiAffinityPreset: soft
3228 ## Node metrics.affinity preset
3229 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3232 ## @param metrics.nodeAffinityPreset.type Node affinity preset type. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3235 ## @param metrics.nodeAffinityPreset.key Node label key to match Ignored if `metrics.affinity` is set.
3237 ## key: "kubernetes.io/e2e-az-name"
3240 ## @param metrics.nodeAffinityPreset.values Node label values to match. Ignored if `metrics.affinity` is set.
3247 ## @param metrics.affinity Affinity for StatsD exporter pods assignment
3248 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3249 ## Note: metrics.podAffinityPreset, metrics.podAntiAffinityPreset, and metrics.nodeAffinityPreset will be ignored when it's set
3252 ## @param metrics.nodeSelector Node labels for StatsD exporter pods assignment
3253 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3256 ## @param metrics.priorityClassName StatsD exporter pods' priorityClassName
3258 priorityClassName: ""
3259 ## @param metrics.tolerations Tolerations for pod assignment
3260 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3263 ## @param metrics.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
3264 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3266 topologySpreadConstraints: []
3267 ## @param metrics.schedulerName Name of the k8s scheduler (other than default) for StatsD exporter
3268 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3271 ## @param metrics.terminationGracePeriodSeconds Seconds StatsD exporter pod needs to terminate gracefully
3272 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3274 terminationGracePeriodSeconds: ""
3275 ## Specify temporary volume parameters for the StatsD exporter pods
3276 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
3277 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
3280 ## @param metrics.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
3281 ## Possible values: "Memory", ""
3285 ## @param metrics.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
3288 ## @param metrics.ephemeral.storageClass Storage class of backing PVC
3289 ## If defined, storageClassName: <storageClass>
3290 ## If set to "-", storageClassName: "", which disables dynamic provisioning
3291 ## If undefined (the default) or set to null, no storageClassName spec is
3292 ## set, choosing the default provisioner. (gp2 on AWS, standard on
3293 ## GKE, AWS & OpenStack)
3296 ## @param metrics.ephemeral.annotations Additional annotations for backing PVC
3299 ## @param metrics.ephemeral.accessModes Persistent Volume Access Modes
3303 ## @param metrics.ephemeral.size Size of the generic ephemeral volume
3306 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the StatsD exporter pods
3309 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the StatsD exporter containers
3311 extraVolumeMounts: []
3312 ## StatsD metrics service configuration
3315 ## @param metrics.service.ports.ingest StatsD exporter ingest service port (used for the metrics ingestion from Airflow components)
3316 ## @param metrics.service.ports.metrics StatsD exporter metrics service port (used to expose Prometheus metrics)
3321 ## @param metrics.service.clusterIP Static clusterIP or None for headless services
3322 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
3325 ## @param metrics.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3326 ## Values: ClientIP or None
3327 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3329 sessionAffinity: None
3330 ## @param metrics.service.annotations [object] Annotations for the StatsD metrics service
3333 prometheus.io/scrape: "true"
3334 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
3335 ## Prometheus Operator ServiceMonitor configuration
3338 ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (requires `metrics.enabled` to be `true`)
3341 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
3344 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
3345 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3348 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
3349 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3352 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
3355 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
3358 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
3361 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
3363 metricRelabelings: []
3364 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
3367 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3370 ## Metrics Network Policies
3371 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3374 ## @param metrics.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
3377 ## @param metrics.networkPolicy.allowExternal Don't require client label for connections
3378 ## The Policy model to apply. When set to false, only pods with the correct
3379 ## client label will have network access to the ports Metrics is listening
3380 ## on. When true, Metrics will accept connections from any source
3381 ## (with the correct destination port).
3384 ## @param metrics.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3386 allowExternalEgress: true
3387 ## @param metrics.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3397 ## - matchExpressions:
3403 ## @param metrics.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3413 ## - matchExpressions:
3420 ## @param metrics.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3421 ## @param metrics.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3423 ingressNSMatchLabels: {}
3424 ingressNSPodMatchLabels: {}
3425## @section Airflow database parameters
3427## PostgreSQL chart configuration
3428## @param postgresql.enabled Switch to enable or disable the PostgreSQL helm chart
3429## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user
3430## @param postgresql.auth.username Name for a custom user to create
3431## @param postgresql.auth.password Password for the custom user to create
3432## @param postgresql.auth.database Name for a custom database to create
3433## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials
3434## @param postgresql.architecture PostgreSQL architecture (`standalone` or `replication`)
3439 enablePostgresUser: true
3440 username: ig_airflow
3442 database: iamguarded_airflow
3444 architecture: standalone
3446 ## PostgreSQL Primary resource requests and limits
3447 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3448 ## @param postgresql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
3450 resourcesPreset: "nano"
3451 ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3464 repository: chainguard-private/postgres-iamguarded
3470 repository: chainguard-private/prometheus-postgres-exporter-iamguarded
3476 repository: chainguard-private/os-shell-iamguarded
3479## External PostgreSQL configuration
3480## All of these values are only used when postgresql.enabled is set to false
3481## @param externalDatabase.host Database host (ignored if externalDatabase.sqlConnection is set)
3482## @param externalDatabase.port Database port number (ignored if externalDatabase.sqlConnection is set)
3483## @param externalDatabase.user Non-root username for Airflow (ignored if externalDatabase.sqlConnection is set)
3484## @param externalDatabase.password Password for the non-root username for Airflow (ignored if externalDatabase.sqlConnection or externalDatabase.existingSecret are set)
3485## @param externalDatabase.database Airflow database name (ignored if externalDatabase.sqlConnection is set)
3486## @param externalDatabase.sqlConnection SQL connection string
3487## @param externalDatabase.existingSecret Name of an existing secret resource containing the database credentials
3488## @param externalDatabase.existingSecretPasswordKey Name of an existing secret key containing the database credentials (ignored if externalDatabase.existingSecretSqlConnectionKey is set)
3489## @param externalDatabase.existingSecretSqlConnectionKey Name of an existing secret key containing the SQL connection string
3495 database: iamguarded_airflow
3499 existingSecretPasswordKey: ""
3500 existingSecretSqlConnectionKey: ""
3501## Redis® chart configuration
3502## @param redis.enabled Switch to enable or disable the Redis® helm
3503## @param redis.auth.enabled Enable password authentication
3504## @param redis.auth.password Redis® password
3505## @param redis.auth.existingSecret The name of an existing secret with Redis® credentials
3506## @param redis.architecture Redis® architecture. Allowed values: `standalone` or `replication`
3512 ## Redis® password (both master and slave). Defaults to a random 10-character alphanumeric string if not set and auth.enabled is true.
3513 ## It should always be set using the password value or in the existingSecret to avoid issues
3515 ## The password value is ignored if existingSecret is set
3518 architecture: standalone
3520 ## @param redis.master.service.ports.redis Redis® port
3525 ## Redis® master resource requests and limits
3526 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3527 ## @param redis.master.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production).
3529 resourcesPreset: "nano"
3530 ## @param redis.master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3543 repository: chainguard-private/redis-server-iamguarded
3549 repository: chainguard-private/redis-sentinel-iamguarded
3555 repository: chainguard-private/prometheus-redis-exporter-iamguarded
3561 repository: chainguard-private/kubectl-iamguarded
3567 repository: chainguard-private/os-shell-iamguarded
3573 repository: chainguard-private/os-shell-iamguarded
3576## External Redis® configuration
3577## All of these values are only used when redis.enabled is set to false
3578## @param externalRedis.host Redis® host
3579## @param externalRedis.port Redis® port number
3580## @param externalRedis.username Redis® username
3581## @param externalRedis.password Redis® password
3582## @param externalRedis.existingSecret Name of an existing secret resource containing the Redis&trade credentials
3583## @param externalRedis.existingSecretPasswordKey Name of an existing secret key containing the Redis&trade credentials
3588 ## Most Redis® implementations do not require a username
3589 ## to authenticate and it should be enough with the password
3593 existingSecretPasswordKey: ""