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.useImageTags Pull every image by tag and ignore all image digests, including digests set in values. Use this when your registry mirror does not have the chart's default image digests.
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
25 ## - myRegistryKeySecretName
28 defaultStorageClass: ""
29 ## Security parameters
32 ## @param global.security.allowInsecureImages Allows skipping image verification
33 allowInsecureImages: false
34 ## Compatibility adaptations for Kubernetes platforms
37 ## Compatibility adaptations for Openshift
40 ## @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)
42 adaptSecurityContext: auto
43 ## @param global.compatibility.omitEmptySeLinuxOptions If set to true, removes the seLinuxOptions from the securityContexts when it is set to an empty object
45 omitEmptySeLinuxOptions: false
47## @section Common parameters
49## @param kubeVersion Override Kubernetes version
52## @param apiVersions Override Kubernetes API versions reported by .Capabilities
55## @param nameOverride String to partially override common.names.name
58## @param fullnameOverride String to fully override common.names.fullname
61## @param namespaceOverride String to fully override common.names.namespace
64## @param commonLabels Labels to add to all deployed objects
67## @param commonAnnotations Annotations to add to all deployed objects
70## @param clusterDomain Kubernetes cluster domain name
72clusterDomain: cluster.local
73## @param extraDeploy Array of extra objects to deploy with the release
76## @param usePasswordFiles Mount credentials as files instead of using environment variables
80## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
81## @param diagnosticMode.command Command to override all containers in the chart release
82## @param diagnosticMode.args Args to override all containers in the chart release
90## @section Airflow common parameters
92## Iamguarded Airflow image version
93## @param image.registry [default: REGISTRY_NAME] Airflow image registry
94## @param image.repository [default: REPOSITORY_NAME/airflow] Airflow image repository
95## @skip image.tag Airflow image tag (immutable tags are recommended)
96## @param image.digest Airflow image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
97## @param image.pullPolicy Airflow image pull policy
98## @param image.pullSecrets Airflow image pull secrets
99## @param image.debug Enable image debug mode
102 repository: chainguard-private/airflow-iamguarded
105 ## Specify a imagePullPolicy
106 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
107 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
109 pullPolicy: IfNotPresent
110 ## Optionally specify an array of imagePullSecrets.
111 ## Secrets must be manually created in the namespace.
112 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
115 ## - myRegistryKeySecretName
118 ## Set to true if you would like to see extra information on logs
121## Authentication parameters
124 ## @param auth.username Username to access web UI
127 ## @param auth.password Password to access web UI
130 ## @param auth.fernetKey Fernet key to secure connections
131 ## ref: https://airflow.readthedocs.io/en/stable/howto/secure-connections.html
132 ## ref: https://bcb.github.io/airflow/fernet-key
135 ## @param auth.secretKey Secret key to run your flask app
136 ## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key
139 ## @param auth.jwtSecretKey JWT secret key to run your flask app
140 ## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key
143 ## @param auth.existingSecret Name of an existing secret to use for Airflow credentials
144 ## `auth.password`, `auth.fernetKey`, and `auth.secretKey` will be ignored and picked up from this secret
145 ## The secret must contain the keys `airflow-password`, `airflow-fernet-key` and `airflow-secret-key'
146 ## The value is evaluated as a template
149## @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)
150## ref: http://airflow.apache.org/docs/stable/executor/index.html
152executor: CeleryExecutor
153## @param loadExamples Switch to load some Airflow examples
156## @param configuration Specify content for Airflow config file (auto-generated based on other parameters otherwise)
157## ref: https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html
158## Use YAML format, then it's transformed to .cfg format by the chart. e.g:
161## dags_folder: "/opt/iamguarded/airflow/dags"
162## ... will be transformed to:
164## dags_folder = "/opt/iamguarded/airflow/dags"
167## @param overrideConfiguration Airflow common configuration override. Values defined here takes precedence over the ones defined at `configuration`
169overrideConfiguration: {}
170## @param localSettings Specify content for Airflow local settings (airflow_local_settings.py)
171## ref: https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html#configuring-local-settings
177## @param existingConfigmap Name of an existing ConfigMap with the Airflow config file and, optionally, the local settings file
180## Load custom DAGs files from a ConfigMap or Git repositories
181## @param dags.enabled Enable loading DAGs from a ConfigMap or Git repositories
182## @param dags.existingConfigmap Name of an existing ConfigMap with all the DAGs files you want to load in Airflow
183## @param dags.repositories [array] Array of repositories from which to download DAG files
187 existingConfigmap: ""
190 ## - repository: https://github.com/myuser/myrepo
196 ## @param dags.sshKey SSH Private key used to clone/sync DAGs from Git repositories (ignored if dags.existingSshKeySecret is set)
199 ## @param dags.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync DAGs from Git repositories
201 existingSshKeySecret: ""
202 ## @param dags.existingSshKeySecretKey Key in the existing secret containing the SSH private key
204 existingSshKeySecretKey: ""
205## Load custom plugins from Git repositories
206## @param plugins.enabled Enable loading plugins from Git repositories
207## @param plugins.repositories [array] Array of repositories from which to download plugins
213 ## - repository: https://github.com/myuser/myrepo
219 ## @param plugins.sshKey SSH Private key used to clone/sync plugins from Git repositories (ignored if plugins.existingSshKeySecret is set)
222 ## @param plugins.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync plugins from Git repositories
224 existingSshKeySecret: ""
225 ## @param plugins.existingSshKeySecretKey Key in the existing secret containing the SSH private key
227 existingSshKeySecretKey: ""
228## Default init Containers
230defaultInitContainers:
231 ## Airflow "prepare-config" init container
232 ## Used to prepare the Airflow configuration files for main containers to use them
235 ## Configure "prepare-config" init-container Security Context
236 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
237 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.enabled Enabled "prepare-config" init-containers' Security Context
238 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "prepare-config" init-containers
239 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsUser Set runAsUser in "prepare-config" init-containers' Security Context
240 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsGroup Set runAsUser in "prepare-config" init-containers' Security Context
241 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "prepare-config" init-containers' Security Context
242 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "prepare-config" init-containers' Security Context
243 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.privileged Set privileged in "prepare-config" init-containers' Security Context
244 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "prepare-config" init-containers' Security Context
245 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.capabilities.add List of capabilities to be added in "prepare-config" init-containers
246 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "prepare-config" init-containers
247 ## @param defaultInitContainers.prepareConfig.containerSecurityContext.seccompProfile.type Set seccomp profile in "prepare-config" init-containers
249 containerSecurityContext:
255 readOnlyRootFilesystem: true
257 allowPrivilegeEscalation: false
262 type: "RuntimeDefault"
263 ## Airflow "prepare-config" init container resource requests and limits
264 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
265 ## @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).
267 resourcesPreset: "nano"
268 ## @param defaultInitContainers.prepareConfig.resources Set Airflow "prepare-config" init container requests and limits for different resources like CPU or memory (essential for production workloads)
279 ## Airflow "wait-for-db-migrations" init container
280 ## Used to wait for db migrations to be ready
283 ## Configure "wait-for-db-migrations" init-container Security Context
284 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
285 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.enabled Enabled "wait-for-db-migrations" init-containers' Security Context
286 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "wait-for-db-migrations" init-containers
287 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsUser Set runAsUser in "wait-for-db-migrations" init-containers' Security Context
288 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsGroup Set runAsUser in "wait-for-db-migrations" init-containers' Security Context
289 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "wait-for-db-migrations" init-containers' Security Context
290 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "wait-for-db-migrations" init-containers' Security Context
291 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.privileged Set privileged in "wait-for-db-migrations" init-containers' Security Context
292 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "wait-for-db-migrations" init-containers' Security Context
293 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.capabilities.add List of capabilities to be added in "wait-for-db-migrations" init-containers
294 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "wait-for-db-migrations" init-containers
295 ## @param defaultInitContainers.waitForDBMigrations.containerSecurityContext.seccompProfile.type Set seccomp profile in "wait-for-db-migrations" init-containers
297 containerSecurityContext:
303 readOnlyRootFilesystem: true
305 allowPrivilegeEscalation: false
310 type: "RuntimeDefault"
311 ## Airflow "wait-for-db-migrations" init container resource requests and limits
312 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
313 ## @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).
315 resourcesPreset: "micro"
316 ## @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)
328 ## Configure "prepare-venv" init-container Security Context
329 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
330 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.enabled Enabled "prepare-venv" init-containers' Security Context
331 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "prepare-venv" init-containers
332 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsUser Set runAsUser in "prepare-venv" init-containers' Security Context
333 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsGroup Set runAsUser in "prepare-venv" init-containers' Security Context
334 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "prepare-venv" init-containers' Security Context
335 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "prepare-venv" init-containers' Security Context
336 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.privileged Set privileged in "prepare-venv" init-containers' Security Context
337 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "prepare-venv" init-containers' Security Context
338 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.capabilities.add List of capabilities to be added in "prepare-venv" init-containers
339 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "prepare-venv" init-containers
340 ## @param defaultInitContainers.prepareVenv.containerSecurityContext.seccompProfile.type Set seccomp profile in "prepare-venv" init-containers
342 containerSecurityContext:
348 readOnlyRootFilesystem: true
350 allowPrivilegeEscalation: false
355 type: "RuntimeDefault"
356 ## Airflow "prepare-venv" init container resource requests and limits
357 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
358 ## @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).
360 resourcesPreset: "nano"
361 ## @param defaultInitContainers.prepareVenv.resources Set Airflow "prepare-venv" init container requests and limits for different resources like CPU or memory (essential for production workloads)
372 ## Airflow "load-dags-plugins" init container
373 ## Used to load DAGs and/or plugins from a ConfigMap or Git repositories
376 ## @param defaultInitContainers.loadDAGsPlugins.command Override cmd
377 ## @param defaultInitContainers.loadDAGsPlugins.args Override args
378 ## @param defaultInitContainers.loadDAGsPlugins.extraVolumeMounts Add extra volume mounts
379 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVars Add extra environment variables
380 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVarsCM ConfigMap with extra environment variables
381 ## @param defaultInitContainers.loadDAGsPlugins.extraEnvVarsSecret Secret with extra environment variables
384 extraVolumeMounts: []
387 extraEnvVarsSecret: ""
388 ## Configure "load-dags-plugins" init-container Security Context
389 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
390 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.enabled Enabled "load-dags-plugins" init-containers' Security Context
391 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "load-dags-plugins" init-containers
392 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsUser Set runAsUser in "load-dags-plugins" init-containers' Security Context
393 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsGroup Set runAsUser in "load-dags-plugins" init-containers' Security Context
394 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "load-dags-plugins" init-containers' Security Context
395 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "load-dags-plugins" init-containers' Security Context
396 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.privileged Set privileged in "load-dags-plugins" init-containers' Security Context
397 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "load-dags-plugins" init-containers' Security Context
398 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.capabilities.add List of capabilities to be added in "load-dags-plugins" init-containers
399 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "load-dags-plugins" init-containers
400 ## @param defaultInitContainers.loadDAGsPlugins.containerSecurityContext.seccompProfile.type Set seccomp profile in "load-dags-plugins" init-containers
402 containerSecurityContext:
408 readOnlyRootFilesystem: true
410 allowPrivilegeEscalation: false
415 type: "RuntimeDefault"
416 ## Airflow "load-dags-plugins" init container resource requests and limits
417 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
418 ## @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).
420 resourcesPreset: "nano"
421 ## @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)
435 ## Airflow "sync-dags-plugins" sidecar
436 ## Used to sync DAGs and/or plugins from Git repositories
439 ## @param defaultSidecars.syncDAGsPlugins.interval Interval in seconds to pull the git repository containing the DAGs and/or plugins
440 ## @param defaultSidecars.syncDAGsPlugins.command Override cmd
441 ## @param defaultSidecars.syncDAGsPlugins.args Override args
442 ## @param defaultSidecars.syncDAGsPlugins.extraVolumeMounts Add extra volume mounts
443 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVars Add extra environment variables
444 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVarsCM ConfigMap with extra environment variables
445 ## @param defaultSidecars.syncDAGsPlugins.extraEnvVarsSecret Secret with extra environment variables
449 extraVolumeMounts: []
452 extraEnvVarsSecret: ""
453 ## Configure "sync-dags-plugins" sidecar Security Context
454 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
455 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.enabled Enabled "sync-dags-plugins" sidecars' Security Context
456 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "sync-dags-plugins" sidecars
457 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsUser Set runAsUser in "sync-dags-plugins" sidecars' Security Context
458 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsGroup Set runAsUser in "sync-dags-plugins" sidecars' Security Context
459 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "sync-dags-plugins" sidecars' Security Context
460 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "sync-dags-plugins" sidecars' Security Context
461 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.privileged Set privileged in "sync-dags-plugins" sidecars' Security Context
462 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "sync-dags-plugins" sidecars' Security Context
463 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.capabilities.add List of capabilities to be added in "sync-dags-plugins" sidecars
464 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "sync-dags-plugins" sidecars
465 ## @param defaultSidecars.syncDAGsPlugins.containerSecurityContext.seccompProfile.type Set seccomp profile in "sync-dags-plugins" sidecars
467 containerSecurityContext:
473 readOnlyRootFilesystem: true
475 allowPrivilegeEscalation: false
480 type: "RuntimeDefault"
481 ## Airflow "sync-dags-plugins" sidecar resource requests and limits
482 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
483 ## @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).
485 resourcesPreset: "nano"
486 ## @param defaultSidecars.syncDAGsPlugins.resources Set Airflow "sync-dags-plugins" sidecar requests and limits for different resources like CPU or memory (essential for production workloads)
497## @param extraEnvVars Add extra environment variables for all the Airflow pods
500## @param extraEnvVarsCM ConfigMap with extra environment variables for all the Airflow pods
503## @param extraEnvVarsCMs List of ConfigMaps with extra environment variables for all the Airflow pods
506## @param extraEnvVarsSecret Secret with extra environment variables for all the Airflow pods
508extraEnvVarsSecret: ""
509## @param extraEnvVarsSecrets List of secrets with extra environment variables for all the Airflow pods
511extraEnvVarsSecrets: []
512## @param sidecars Add additional sidecar containers to all the Airflow pods
515## - name: your-image-name
517## imagePullPolicy: Always
520## containerPort: 1234
523## @param initContainers Add additional init containers to all the Airflow pods
526## - name: your-image-name
528## imagePullPolicy: Always
531## containerPort: 1234
534## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for all the Airflow pods
537## @param extraVolumes Optionally specify extra list of additional volumes for the all the Airflow pods
540## @section Airflow webserver parameters
543 ## @param web.baseUrl URL used to access to Airflow webserver
546 ## @param web.configuration Specify content for webserver_config.py (auto-generated based on other env. vars otherwise)
549 ## @param web.extraConfiguration Specify extra content to be appended to default webserver_config.py (ignored if `web.configuration` or `web.existingConfigmap` are set)
551 extraConfiguration: ""
552 ## @param web.existingConfigmap Name of an existing config map containing the Airflow webserver config file
554 existingConfigmap: ""
555 ## @param web.tls.enabled Enable TLS configuration for Airflow webserver
556 ## @param web.tls.autoGenerated.enabled Enable automatic generation of TLS certificates
557 ## @param web.tls.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
558 ## @param web.tls.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
559 ## @param web.tls.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
560 ## @param web.tls.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
561 ## @param web.tls.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
562 ## @param web.tls.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
563 ## @param web.tls.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
564 ## @param web.tls.ca CA certificate for TLS. Ignored if `tls.existingSecret` is set
565 ## @param web.tls.cert TLS certificate for Airflow webserver. Ignored if `tls.master.existingSecret` is set
566 ## @param web.tls.key TLS key for Airflow webserver. Ignored if `tls.master.existingSecret` is set
567 ## @param web.tls.existingSecret The name of an existing Secret containing the Airflow webserver certificates for TLS
576 existingIssuerKind: ""
585 ## @param web.command Override default container command (useful when using custom images)
588 ## @param web.args Override default container args (useful when using custom images)
591 ## @param web.extraEnvVars Array with extra environment variables to add Airflow webserver pods
594 ## @param web.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow webserver pods
597 ## @param web.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow webserver pods
600 ## @param web.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow webserver pods
602 extraEnvVarsSecret: ""
603 ## @param web.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow webserver pods
605 extraEnvVarsSecrets: []
606 ## @param web.containerPorts.http Airflow webserver HTTP container port
610 ## @param web.replicaCount Number of Airflow webserver replicas
613 ## Configure extra options for Airflow webserver containers' liveness, readiness and startup probes
614 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
615 ## @param web.livenessProbe.enabled Enable livenessProbe on Airflow webserver containers
616 ## @param web.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
617 ## @param web.livenessProbe.periodSeconds Period seconds for livenessProbe
618 ## @param web.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
619 ## @param web.livenessProbe.failureThreshold Failure threshold for livenessProbe
620 ## @param web.livenessProbe.successThreshold Success threshold for livenessProbe
624 initialDelaySeconds: 180
629 ## @param web.readinessProbe.enabled Enable readinessProbe on Airflow webserver containers
630 ## @param web.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
631 ## @param web.readinessProbe.periodSeconds Period seconds for readinessProbe
632 ## @param web.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
633 ## @param web.readinessProbe.failureThreshold Failure threshold for readinessProbe
634 ## @param web.readinessProbe.successThreshold Success threshold for readinessProbe
638 initialDelaySeconds: 30
643 ## @param web.startupProbe.enabled Enable startupProbe on Airflow webserver containers
644 ## @param web.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
645 ## @param web.startupProbe.periodSeconds Period seconds for startupProbe
646 ## @param web.startupProbe.timeoutSeconds Timeout seconds for startupProbe
647 ## @param web.startupProbe.failureThreshold Failure threshold for startupProbe
648 ## @param web.startupProbe.successThreshold Success threshold for startupProbe
652 initialDelaySeconds: 60
657 ## @param web.customLivenessProbe Custom livenessProbe that overrides the default one
659 customLivenessProbe: {}
660 ## @param web.customReadinessProbe Custom readinessProbe that overrides the default one
662 customReadinessProbe: {}
663 ## @param web.customStartupProbe Custom startupProbe that overrides the default one
665 customStartupProbe: {}
666 ## Airflow webserver resource requests and limits
667 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
668 ## @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).
670 resourcesPreset: "medium"
671 ## @param web.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
682 ## Configure Airflow webserver pods Security Context
683 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
684 ## @param web.podSecurityContext.enabled Enabled Airflow webserver pods' Security Context
685 ## @param web.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
686 ## @param web.podSecurityContext.sysctls Set kernel settings using the sysctl interface
687 ## @param web.podSecurityContext.supplementalGroups Set filesystem extra groups
688 ## @param web.podSecurityContext.fsGroup Set Airflow webserver pod's Security Context fsGroup
692 fsGroupChangePolicy: Always
694 supplementalGroups: []
696 ## Configure Airflow webserver containers (only main one) Security Context
697 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
698 ## @param web.containerSecurityContext.enabled Enabled Airflow webserver containers' Security Context
699 ## @param web.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
700 ## @param web.containerSecurityContext.runAsUser Set Airflow webserver containers' Security Context runAsUser
701 ## @param web.containerSecurityContext.runAsGroup Set Airflow webserver containers' Security Context runAsGroup
702 ## @param web.containerSecurityContext.runAsNonRoot Set Airflow webserver containers' Security Context runAsNonRoot
703 ## @param web.containerSecurityContext.privileged Set web container's Security Context privileged
704 ## @param web.containerSecurityContext.allowPrivilegeEscalation Set web container's Security Context allowPrivilegeEscalation
705 ## @param web.containerSecurityContext.readOnlyRootFilesystem Set web container's Security Context readOnlyRootFilesystem
706 ## @param web.containerSecurityContext.capabilities.drop List of capabilities to be dropped
707 ## @param web.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
709 containerSecurityContext:
716 allowPrivilegeEscalation: false
717 readOnlyRootFilesystem: true
721 type: "RuntimeDefault"
722 ## @param web.lifecycleHooks for the Airflow webserver container(s) to automate configuration before or after startup
725 ## @param web.automountServiceAccountToken Mount Service Account token in pod
727 automountServiceAccountToken: false
728 ## @param web.hostAliases Deployment pod host aliases
729 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
732 ## @param web.podLabels Add extra labels to the Airflow webserver pods
735 ## @param web.podAnnotations Add extra annotations to the Airflow webserver pods
738 ## @param web.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
739 ## i.e. topologyKey: topology.kubernetes.io/zone
742 ## @param web.affinity Affinity for Airflow webserver pods assignment (evaluated as a template)
743 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
744 ## Note: `web.podAffinityPreset`, `web.podAntiAffinityPreset`, and `web.nodeAffinityPreset` will be ignored when it's set
747 ## Node affinity preset
748 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
749 ## @param web.nodeAffinityPreset.key Node label key to match. Ignored if `web.affinity` is set.
750 ## @param web.nodeAffinityPreset.type Node affinity preset type. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`
751 ## @param web.nodeAffinityPreset.values Node label values to match. Ignored if `web.affinity` is set.
755 ## key: "kubernetes.io/e2e-az-name"
765 ## @param web.nodeSelector Node labels for Airflow webserver pods assignment
766 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
769 ## @param web.podAffinityPreset Pod affinity preset. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`.
770 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
772 podAffinityPreset: ""
773 ## @param web.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `web.affinity` is set. Allowed values: `soft` or `hard`.
774 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
776 podAntiAffinityPreset: soft
777 ## @param web.tolerations Tolerations for Airflow webserver pods assignment
778 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
781 ## @param web.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
782 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
784 topologySpreadConstraints: []
785 ## @param web.priorityClassName Priority Class Name
786 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
788 priorityClassName: ""
789 ## @param web.schedulerName Use an alternate scheduler, e.g. "stork".
790 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
793 ## @param web.terminationGracePeriodSeconds Seconds Airflow webserver pod needs to terminate gracefully
794 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
796 terminationGracePeriodSeconds: ""
797 ## @param web.updateStrategy.type Airflow webserver deployment strategy type
798 ## @param web.updateStrategy.rollingUpdate Airflow webserver deployment rolling update configuration parameters
799 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
804 ## @param web.sidecars Add additional sidecar containers to the Airflow webserver pods
807 ## - name: your-image-name
809 ## imagePullPolicy: Always
812 ## containerPort: 1234
815 ## @param web.initContainers Add additional init containers to the Airflow webserver pods
818 ## - name: your-image-name
820 ## imagePullPolicy: Always
823 ## containerPort: 1234
826 ## Specify temporary volume parameters for the Airflow webserver pods
827 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
828 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
831 ## @param web.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
832 ## Possible values: "Memory", ""
836 ## @param web.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
839 ## @param web.ephemeral.storageClass Storage class of backing PVC
840 ## If defined, storageClassName: <storageClass>
841 ## If set to "-", storageClassName: "", which disables dynamic provisioning
842 ## If undefined (the default) or set to null, no storageClassName spec is
843 ## set, choosing the default provisioner. (gp2 on AWS, standard on
844 ## GKE, AWS & OpenStack)
847 ## @param web.ephemeral.annotations Additional annotations for backing PVC
850 ## @param web.ephemeral.accessModes Persistent Volume Access Modes
854 ## @param web.ephemeral.size Size of the generic ephemeral volume
857 ## @param web.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow webserver pods
859 extraVolumeMounts: []
860 ## @param web.extraVolumes Optionally specify extra list of additional volumes for the Airflow webserver pods
863 ## Airflow webserver Pod Disruption Budget
864 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
865 ## @param web.pdb.create Deploy a pdb object for the Airflow webserver pods
866 ## @param web.pdb.minAvailable Maximum number/percentage of unavailable Airflow webserver replicas
867 ## @param web.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow webserver replicas
873 ## Autoscaling configuration
874 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
877 ## @param web.autoscaling.vpa.enabled Enable VPA for Airflow webserver
878 ## @param web.autoscaling.vpa.annotations Annotations for VPA resource
879 ## @param web.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
880 ## @param web.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
881 ## @param web.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
886 controlledResources: []
889 ## @param web.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
890 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
891 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
895 ## @param web.autoscaling.hpa.enabled Enable HPA for Airflow webserver
896 ## @param web.autoscaling.hpa.minReplicas Minimum number of replicas
897 ## @param web.autoscaling.hpa.maxReplicas Maximum number of replicas
898 ## @param web.autoscaling.hpa.targetCPU Target CPU utilization percentage
899 ## @param web.autoscaling.hpa.targetMemory Target Memory utilization percentage
907 ## Web Network Policies
908 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
911 ## @param web.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
914 ## @param web.networkPolicy.allowExternal Don't require client label for connections
915 ## The Policy model to apply. When set to false, only pods with the correct
916 ## client label will have network access to the ports Web is listening
917 ## on. When true, Web will accept connections from any source
918 ## (with the correct destination port).
921 ## @param web.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
923 allowExternalEgress: true
924 ## @param web.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
934 ## - matchExpressions:
940 ## @param web.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
950 ## - matchExpressions:
957 ## @param web.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
958 ## @param web.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
960 ingressNSMatchLabels: {}
961 ingressNSPodMatchLabels: {}
962## @section Airflow scheduler parameters
965 ## @param scheduler.replicaCount Number of scheduler replicas
968 ## @param scheduler.command Override cmd
971 ## @param scheduler.args Override args
974 ## @param scheduler.extraEnvVars Add extra environment variables
977 ## @param scheduler.extraEnvVarsCM ConfigMap with extra environment variables
980 ## @param scheduler.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow scheduler pods
983 ## @param scheduler.extraEnvVarsSecret Secret with extra environment variables
985 extraEnvVarsSecret: ""
986 ## @param scheduler.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow scheduler pods
988 extraEnvVarsSecrets: []
989 ## Configure extra options for Airflow scheduler containers' liveness, readiness and startup probes
990 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
991 ## @param scheduler.livenessProbe.enabled Enable livenessProbe on Airflow scheduler containers
992 ## @param scheduler.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
993 ## @param scheduler.livenessProbe.periodSeconds Period seconds for livenessProbe
994 ## @param scheduler.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
995 ## @param scheduler.livenessProbe.failureThreshold Failure threshold for livenessProbe
996 ## @param scheduler.livenessProbe.successThreshold Success threshold for livenessProbe
1000 initialDelaySeconds: 180
1005 ## @param scheduler.readinessProbe.enabled Enable readinessProbe on Airflow scheduler containers
1006 ## @param scheduler.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1007 ## @param scheduler.readinessProbe.periodSeconds Period seconds for readinessProbe
1008 ## @param scheduler.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1009 ## @param scheduler.readinessProbe.failureThreshold Failure threshold for readinessProbe
1010 ## @param scheduler.readinessProbe.successThreshold Success threshold for readinessProbe
1014 initialDelaySeconds: 30
1019 ## @param scheduler.startupProbe.enabled Enable startupProbe on Airflow scheduler containers
1020 ## @param scheduler.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1021 ## @param scheduler.startupProbe.periodSeconds Period seconds for startupProbe
1022 ## @param scheduler.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1023 ## @param scheduler.startupProbe.failureThreshold Failure threshold for startupProbe
1024 ## @param scheduler.startupProbe.successThreshold Success threshold for startupProbe
1028 initialDelaySeconds: 60
1031 failureThreshold: 15
1033 ## @param scheduler.customLivenessProbe Custom livenessProbe that overrides the default one
1035 customLivenessProbe: {}
1036 ## @param scheduler.customReadinessProbe Custom readinessProbe that overrides the default one
1038 customReadinessProbe: {}
1039 ## @param scheduler.customStartupProbe Custom startupProbe that overrides the default one
1041 customStartupProbe: {}
1042 ## Airflow scheduler resource requests and limits
1043 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1044 ## @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).
1046 resourcesPreset: "small"
1047 ## @param scheduler.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1058 ## Configure Airflow scheduler pods Security Context
1059 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1060 ## @param scheduler.podSecurityContext.enabled Enabled Airflow scheduler pods' Security Context
1061 ## @param scheduler.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1062 ## @param scheduler.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1063 ## @param scheduler.podSecurityContext.supplementalGroups Set filesystem extra groups
1064 ## @param scheduler.podSecurityContext.fsGroup Set Airflow scheduler pod's Security Context fsGroup
1068 fsGroupChangePolicy: Always
1070 supplementalGroups: []
1072 ## Configure Airflow scheduler containers (only main one) Security Context
1073 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1074 ## @param scheduler.containerSecurityContext.enabled Enabled Airflow scheduler containers' Security Context
1075 ## @param scheduler.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1076 ## @param scheduler.containerSecurityContext.runAsUser Set Airflow scheduler containers' Security Context runAsUser
1077 ## @param scheduler.containerSecurityContext.runAsGroup Set Airflow scheduler containers' Security Context runAsGroup
1078 ## @param scheduler.containerSecurityContext.runAsNonRoot Set Airflow scheduler containers' Security Context runAsNonRoot
1079 ## @param scheduler.containerSecurityContext.privileged Set scheduler container's Security Context privileged
1080 ## @param scheduler.containerSecurityContext.allowPrivilegeEscalation Set scheduler container's Security Context allowPrivilegeEscalation
1081 ## @param scheduler.containerSecurityContext.readOnlyRootFilesystem Set scheduler container's Security Context readOnlyRootFilesystem
1082 ## @param scheduler.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1083 ## @param scheduler.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1085 containerSecurityContext:
1092 allowPrivilegeEscalation: false
1093 readOnlyRootFilesystem: true
1097 type: "RuntimeDefault"
1098 ## @param scheduler.lifecycleHooks for the Airflow scheduler container(s) to automate configuration before or after startup
1101 ## @param scheduler.automountServiceAccountToken Mount Service Account token in pod
1103 automountServiceAccountToken: false
1104 ## @param scheduler.hostAliases Deployment pod host aliases
1105 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1108 ## @param scheduler.podLabels Add extra labels to the Airflow scheduler pods
1111 ## @param scheduler.podAnnotations Add extra annotations to the Airflow scheduler pods
1114 ## @param scheduler.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1115 ## i.e. topologyKey: topology.kubernetes.io/zone
1118 ## @param scheduler.affinity Affinity for Airflow scheduler pods assignment (evaluated as a template)
1119 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1120 ## Note: `scheduler.podAffinityPreset`, `scheduler.podAntiAffinityPreset`, and `scheduler.nodeAffinityPreset` will be ignored when it's set
1123 ## Node affinity preset
1124 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1125 ## @param scheduler.nodeAffinityPreset.key Node label key to match. Ignored if `scheduler.affinity` is set.
1126 ## @param scheduler.nodeAffinityPreset.type Node affinity preset type. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`
1127 ## @param scheduler.nodeAffinityPreset.values Node label values to match. Ignored if `scheduler.affinity` is set.
1131 ## key: "kubernetes.io/e2e-az-name"
1141 ## @param scheduler.nodeSelector Node labels for Airflow scheduler pods assignment
1142 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1145 ## @param scheduler.podAffinityPreset Pod affinity preset. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`.
1146 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1148 podAffinityPreset: ""
1149 ## @param scheduler.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `scheduler.affinity` is set. Allowed values: `soft` or `hard`.
1150 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1152 podAntiAffinityPreset: soft
1153 ## @param scheduler.tolerations Tolerations for Airflow scheduler pods assignment
1154 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1157 ## @param scheduler.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1158 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1160 topologySpreadConstraints: []
1161 ## @param scheduler.priorityClassName Priority Class Name
1162 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1164 priorityClassName: ""
1165 ## @param scheduler.schedulerName Use an alternate scheduler, e.g. "stork".
1166 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1169 ## @param scheduler.terminationGracePeriodSeconds Seconds Airflow scheduler pod needs to terminate gracefully
1170 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1172 terminationGracePeriodSeconds: ""
1173 ## @param scheduler.updateStrategy.type Airflow scheduler deployment strategy type
1174 ## @param scheduler.updateStrategy.rollingUpdate Airflow scheduler deployment rolling update configuration parameters
1175 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1180 ## @param scheduler.sidecars Add additional sidecar containers to the Airflow scheduler pods
1183 ## - name: your-image-name
1184 ## image: your-image
1185 ## imagePullPolicy: Always
1188 ## containerPort: 1234
1191 ## @param scheduler.initContainers Add additional init containers to the Airflow scheduler pods
1194 ## - name: your-image-name
1195 ## image: your-image
1196 ## imagePullPolicy: Always
1199 ## containerPort: 1234
1202 ## Specify temporary volume parameters for the Airflow scheduler pods
1203 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1204 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1207 ## @param scheduler.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1208 ## Possible values: "Memory", ""
1212 ## @param scheduler.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1215 ## @param scheduler.ephemeral.storageClass Storage class of backing PVC
1216 ## If defined, storageClassName: <storageClass>
1217 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1218 ## If undefined (the default) or set to null, no storageClassName spec is
1219 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1220 ## GKE, AWS & OpenStack)
1223 ## @param scheduler.ephemeral.annotations Additional annotations for backing PVC
1226 ## @param scheduler.ephemeral.accessModes Persistent Volume Access Modes
1230 ## @param scheduler.ephemeral.size Size of the generic ephemeral volume
1233 ## @param scheduler.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow scheduler pods
1235 extraVolumeMounts: []
1236 ## @param scheduler.extraVolumes Optionally specify extra list of additional volumes for the Airflow scheduler pods
1239 ## Airflow scheduler Pod Disruption Budget
1240 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1241 ## @param scheduler.pdb.create Deploy a pdb object for the Airflow scheduler pods
1242 ## @param scheduler.pdb.minAvailable Maximum number/percentage of unavailable Airflow scheduler replicas
1243 ## @param scheduler.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow scheduler replicas
1249 ## Autoscaling configuration
1250 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1253 ## @param scheduler.autoscaling.vpa.enabled Enable VPA for Airflow scheduler
1254 ## @param scheduler.autoscaling.vpa.annotations Annotations for VPA resource
1255 ## @param scheduler.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
1256 ## @param scheduler.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
1257 ## @param scheduler.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
1262 controlledResources: []
1265 ## @param scheduler.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
1266 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1267 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1271 ## @param scheduler.autoscaling.hpa.enabled Enable HPA for Airflow scheduler
1272 ## @param scheduler.autoscaling.hpa.minReplicas Minimum number of replicas
1273 ## @param scheduler.autoscaling.hpa.maxReplicas Maximum number of replicas
1274 ## @param scheduler.autoscaling.hpa.targetCPU Target CPU utilization percentage
1275 ## @param scheduler.autoscaling.hpa.targetMemory Target Memory utilization percentage
1283 ## Scheduler Network Policies
1284 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1287 ## @param scheduler.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1290 ## @param scheduler.networkPolicy.allowExternal Don't require client label for connections
1291 ## The Policy model to apply. When set to false, only pods with the correct
1292 ## client label will have network access to the ports Scheduler is listening
1293 ## on. When true, Scheduler will accept connections from any source
1294 ## (with the correct destination port).
1297 ## @param scheduler.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1299 allowExternalEgress: true
1300 ## @param scheduler.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1310 ## - matchExpressions:
1316 ## @param scheduler.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1326 ## - matchExpressions:
1333 ## @param scheduler.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1334 ## @param scheduler.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1336 ingressNSMatchLabels: {}
1337 ingressNSPodMatchLabels: {}
1338## @section Airflow Dag Processor parameters
1339## ref: https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/dagfile-processing.html
1342 ## @param dagProcessor.enabled Run Airflow Dag Processor Manager as a standalone component
1345 ## @param dagProcessor.replicaCount Number of Airflow Dag Processor replicas
1348 ## @param dagProcessor.command Override default Airflow Dag Processor cmd
1351 ## @param dagProcessor.args Override default Airflow Dag Processor args
1354 ## @param dagProcessor.extraEnvVars Add extra environment variables to Airflow Dag Processor containers
1357 ## @param dagProcessor.extraEnvVarsCM ConfigMap with extra environment variables
1360 ## @param dagProcessor.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow dagProcessor pods
1363 ## @param dagProcessor.extraEnvVarsSecret Secret with extra environment variables
1365 extraEnvVarsSecret: ""
1366 ## Configure extra options for Airflow Dag Processor containers' liveness, readiness and startup probes
1367 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1368 ## @param dagProcessor.livenessProbe.enabled Enable livenessProbe on Airflow Dag Processor containers
1369 ## @param dagProcessor.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1370 ## @param dagProcessor.livenessProbe.periodSeconds Period seconds for livenessProbe
1371 ## @param dagProcessor.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1372 ## @param dagProcessor.livenessProbe.failureThreshold Failure threshold for livenessProbe
1373 ## @param dagProcessor.livenessProbe.successThreshold Success threshold for livenessProbe
1377 initialDelaySeconds: 180
1382 ## @param dagProcessor.readinessProbe.enabled Enable readinessProbe on Airflow Dag Processor containers
1383 ## @param dagProcessor.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1384 ## @param dagProcessor.readinessProbe.periodSeconds Period seconds for readinessProbe
1385 ## @param dagProcessor.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1386 ## @param dagProcessor.readinessProbe.failureThreshold Failure threshold for readinessProbe
1387 ## @param dagProcessor.readinessProbe.successThreshold Success threshold for readinessProbe
1391 initialDelaySeconds: 30
1396 ## @param dagProcessor.startupProbe.enabled Enable startupProbe on Airflow Dag Processor containers
1397 ## @param dagProcessor.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1398 ## @param dagProcessor.startupProbe.periodSeconds Period seconds for startupProbe
1399 ## @param dagProcessor.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1400 ## @param dagProcessor.startupProbe.failureThreshold Failure threshold for startupProbe
1401 ## @param dagProcessor.startupProbe.successThreshold Success threshold for startupProbe
1405 initialDelaySeconds: 60
1408 failureThreshold: 15
1410 ## @param dagProcessor.customLivenessProbe Custom livenessProbe that overrides the default one
1412 customLivenessProbe: {}
1413 ## @param dagProcessor.customReadinessProbe Custom readinessProbe that overrides the default one
1415 customReadinessProbe: {}
1416 ## @param dagProcessor.customStartupProbe Custom startupProbe that overrides the default one
1418 customStartupProbe: {}
1419 ## Airflow Dag Processor resource requests and limits
1420 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1421 ## @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).
1423 resourcesPreset: "small"
1424 ## @param dagProcessor.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1435 ## Configure Airflow Dag Processor pods Security Context
1436 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1437 ## @param dagProcessor.podSecurityContext.enabled Enabled Airflow Dag Processor pods' Security Context
1438 ## @param dagProcessor.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1439 ## @param dagProcessor.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1440 ## @param dagProcessor.podSecurityContext.supplementalGroups Set filesystem extra groups
1441 ## @param dagProcessor.podSecurityContext.fsGroup Set Airflow Dag Processor pod's Security Context fsGroup
1445 fsGroupChangePolicy: Always
1447 supplementalGroups: []
1449 ## Configure Airflow Dag Processor containers (only main one) Security Context
1450 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1451 ## @param dagProcessor.containerSecurityContext.enabled Enabled Airflow Dag Processor containers' Security Context
1452 ## @param dagProcessor.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1453 ## @param dagProcessor.containerSecurityContext.runAsUser Set Airflow Dag Processor containers' Security Context runAsUser
1454 ## @param dagProcessor.containerSecurityContext.runAsGroup Set Airflow Dag Processor containers' Security Context runAsGroup
1455 ## @param dagProcessor.containerSecurityContext.runAsNonRoot Set Airflow Dag Processor containers' Security Context runAsNonRoot
1456 ## @param dagProcessor.containerSecurityContext.privileged Set Airflow Dag Processor container's Security Context privileged
1457 ## @param dagProcessor.containerSecurityContext.allowPrivilegeEscalation Set Airflow Dag Processor container's Security Context allowPrivilegeEscalation
1458 ## @param dagProcessor.containerSecurityContext.readOnlyRootFilesystem Set Airflow Dag Processor container's Security Context readOnlyRootFilesystem
1459 ## @param dagProcessor.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1460 ## @param dagProcessor.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1462 containerSecurityContext:
1469 allowPrivilegeEscalation: false
1470 readOnlyRootFilesystem: true
1474 type: "RuntimeDefault"
1475 ## @param dagProcessor.lifecycleHooks for the Airflow Dag Processor containers to automate configuration before or after startup
1478 ## @param dagProcessor.automountServiceAccountToken Mount Service Account token in pod
1480 automountServiceAccountToken: false
1481 ## @param dagProcessor.hostAliases Deployment pod host aliases
1482 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1485 ## @param dagProcessor.podLabels Add extra labels to the Airflow Dag Processor pods
1488 ## @param dagProcessor.podAnnotations Add extra annotations to the Airflow Dag Processor pods
1491 ## @param dagProcessor.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1492 ## i.e. topologyKey: topology.kubernetes.io/zone
1495 ## @param dagProcessor.affinity Affinity for Airflow Dag Processor pods assignment (evaluated as a template)
1496 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1497 ## Note: `dagProcessor.podAffinityPreset`, `dagProcessor.podAntiAffinityPreset`, and `dagProcessor.nodeAffinityPreset` will be ignored when it's set
1500 ## Node affinity preset
1501 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1502 ## @param dagProcessor.nodeAffinityPreset.key Node label key to match. Ignored if `dagProcessor.affinity` is set.
1503 ## @param dagProcessor.nodeAffinityPreset.type Node affinity preset type. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`
1504 ## @param dagProcessor.nodeAffinityPreset.values Node label values to match. Ignored if `dagProcessor.affinity` is set.
1508 ## key: "kubernetes.io/e2e-az-name"
1518 ## @param dagProcessor.nodeSelector Node labels for Airflow Dag Processor pods assignment
1519 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1522 ## @param dagProcessor.podAffinityPreset Pod affinity preset. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`.
1523 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1525 podAffinityPreset: ""
1526 ## @param dagProcessor.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `dagProcessor.affinity` is set. Allowed values: `soft` or `hard`.
1527 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1529 podAntiAffinityPreset: soft
1530 ## @param dagProcessor.tolerations Tolerations for Airflow Dag Processor pods assignment
1531 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1534 ## @param dagProcessor.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1535 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1537 topologySpreadConstraints: []
1538 ## @param dagProcessor.priorityClassName Priority Class Name
1539 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1541 priorityClassName: ""
1542 ## @param dagProcessor.schedulerName Use an alternate K8s scheduler, e.g. "stork".
1543 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1546 ## @param dagProcessor.terminationGracePeriodSeconds Seconds Airflow Dag Processor pod needs to terminate gracefully
1547 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1549 terminationGracePeriodSeconds: ""
1550 ## @param dagProcessor.updateStrategy.type Airflow Dag Processor deployment strategy type
1551 ## @param dagProcessor.updateStrategy.rollingUpdate Airflow Dag Processor deployment rolling update configuration parameters
1552 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1557 ## @param dagProcessor.sidecars Add additional sidecar containers to the Airflow Dag Processor pods
1560 ## - name: your-image-name
1561 ## image: your-image
1562 ## imagePullPolicy: Always
1565 ## containerPort: 1234
1568 ## @param dagProcessor.initContainers Add additional init containers to the Airflow Dag Processor pods
1571 ## - name: your-image-name
1572 ## image: your-image
1573 ## imagePullPolicy: Always
1576 ## containerPort: 1234
1579 ## Specify temporary volume parameters for the Airflow Dag Processor pods
1580 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1581 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1584 ## @param dagProcessor.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1585 ## Possible values: "Memory", ""
1589 ## @param dagProcessor.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1592 ## @param dagProcessor.ephemeral.storageClass Storage class of backing PVC
1593 ## If defined, storageClassName: <storageClass>
1594 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1595 ## If undefined (the default) or set to null, no storageClassName spec is
1596 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1597 ## GKE, AWS & OpenStack)
1600 ## @param dagProcessor.ephemeral.annotations Additional annotations for backing PVC
1603 ## @param dagProcessor.ephemeral.accessModes Persistent Volume Access Modes
1607 ## @param dagProcessor.ephemeral.size Size of the generic ephemeral volume
1610 ## @param dagProcessor.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Dag Processor containers
1612 extraVolumeMounts: []
1613 ## @param dagProcessor.extraVolumes Optionally specify extra list of additional volumes for the Airflow Dag Processor pods
1616 ## Airflow Dag Processor Pod Disruption Budget
1617 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1618 ## @param dagProcessor.pdb.create Deploy a pdb object for the Airflow Dag Processor pods
1619 ## @param dagProcessor.pdb.minAvailable Maximum number/percentage of unavailable Airflow Dag Processor replicas
1620 ## @param dagProcessor.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow Dag Processor replicas
1626 ## Autoscaling configuration
1627 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1630 ## @param dagProcessor.autoscaling.vpa.enabled Enable VPA for Airflow Dag Processor
1631 ## @param dagProcessor.autoscaling.vpa.annotations Annotations for VPA resource
1632 ## @param dagProcessor.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
1633 ## @param dagProcessor.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
1634 ## @param dagProcessor.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
1639 controlledResources: []
1642 ## @param dagProcessor.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
1643 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1644 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1648 ## @param dagProcessor.autoscaling.hpa.enabled Enable HPA for Airflow Dag Processor
1649 ## @param dagProcessor.autoscaling.hpa.minReplicas Minimum number of replicas
1650 ## @param dagProcessor.autoscaling.hpa.maxReplicas Maximum number of replicas
1651 ## @param dagProcessor.autoscaling.hpa.targetCPU Target CPU utilization percentage
1652 ## @param dagProcessor.autoscaling.hpa.targetMemory Target Memory utilization percentage
1660 ## Airflow Dag Processor Network Policies
1661 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1664 ## @param dagProcessor.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1667 ## @param dagProcessor.networkPolicy.allowExternal Don't require client label for connections
1668 ## The Policy model to apply. When set to false, only pods with the correct
1669 ## client label will have network access to the ports Airflow Dag Processor is listening
1670 ## on. When true, Airflow Dag Processor will accept connections from any source
1671 ## (with the correct destination port).
1674 ## @param dagProcessor.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1676 allowExternalEgress: true
1677 ## @param dagProcessor.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1687 ## - matchExpressions:
1693 ## @param dagProcessor.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1703 ## - matchExpressions:
1710 ## @param dagProcessor.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1711 ## @param dagProcessor.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1713 ingressNSMatchLabels: {}
1714 ingressNSPodMatchLabels: {}
1715## @section Airflow Triggerer parameters
1716## ref: https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/deferring.html#deferrable-operators-triggers
1719 ## @param triggerer.enabled Run Airflow Triggerer as a standalone component
1722 ## @param triggerer.defaultCapacity How many triggers a single Triggerer can run at once
1724 defaultCapacity: 1000
1725 ## @param triggerer.replicaCount Number of Airflow Triggerer replicas
1728 ## @param triggerer.command Override default Airflow Triggerer cmd
1731 ## @param triggerer.args Override default Airflow Triggerer args
1734 ## @param triggerer.extraEnvVars Add extra environment variables to Airflow Triggerer containers
1737 ## @param triggerer.extraEnvVarsCM ConfigMap with extra environment variables
1740 ## @param triggerer.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow triggerer pods
1743 ## @param triggerer.extraEnvVarsSecret Secret with extra environment variables
1745 extraEnvVarsSecret: ""
1746 ## @param triggerer.containerPorts.logs Airflow Triggerer logs container port
1750 ## Configure extra options for Airflow Triggerer containers' liveness, readiness and startup probes
1751 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1752 ## @param triggerer.livenessProbe.enabled Enable livenessProbe on Airflow Triggerer containers
1753 ## @param triggerer.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1754 ## @param triggerer.livenessProbe.periodSeconds Period seconds for livenessProbe
1755 ## @param triggerer.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1756 ## @param triggerer.livenessProbe.failureThreshold Failure threshold for livenessProbe
1757 ## @param triggerer.livenessProbe.successThreshold Success threshold for livenessProbe
1761 initialDelaySeconds: 180
1766 ## @param triggerer.readinessProbe.enabled Enable readinessProbe on Airflow Triggerer containers
1767 ## @param triggerer.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1768 ## @param triggerer.readinessProbe.periodSeconds Period seconds for readinessProbe
1769 ## @param triggerer.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1770 ## @param triggerer.readinessProbe.failureThreshold Failure threshold for readinessProbe
1771 ## @param triggerer.readinessProbe.successThreshold Success threshold for readinessProbe
1775 initialDelaySeconds: 30
1780 ## @param triggerer.startupProbe.enabled Enable startupProbe on Airflow Triggerer containers
1781 ## @param triggerer.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1782 ## @param triggerer.startupProbe.periodSeconds Period seconds for startupProbe
1783 ## @param triggerer.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1784 ## @param triggerer.startupProbe.failureThreshold Failure threshold for startupProbe
1785 ## @param triggerer.startupProbe.successThreshold Success threshold for startupProbe
1789 initialDelaySeconds: 60
1792 failureThreshold: 15
1794 ## @param triggerer.customLivenessProbe Custom livenessProbe that overrides the default one
1796 customLivenessProbe: {}
1797 ## @param triggerer.customReadinessProbe Custom readinessProbe that overrides the default one
1799 customReadinessProbe: {}
1800 ## @param triggerer.customStartupProbe Custom startupProbe that overrides the default one
1802 customStartupProbe: {}
1803 ## Airflow Triggerer resource requests and limits
1804 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1805 ## @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).
1807 resourcesPreset: "small"
1808 ## @param triggerer.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1819 ## Configure Airflow Triggerer pods Security Context
1820 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1821 ## @param triggerer.podSecurityContext.enabled Enabled Airflow Triggerer pods' Security Context
1822 ## @param triggerer.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1823 ## @param triggerer.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1824 ## @param triggerer.podSecurityContext.supplementalGroups Set filesystem extra groups
1825 ## @param triggerer.podSecurityContext.fsGroup Set Airflow Triggerer pod's Security Context fsGroup
1829 fsGroupChangePolicy: Always
1831 supplementalGroups: []
1833 ## Configure Airflow Triggerer containers (only main one) Security Context
1834 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1835 ## @param triggerer.containerSecurityContext.enabled Enabled Airflow Triggerer containers' Security Context
1836 ## @param triggerer.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1837 ## @param triggerer.containerSecurityContext.runAsUser Set Airflow Triggerer containers' Security Context runAsUser
1838 ## @param triggerer.containerSecurityContext.runAsGroup Set Airflow Triggerer containers' Security Context runAsGroup
1839 ## @param triggerer.containerSecurityContext.runAsNonRoot Set Airflow Triggerer containers' Security Context runAsNonRoot
1840 ## @param triggerer.containerSecurityContext.privileged Set Airflow Triggerer container's Security Context privileged
1841 ## @param triggerer.containerSecurityContext.allowPrivilegeEscalation Set Airflow Triggerer container's Security Context allowPrivilegeEscalation
1842 ## @param triggerer.containerSecurityContext.readOnlyRootFilesystem Set Airflow Triggerer container's Security Context readOnlyRootFilesystem
1843 ## @param triggerer.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1844 ## @param triggerer.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1846 containerSecurityContext:
1853 allowPrivilegeEscalation: false
1854 readOnlyRootFilesystem: true
1858 type: "RuntimeDefault"
1859 ## @param triggerer.lifecycleHooks for the Airflow Triggerer containers to automate configuration before or after startup
1862 ## @param triggerer.automountServiceAccountToken Mount Service Account token in pod
1864 automountServiceAccountToken: false
1865 ## @param triggerer.hostAliases Deployment pod host aliases
1866 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1869 ## @param triggerer.podLabels Add extra labels to the Airflow Triggerer pods
1872 ## @param triggerer.podAnnotations Add extra annotations to the Airflow Triggerer pods
1875 ## @param triggerer.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
1876 ## i.e. topologyKey: topology.kubernetes.io/zone
1879 ## @param triggerer.affinity Affinity for Airflow Triggerer pods assignment (evaluated as a template)
1880 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1881 ## Note: `triggerer.podAffinityPreset`, `triggerer.podAntiAffinityPreset`, and `triggerer.nodeAffinityPreset` will be ignored when it's set
1884 ## Node affinity preset
1885 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1886 ## @param triggerer.nodeAffinityPreset.key Node label key to match. Ignored if `triggerer.affinity` is set.
1887 ## @param triggerer.nodeAffinityPreset.type Node affinity preset type. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`
1888 ## @param triggerer.nodeAffinityPreset.values Node label values to match. Ignored if `triggerer.affinity` is set.
1892 ## key: "kubernetes.io/e2e-az-name"
1902 ## @param triggerer.nodeSelector Node labels for Airflow Triggerer pods assignment
1903 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1906 ## @param triggerer.podAffinityPreset Pod affinity preset. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`.
1907 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1909 podAffinityPreset: ""
1910 ## @param triggerer.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `triggerer.affinity` is set. Allowed values: `soft` or `hard`.
1911 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1913 podAntiAffinityPreset: soft
1914 ## @param triggerer.tolerations Tolerations for Airflow Triggerer pods assignment
1915 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1918 ## @param triggerer.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1919 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1921 topologySpreadConstraints: []
1922 ## @param triggerer.priorityClassName Priority Class Name
1923 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1925 priorityClassName: ""
1926 ## @param triggerer.schedulerName Use an alternate K8s scheduler, e.g. "stork".
1927 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1930 ## @param triggerer.terminationGracePeriodSeconds Seconds Airflow Triggerer pod needs to terminate gracefully
1931 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1933 terminationGracePeriodSeconds: ""
1934 ## @param triggerer.podManagementPolicy Pod management policy for the Airflow Triggerer statefulset
1935 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1937 podManagementPolicy: OrderedReady
1938 ## @param triggerer.updateStrategy.type Airflow Triggerer statefulset strategy type
1939 ## @param triggerer.updateStrategy.rollingUpdate Airflow Triggerer statefulset rolling update configuration parameters
1940 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1945 ## @param triggerer.sidecars Add additional sidecar containers to the Airflow Triggerer pods
1948 ## - name: your-image-name
1949 ## image: your-image
1950 ## imagePullPolicy: Always
1953 ## containerPort: 1234
1956 ## @param triggerer.initContainers Add additional init containers to the Airflow Triggerer pods
1959 ## - name: your-image-name
1960 ## image: your-image
1961 ## imagePullPolicy: Always
1964 ## containerPort: 1234
1967 ## Specify temporary volume parameters for the Airflow Triggerer pods
1968 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
1969 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
1972 ## @param triggerer.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1973 ## Possible values: "Memory", ""
1977 ## @param triggerer.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1980 ## @param triggerer.ephemeral.storageClass Storage class of backing PVC
1981 ## If defined, storageClassName: <storageClass>
1982 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1983 ## If undefined (the default) or set to null, no storageClassName spec is
1984 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1985 ## GKE, AWS & OpenStack)
1988 ## @param triggerer.ephemeral.annotations Additional annotations for backing PVC
1991 ## @param triggerer.ephemeral.accessModes Persistent Volume Access Modes
1995 ## @param triggerer.ephemeral.size Size of the generic ephemeral volume
1998 ## @param triggerer.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Triggerer containers
2000 extraVolumeMounts: []
2001 ## @param triggerer.extraVolumes Optionally specify extra list of additional volumes for the Airflow Triggerer pods
2004 ## Airflow Triggerer Pod Disruption Budget
2005 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
2006 ## @param triggerer.pdb.create Deploy a pdb object for the Airflow Triggerer pods
2007 ## @param triggerer.pdb.minAvailable Maximum number/percentage of unavailable Airflow Triggerer replicas
2008 ## @param triggerer.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow Triggerer replicas
2014 ## Autoscaling configuration
2015 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2018 ## @param triggerer.autoscaling.vpa.enabled Enable VPA for Airflow Triggerer
2019 ## @param triggerer.autoscaling.vpa.annotations Annotations for VPA resource
2020 ## @param triggerer.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
2021 ## @param triggerer.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
2022 ## @param triggerer.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
2027 controlledResources: []
2030 ## @param triggerer.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
2031 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
2032 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
2036 ## @param triggerer.autoscaling.hpa.enabled Enable HPA
2037 ## @param triggerer.autoscaling.hpa.minReplicas Minimum number of replicas
2038 ## @param triggerer.autoscaling.hpa.maxReplicas Maximum number of replicas
2039 ## @param triggerer.autoscaling.hpa.targetCPU Target CPU utilization percentage
2040 ## @param triggerer.autoscaling.hpa.targetMemory Target Memory utilization percentage
2048 ## Airflow Triggerer Persistence Parameters
2049 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes
2052 ## @param triggerer.persistence.enabled Enable logs persistence using Persistent Volume Claims
2055 ## @param triggerer.persistence.storageClass Storage class of backing PVC
2056 ## If defined, storageClassName: <storageClass>
2057 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2058 ## If undefined (the default) or set to null, no storageClassName spec is
2059 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2060 ## GKE, AWS & OpenStack)
2063 ## @param triggerer.persistence.annotations Additional Persistent Volume Claim annotations
2066 ## @param triggerer.persistence.accessModes Persistent Volume Access Modes
2070 ## @param triggerer.persistence.size Size of logs volume
2073 ## @param triggerer.persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
2074 ## If set, the PVC can't have a PV dynamically provisioned for it
2081 ## @param triggerer.persistence.dataSource Custom PVC data source
2084 ## @param triggerer.persistence.existingClaim The name of an existing PVC to use for persistence (only if triggerer.replicaCount=1)
2087 ## persistentVolumeClaimRetentionPolicy
2088 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
2089 ## @param triggerer.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
2090 ## @param triggerer.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
2091 ## @param triggerer.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
2093 persistentVolumeClaimRetentionPolicy:
2097 ## Airflow Triggerer Service
2100 ## @param triggerer.service.type Airflow Triggerer service type
2103 ## @param triggerer.service.ports.logs Airflow Triggerer service logs port
2107 ## Node ports to expose
2108 ## @param triggerer.service.nodePorts.logs Node port for Airflow Triggerer service logs
2109 ## NOTE: choose port between <30000-32767>
2113 ## @param triggerer.service.clusterIP Airflow Triggerer service Cluster IP
2118 ## @param triggerer.service.loadBalancerIP Airflow Triggerer service Load Balancer IP
2119 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2122 ## @param triggerer.service.loadBalancerSourceRanges Airflow Triggerer service Load Balancer sources
2123 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2125 ## loadBalancerSourceRanges:
2128 loadBalancerSourceRanges: []
2129 ## @param triggerer.service.externalTrafficPolicy Airflow Triggerer service external traffic policy
2130 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2132 externalTrafficPolicy: Cluster
2133 ## @param triggerer.service.annotations Additional custom annotations for Airflow Triggerer service
2136 ## @param triggerer.service.extraPorts Extra ports to expose in Airflow Triggerer service (normally used with the `triggerer.sidecars` value)
2139 ## @param triggerer.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2140 ## Values: ClientIP or None
2141 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2143 sessionAffinity: None
2144 ## @param triggerer.service.sessionAffinityConfig Additional settings for the sessionAffinity
2145 ## sessionAffinityConfig:
2147 ## timeoutSeconds: 300
2149 sessionAffinityConfig: {}
2150 ## Airflow Triggerer Network Policies
2151 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2154 ## @param triggerer.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2157 ## @param triggerer.networkPolicy.allowExternal Don't require client label for connections
2158 ## The Policy model to apply. When set to false, only pods with the correct
2159 ## client label will have network access to the ports Airflow Triggerer is listening
2160 ## on. When true, Airflow Triggerer will accept connections from any source
2161 ## (with the correct destination port).
2164 ## @param triggerer.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2166 allowExternalEgress: true
2167 ## @param triggerer.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2177 ## - matchExpressions:
2183 ## @param triggerer.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2193 ## - matchExpressions:
2200 ## @param triggerer.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2201 ## @param triggerer.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2203 ingressNSMatchLabels: {}
2204 ingressNSPodMatchLabels: {}
2205## @section Airflow worker parameters
2208 ## @param worker.command Override default container command (useful when using custom images)
2211 ## @param worker.args Override default container args (useful when using custom images)
2214 ## @param worker.extraEnvVars Array with extra environment variables to add Airflow worker pods
2217 ## @param worker.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow worker pods
2220 ## @param worker.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow worker pods
2223 ## @param worker.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow worker pods
2225 extraEnvVarsSecret: ""
2226 ## @param worker.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow worker pods
2228 extraEnvVarsSecrets: []
2229 ## @param worker.containerPorts.http Airflow worker HTTP container port
2233 ## @param worker.replicaCount Number of Airflow worker replicas
2236 ## Configure extra options for Airflow worker containers' liveness, readiness and startup probes
2237 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
2238 ## @param worker.livenessProbe.enabled Enable livenessProbe on Airflow worker containers
2239 ## @param worker.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2240 ## @param worker.livenessProbe.periodSeconds Period seconds for livenessProbe
2241 ## @param worker.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2242 ## @param worker.livenessProbe.failureThreshold Failure threshold for livenessProbe
2243 ## @param worker.livenessProbe.successThreshold Success threshold for livenessProbe
2247 initialDelaySeconds: 180
2252 ## @param worker.readinessProbe.enabled Enable readinessProbe on Airflow worker containers
2253 ## @param worker.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2254 ## @param worker.readinessProbe.periodSeconds Period seconds for readinessProbe
2255 ## @param worker.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2256 ## @param worker.readinessProbe.failureThreshold Failure threshold for readinessProbe
2257 ## @param worker.readinessProbe.successThreshold Success threshold for readinessProbe
2261 initialDelaySeconds: 30
2266 ## @param worker.startupProbe.enabled Enable startupProbe on Airflow worker containers
2267 ## @param worker.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2268 ## @param worker.startupProbe.periodSeconds Period seconds for startupProbe
2269 ## @param worker.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2270 ## @param worker.startupProbe.failureThreshold Failure threshold for startupProbe
2271 ## @param worker.startupProbe.successThreshold Success threshold for startupProbe
2275 initialDelaySeconds: 60
2278 failureThreshold: 15
2280 ## @param worker.customLivenessProbe Custom livenessProbe that overrides the default one
2282 customLivenessProbe: {}
2283 ## @param worker.customReadinessProbe Custom readinessProbe that overrides the default one
2285 customReadinessProbe: {}
2286 ## @param worker.customStartupProbe Custom startupProbe that overrides the default one
2288 customStartupProbe: {}
2289 ## Airflow worker resource requests and limits
2290 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2291 ## @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).
2293 resourcesPreset: "large"
2294 ## @param worker.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2305 ## Configure Airflow worker pods Security Context
2306 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2307 ## @param worker.podSecurityContext.enabled Enabled Airflow worker pods' Security Context
2308 ## @param worker.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2309 ## @param worker.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2310 ## @param worker.podSecurityContext.supplementalGroups Set filesystem extra groups
2311 ## @param worker.podSecurityContext.fsGroup Set Airflow worker pod's Security Context fsGroup
2315 fsGroupChangePolicy: Always
2317 supplementalGroups: []
2319 ## Configure Airflow worker containers (only main one) Security Context
2320 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2321 ## @param worker.containerSecurityContext.enabled Enabled Airflow worker containers' Security Context
2322 ## @param worker.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2323 ## @param worker.containerSecurityContext.runAsUser Set Airflow worker containers' Security Context runAsUser
2324 ## @param worker.containerSecurityContext.runAsGroup Set Airflow worker containers' Security Context runAsGroup
2325 ## @param worker.containerSecurityContext.runAsNonRoot Set Airflow worker containers' Security Context runAsNonRoot
2326 ## @param worker.containerSecurityContext.privileged Set worker container's Security Context privileged
2327 ## @param worker.containerSecurityContext.allowPrivilegeEscalation Set worker container's Security Context allowPrivilegeEscalation
2328 ## @param worker.containerSecurityContext.readOnlyRootFilesystem Set worker container's Security Context readOnlyRootFilesystem
2329 ## @param worker.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2330 ## @param worker.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2332 containerSecurityContext:
2339 allowPrivilegeEscalation: false
2340 readOnlyRootFilesystem: true
2344 type: "RuntimeDefault"
2345 ## @param worker.lifecycleHooks for the Airflow worker container(s) to automate configuration before or after startup
2348 ## @param worker.automountServiceAccountToken Mount Service Account token in pod
2350 automountServiceAccountToken: false
2351 ## @param worker.hostAliases Deployment pod host aliases
2352 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2355 ## @param worker.podLabels Add extra labels to the Airflow worker pods
2358 ## @param worker.podAnnotations Add extra annotations to the Airflow worker pods
2361 ## @param worker.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
2362 ## i.e. topologyKey: topology.kubernetes.io/zone
2365 ## @param worker.affinity Affinity for Airflow worker pods assignment (evaluated as a template)
2366 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2367 ## Note: `worker.podAffinityPreset`, `worker.podAntiAffinityPreset`, and `worker.nodeAffinityPreset` will be ignored when it's set
2370 ## Node affinity preset
2371 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2372 ## @param worker.nodeAffinityPreset.key Node label key to match. Ignored if `worker.affinity` is set.
2373 ## @param worker.nodeAffinityPreset.type Node affinity preset type. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`
2374 ## @param worker.nodeAffinityPreset.values Node label values to match. Ignored if `worker.affinity` is set.
2378 ## key: "kubernetes.io/e2e-az-name"
2388 ## @param worker.nodeSelector Node labels for Airflow worker pods assignment
2389 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2392 ## @param worker.podAffinityPreset Pod affinity preset. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`.
2393 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2395 podAffinityPreset: ""
2396 ## @param worker.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `worker.affinity` is set. Allowed values: `soft` or `hard`.
2397 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2399 podAntiAffinityPreset: soft
2400 ## @param worker.tolerations Tolerations for Airflow worker pods assignment
2401 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2404 ## @param worker.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2405 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2407 topologySpreadConstraints: []
2408 ## @param worker.priorityClassName Priority Class Name
2409 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2411 priorityClassName: ""
2412 ## @param worker.schedulerName Use an alternate scheduler, e.g. "stork".
2413 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2416 ## @param worker.terminationGracePeriodSeconds Seconds Airflow worker pod needs to terminate gracefully
2417 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2419 terminationGracePeriodSeconds: ""
2420 ## @param worker.podManagementPolicy Pod management policy for the worker statefulset
2421 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
2423 podManagementPolicy: OrderedReady
2424 ## @param worker.updateStrategy.type Airflow worker statefulset strategy type
2425 ## @param worker.updateStrategy.rollingUpdate Airflow worker statefulset rolling update configuration parameters
2426 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2431 ## @param worker.sidecars Add additional sidecar containers to the Airflow worker pods
2434 ## - name: your-image-name
2435 ## image: your-image
2436 ## imagePullPolicy: Always
2439 ## containerPort: 1234
2442 ## @param worker.initContainers Add additional init containers to the Airflow worker pods
2445 ## - name: your-image-name
2446 ## image: your-image
2447 ## imagePullPolicy: Always
2450 ## containerPort: 1234
2453 ## Specify temporary volume parameters for the Airflow worker pods
2454 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
2455 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
2458 ## @param worker.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2459 ## Possible values: "Memory", ""
2463 ## @param worker.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2466 ## @param worker.ephemeral.storageClass Storage class of backing PVC
2467 ## If defined, storageClassName: <storageClass>
2468 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2469 ## If undefined (the default) or set to null, no storageClassName spec is
2470 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2471 ## GKE, AWS & OpenStack)
2474 ## @param worker.ephemeral.annotations Additional annotations for backing PVC
2477 ## @param worker.ephemeral.accessModes Persistent Volume Access Modes
2481 ## @param worker.ephemeral.size Size of the generic ephemeral volume
2484 ## @param worker.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow worker pods
2486 extraVolumeMounts: []
2487 ## @param worker.extraVolumes Optionally specify extra list of additional volumes for the Airflow worker pods
2490 ## @param worker.extraVolumeClaimTemplates Optionally specify extra list of volumesClaimTemplates for the Airflow worker statefulset
2492 extraVolumeClaimTemplates: []
2493 ## @param worker.podTemplate Template to replace the default one to be use when `executor=KubernetesExecutor` to create Airflow worker pods
2496 ## Airflow worker Pod Disruption Budget
2497 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
2498 ## @param worker.pdb.create Deploy a pdb object for the Airflow worker pods
2499 ## @param worker.pdb.minAvailable Maximum number/percentage of unavailable Airflow worker replicas
2500 ## @param worker.pdb.maxUnavailable Maximum number/percentage of unavailable Airflow worker replicas
2506 ## Autoscaling configuration
2507 ## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2510 ## @param worker.autoscaling.vpa.enabled Enable VPA for Airflow Worker
2511 ## @param worker.autoscaling.vpa.annotations Annotations for VPA resource
2512 ## @param worker.autoscaling.vpa.controlledResources List of resources that the VPA can control. Defaults to cpu and memory
2513 ## @param worker.autoscaling.vpa.maxAllowed VPA max allowed resources for the pod
2514 ## @param worker.autoscaling.vpa.minAllowed VPA min allowed resources for the pod
2519 controlledResources: []
2522 ## @param worker.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy
2523 ## Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
2524 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
2528 ## @param worker.autoscaling.hpa.enabled Enable HPA for Airflow Worker
2529 ## @param worker.autoscaling.hpa.minReplicas Minimum number of replicas
2530 ## @param worker.autoscaling.hpa.maxReplicas Maximum number of replicas
2531 ## @param worker.autoscaling.hpa.targetCPU Target CPU utilization percentage
2532 ## @param worker.autoscaling.hpa.targetMemory Target Memory utilization percentage
2540 ## Worker Network Policies
2541 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2544 ## @param worker.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2547 ## @param worker.networkPolicy.allowExternal Don't require client label for connections
2548 ## The Policy model to apply. When set to false, only pods with the correct
2549 ## client label will have network access to the ports Worker is listening
2550 ## on. When true, Worker will accept connections from any source
2551 ## (with the correct destination port).
2554 ## @param worker.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2556 allowExternalEgress: true
2557 ## @param worker.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2567 ## - matchExpressions:
2573 ## @param worker.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2583 ## - matchExpressions:
2590 ## @param worker.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2591 ## @param worker.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2593 ingressNSMatchLabels: {}
2594 ingressNSPodMatchLabels: {}
2595## @section Airflow "setup-db" K8s Job parameters
2598 ## @param setupDBJob.enabled Enable setting up the Airflow database using a K8s job (otherwise it's done by the Webserver on startup)
2601 ## @param setupDBJob.backoffLimit set backoff limit of the job
2604 ## @param setupDBJob.command Override default container command on "setup-db" job's containers
2607 ## @param setupDBJob.args Override default container args on "setup-db" job's containers
2610 ## Configure "setup-db" job's container Security Context
2611 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2612 ## @param setupDBJob.containerSecurityContext.enabled Enabled "setup-db" job's containers' Security Context
2613 ## @param setupDBJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "setup-db" job's containers
2614 ## @param setupDBJob.containerSecurityContext.runAsUser Set runAsUser in "setup-db" job's containers' Security Context
2615 ## @param setupDBJob.containerSecurityContext.runAsGroup Set runAsUser in "setup-db" job's containers' Security Context
2616 ## @param setupDBJob.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "setup-db" job's containers' Security Context
2617 ## @param setupDBJob.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "setup-db" job's containers' Security Context
2618 ## @param setupDBJob.containerSecurityContext.privileged Set privileged in "setup-db" job's containers' Security Context
2619 ## @param setupDBJob.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "setup-db" job's containers' Security Context
2620 ## @param setupDBJob.containerSecurityContext.capabilities.add List of capabilities to be added in "setup-db" job's containers
2621 ## @param setupDBJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "setup-db" job's containers
2622 ## @param setupDBJob.containerSecurityContext.seccompProfile.type Set seccomp profile in "setup-db" job's containers
2624 containerSecurityContext:
2630 readOnlyRootFilesystem: true
2632 allowPrivilegeEscalation: false
2637 type: "RuntimeDefault"
2638 ## Configure "setup-db" job's pod Security Context
2639 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2640 ## @param setupDBJob.podSecurityContext.enabled Enabled "setup-db" job's pods' Security Context
2641 ## @param setupDBJob.podSecurityContext.fsGroupChangePolicy Set fsGroupChangePolicy in "setup-db" job's pods' Security Context
2642 ## @param setupDBJob.podSecurityContext.sysctls List of sysctls to allow in "setup-db" job's pods' Security Context
2643 ## @param setupDBJob.podSecurityContext.supplementalGroups List of supplemental groups to add to "setup-db" job's pods' Security Context
2644 ## @param setupDBJob.podSecurityContext.fsGroup Set fsGroup in "setup-db" job's pods' Security Context
2648 fsGroupChangePolicy: Always
2650 supplementalGroups: []
2652 ## @param setupDBJob.extraEnvVars Array containing extra env vars to configure the Airflow "setup-db" job's container
2655 ## @param setupDBJob.extraEnvVarsCM ConfigMap containing extra env vars to configure the Airflow "setup-db" job's container
2658 ## @param setupDBJob.extraEnvVarsSecret Secret containing extra env vars to configure the Airflow "setup-db" job's container (in case of sensitive data)
2660 extraEnvVarsSecret: ""
2661 ## Airflow "setup-db" job's container resource requests and limits
2662 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2663 ## @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).
2665 resourcesPreset: "small"
2666 ## @param setupDBJob.resources Set Airflow "setup-db" job's container requests and limits for different resources like CPU or memory (essential for production workloads)
2677 ## @param setupDBJob.automountServiceAccountToken Mount Service Account token in Airflow "setup-db" job's pods
2679 automountServiceAccountToken: false
2680 ## @param setupDBJob.hostAliases Add deployment host aliases
2681 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2684 ## @param setupDBJob.annotations [object] Add annotations to the Airflow "setup-db" job
2687 ## @param setupDBJob.podLabels Additional pod labels for Airflow "setup-db" job
2688 ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2691 ## @param setupDBJob.podAnnotations Additional pod annotations for Airflow "setup-db" job
2692 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2695 ## @param setupDBJob.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
2696 ## i.e. topologyKey: topology.kubernetes.io/zone
2699 ## @param setupDBJob.affinity Affinity for Airflow setup-db pods assignment (evaluated as a template)
2700 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2701 ## Note: `setupDBJob.podAffinityPreset`, `setupDBJob.podAntiAffinityPreset`, and `setupDBJob.nodeAffinityPreset` will be ignored when it's set
2704 ## Node affinity preset
2705 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2706 ## @param setupDBJob.nodeAffinityPreset.key Node label key to match. Ignored if `setupDBJob.affinity` is set.
2707 ## @param setupDBJob.nodeAffinityPreset.type Node affinity preset type. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`
2708 ## @param setupDBJob.nodeAffinityPreset.values Node label values to match. Ignored if `setupDBJob.affinity` is set.
2712 ## key: "kubernetes.io/e2e-az-name"
2722 ## @param setupDBJob.nodeSelector Node labels for Airflow setup-db pods assignment
2723 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2726 ## @param setupDBJob.podAffinityPreset Pod affinity preset. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`.
2727 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2729 podAffinityPreset: ""
2730 ## @param setupDBJob.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `setupDBJob.affinity` is set. Allowed values: `soft` or `hard`.
2731 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2733 podAntiAffinityPreset: soft
2734 ## @param setupDBJob.tolerations Tolerations for Airflow setup-db pods assignment
2735 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2738 ## @param setupDBJob.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2739 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2741 topologySpreadConstraints: []
2742 ## @param setupDBJob.priorityClassName Priority Class Name
2743 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2745 priorityClassName: ""
2746 ## @param setupDBJob.schedulerName Use an alternate scheduler, e.g. "stork".
2747 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2750 ## @param setupDBJob.terminationGracePeriodSeconds Seconds Airflow setup-db pod needs to terminate gracefully
2751 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2753 terminationGracePeriodSeconds: ""
2754 ## Specify temporary volume parameters for the Airflow setup-db pods
2755 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
2756 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
2759 ## @param setupDBJob.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2760 ## Possible values: "Memory", ""
2764 ## @param setupDBJob.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2767 ## @param setupDBJob.ephemeral.storageClass Storage class of backing PVC
2768 ## If defined, storageClassName: <storageClass>
2769 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2770 ## If undefined (the default) or set to null, no storageClassName spec is
2771 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2772 ## GKE, AWS & OpenStack)
2775 ## @param setupDBJob.ephemeral.annotations Additional annotations for backing PVC
2778 ## @param setupDBJob.ephemeral.accessModes Persistent Volume Access Modes
2782 ## @param setupDBJob.ephemeral.size Size of the generic ephemeral volume
2785 ## @param setupDBJob.extraVolumes Optionally specify extra list of additional volumes for Airflow "setup-db" job's pods
2788 ## @param setupDBJob.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow "setup-db" job's containers
2790 extraVolumeMounts: []
2791 ## @param setupDBJob.initContainers Add additional init containers to the Airflow "setup-db" job's pods
2794 ## - name: your-image-name
2795 ## image: your-image
2796 ## imagePullPolicy: Always
2799 ## containerPort: 1234
2802## @section Airflow ldap parameters
2804## LDAP configuration
2805## @param ldap.enabled Enable LDAP authentication
2806## @param ldap.uri Server URI, eg. ldap://ldap_server:389
2807## @param ldap.basedn Base of the search, eg. ou=example,o=org.
2808## @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
2809## @param ldap.firstnameField LDAP field that stores the user's first name.
2810## @param ldap.lastnameField LDAP field that stores the user's last name.
2811## @param ldap.emailField field that stores the user's email address, if null in LDAP, email is set to: "{username}@email.notfound"
2812## @param ldap.binddn DN of the account used to search in the LDAP server.
2813## @param ldap.bindpw Bind Password
2814## @param ldap.existingSecret Name of an existing secret containing the LDAP bind password
2815## @param ldap.userRegistration Set to True to enable user self registration
2816## @param ldap.userRegistrationRole Set role name to be assign when a user registers himself. This role must already exist. Mandatory when using ldap.userRegistration
2817## @param ldap.rolesMapping mapping from LDAP DN to a list of roles
2818## @param ldap.rolesSyncAtLogin replace ALL the user's roles each login, or only on registration
2822 uri: "ldap://ldap_server:389"
2823 basedn: "dc=example,dc=org"
2824 searchAttribute: "cn"
2825 firstnameField: "givenName"
2828 binddn: "cn=admin,dc=example,dc=org"
2831 userRegistration: 'True'
2832 userRegistrationRole: "Public"
2833 rolesMapping: '{ "cn=All,ou=Groups,dc=example,dc=org": ["User"], "cn=Admins,ou=Groups,dc=example,dc=org": ["Admin"], }'
2834 rolesSyncAtLogin: 'True'
2835 ## SSL/TLS parameters for LDAP
2836 ## @param ldap.tls.enabled Enabled TLS/SSL for LDAP, you must include the CA file.
2837 ## @param ldap.tls.allowSelfSigned Allow to use self signed certificates
2838 ## @param ldap.tls.certificatesSecret Name of the existing secret containing the certificate CA file that will be used by ldap client
2839 ## @param ldap.tls.certificatesMountPath Where LDAP certifcates are mounted.
2840 ## @param ldap.tls.CAFilename LDAP CA cert filename
2844 allowSelfSigned: true
2845 certificatesSecret: ""
2846 certificatesMountPath: /opt/iamguarded/airflow/conf/certs
2848## @section Traffic Exposure Parameters
2850## Airflow service parameters
2853 ## @param service.type Airflow service type
2856 ## @param service.ports.http Airflow service HTTP port
2860 ## Node ports to expose
2861 ## @param service.nodePorts.http Node port for HTTP
2862 ## NOTE: choose port between <30000-32767>
2866 ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
2867 ## Values: ClientIP or None
2868 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2870 sessionAffinity: None
2871 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
2872 ## sessionAffinityConfig:
2874 ## timeoutSeconds: 300
2876 sessionAffinityConfig: {}
2877 ## @param service.clusterIP Airflow service Cluster IP
2882 ## @param service.loadBalancerIP Airflow service Load Balancer IP
2883 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2886 ## @param service.loadBalancerSourceRanges Airflow service Load Balancer sources
2887 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2889 ## loadBalancerSourceRanges:
2892 loadBalancerSourceRanges: []
2893 ## @param service.externalTrafficPolicy Airflow service external traffic policy
2894 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2896 externalTrafficPolicy: Cluster
2897 ## @param service.annotations Additional custom annotations for Airflow service
2900 ## @param service.extraPorts Extra port to expose on Airflow service
2903## Airflow ingress parameters
2904## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2907 ## @param ingress.enabled Enable ingress record generation for Airflow
2910 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2911 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2912 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2914 ingressClassName: ""
2915 ## @param ingress.pathType Ingress path type
2917 pathType: ImplementationSpecific
2918 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
2921 ## @param ingress.hostname Default host for the ingress record
2923 hostname: airflow.local
2924 ## @param ingress.path Default path for the ingress record
2925 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2928 ## @param ingress.annotations [object] Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2929 ## Use this parameter to set the required annotations for cert-manager, see
2930 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2933 ## kubernetes.io/ingress.class: nginx
2934 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2937 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2938 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2940 ## - Use the `ingress.secrets` parameter to create this TLS secret
2941 ## - Rely on cert-manager to create it by setting the corresponding annotations
2942 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2945 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2948 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2951 ## - name: airflow.local
2955 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2960 ## serviceName: ssl-redirect
2961 ## servicePort: use-annotation
2964 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2965 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2970 ## secretName: airflow.local-tls
2973 ## @param ingress.secrets Custom TLS certificates as secrets
2974 ## NOTE: 'key' and 'certificate' are expected in PEM format
2975 ## NOTE: 'name' should line up with a 'secretName' set further up
2976 ## 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
2977 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2978 ## It is also possible to create and manage the certificates outside of this helm chart
2979 ## Please see README.md for more information
2982 ## - name: airflow.local-tls
2984 ## -----BEGIN RSA PRIVATE KEY-----
2986 ## -----END RSA PRIVATE KEY-----
2988 ## -----BEGIN CERTIFICATE-----
2990 ## -----END CERTIFICATE-----
2993 ## @param ingress.extraRules Additional rules to be covered with this ingress record
2994 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2997 ## - host: example.local
3002 ## name: example-svc
3007## @section Other Parameters
3009## Service account for Airflow pods to use.
3010## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3013 ## @param serviceAccount.create Enable creation of ServiceAccount for Airflow pods
3016 ## @param serviceAccount.name The name of the ServiceAccount to use.
3017 ## If not set and create is true, a name is generated using the common.names.fullname template
3020 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
3021 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
3023 automountServiceAccountToken: false
3024 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
3028## Ref: https://kubernetes.io/docs/admin/authorization/rbac/
3029## @param rbac.create Create Role and RoleBinding
3033 ## @param rbac.rules Custom RBAC rules to set
3045## @section StatsD metrics parameters
3048 ## @param metrics.enabled Enable a StatsD exporter that collects StatsD metrics from Airflow components and expose them as Prometheus metrics
3051 ## Iamguarded StatsD exporter image
3052 ## @param metrics.image.registry [default: REGISTRY_NAME] StatsD exporter image registry
3053 ## @param metrics.image.repository [default: REPOSITORY_NAME/statsd-exporter] StatsD exporter image repository
3054 ## @skip metrics.image.tag StatsD exporter image tag (immutable tags are recommended)
3055 ## @param metrics.image.digest StatsD exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3056 ## @param metrics.image.pullPolicy StatsD exporter image pull policy
3057 ## @param metrics.image.pullSecrets StatsD exporter image pull secrets
3061 repository: chainguard-private/prometheus-statsd-exporter-iamguarded
3064 pullPolicy: IfNotPresent
3065 ## Optionally specify an array of imagePullSecrets.
3066 ## Secrets must be manually created in the namespace.
3067 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3070 ## - myRegistryKeySecretName
3073 ## @param metrics.configuration Specify content for StatsD exporter's mappings.yml
3076 ## @param metrics.existingConfigmap Name of an existing config map containing the StatsD exporter's mappings.yml
3078 existingConfigmap: ""
3079 ## @param metrics.containerPorts.ingest StatsD exporter ingest container port (used for the metrics ingestion from Airflow components)
3080 ## @param metrics.containerPorts.metrics StatsD exporter metrics container port (used to expose Prometheus metrics)
3085 ## StatsD exporter resource requests and limits
3086 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3087 ## @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).
3089 resourcesPreset: "nano"
3090 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3101 ## StatsD exporter pods' Security Context
3102 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3103 ## @param metrics.podSecurityContext.enabled Enable security context for the pods
3104 ## @param metrics.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3105 ## @param metrics.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3106 ## @param metrics.podSecurityContext.supplementalGroups Set filesystem extra groups
3107 ## @param metrics.podSecurityContext.fsGroup Set StatsD exporter pod's Security Context fsGroup
3111 fsGroupChangePolicy: Always
3113 supplementalGroups: []
3115 ## StatsD exporter containers' Security Context
3116 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3117 ## @param metrics.containerSecurityContext.enabled Enable StatsD exporter containers' Security Context
3118 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
3119 ## @param metrics.containerSecurityContext.runAsUser Set StatsD exporter containers' Security Context runAsUser
3120 ## @param metrics.containerSecurityContext.runAsGroup Set StatsD exporter containers' Security Context runAsGroup
3121 ## @param metrics.containerSecurityContext.runAsNonRoot Set StatsD exporter containers' Security Context runAsNonRoot
3122 ## @param metrics.containerSecurityContext.privileged Set StatsD exporter containers' Security Context privileged
3123 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set StatsD exporter containers' Security Context allowPrivilegeEscalation
3124 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set StatsD exporter containers' Security Context readOnlyRootFilesystem
3125 ## @param metrics.containerSecurityContext.capabilities.drop List of capabilities to be dropped
3126 ## @param metrics.containerSecurityContext.seccompProfile.type Set containers' Security Context seccomp profile
3128 ## containerSecurityContext:
3131 ## drop: ["NET_RAW"]
3132 ## readOnlyRootFilesystem: true
3134 containerSecurityContext:
3141 allowPrivilegeEscalation: false
3142 readOnlyRootFilesystem: true
3146 type: "RuntimeDefault"
3147 ## Configure extra options for StatsD exporter containers' liveness, readiness and startup probes
3148 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
3149 ## @param metrics.livenessProbe.enabled Enable livenessProbe on StatsD exporter containers
3150 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
3151 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
3152 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
3153 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
3154 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
3158 initialDelaySeconds: 180
3163 ## @param metrics.readinessProbe.enabled Enable readinessProbe on StatsD exporter containers
3164 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
3165 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
3166 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
3167 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
3168 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
3172 initialDelaySeconds: 30
3177 ## @param metrics.startupProbe.enabled Enable startupProbe on StatsD exporter containers
3178 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
3179 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
3180 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
3181 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
3182 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
3186 initialDelaySeconds: 60
3189 failureThreshold: 15
3191 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
3193 customLivenessProbe: {}
3194 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
3196 customReadinessProbe: {}
3197 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
3199 customStartupProbe: {}
3200 ## @param metrics.lifecycleHooks for the StatsD exporter containers' to automate configuration before or after startup
3203 ## @param metrics.automountServiceAccountToken Mount Service Account token in pod
3205 automountServiceAccountToken: false
3206 ## @param metrics.hostAliases StatsD exporter pods host aliases
3207 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3210 ## @param metrics.podLabels Extra labels for StatsD exporter pods
3211 ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3214 ## @param metrics.podAnnotations Extra annotations for StatsD exporter pods
3215 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3218 ## @param metrics.topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
3219 ## i.e. topologyKey: topology.kubernetes.io/zone
3222 ## @param metrics.podAffinityPreset Pod affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3223 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3225 podAffinityPreset: ""
3226 ## @param metrics.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3227 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3229 podAntiAffinityPreset: soft
3230 ## Node metrics.affinity preset
3231 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3234 ## @param metrics.nodeAffinityPreset.type Node affinity preset type. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3237 ## @param metrics.nodeAffinityPreset.key Node label key to match Ignored if `metrics.affinity` is set.
3239 ## key: "kubernetes.io/e2e-az-name"
3242 ## @param metrics.nodeAffinityPreset.values Node label values to match. Ignored if `metrics.affinity` is set.
3249 ## @param metrics.affinity Affinity for StatsD exporter pods assignment
3250 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3251 ## Note: metrics.podAffinityPreset, metrics.podAntiAffinityPreset, and metrics.nodeAffinityPreset will be ignored when it's set
3254 ## @param metrics.nodeSelector Node labels for StatsD exporter pods assignment
3255 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3258 ## @param metrics.priorityClassName StatsD exporter pods' priorityClassName
3260 priorityClassName: ""
3261 ## @param metrics.tolerations Tolerations for pod assignment
3262 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3265 ## @param metrics.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
3266 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3268 topologySpreadConstraints: []
3269 ## @param metrics.schedulerName Name of the k8s scheduler (other than default) for StatsD exporter
3270 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3273 ## @param metrics.terminationGracePeriodSeconds Seconds StatsD exporter pod needs to terminate gracefully
3274 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3276 terminationGracePeriodSeconds: ""
3277 ## Specify temporary volume parameters for the StatsD exporter pods
3278 ## ref: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
3279 ## ref: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes
3282 ## @param metrics.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
3283 ## Possible values: "Memory", ""
3287 ## @param metrics.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
3290 ## @param metrics.ephemeral.storageClass Storage class of backing PVC
3291 ## If defined, storageClassName: <storageClass>
3292 ## If set to "-", storageClassName: "", which disables dynamic provisioning
3293 ## If undefined (the default) or set to null, no storageClassName spec is
3294 ## set, choosing the default provisioner. (gp2 on AWS, standard on
3295 ## GKE, AWS & OpenStack)
3298 ## @param metrics.ephemeral.annotations Additional annotations for backing PVC
3301 ## @param metrics.ephemeral.accessModes Persistent Volume Access Modes
3305 ## @param metrics.ephemeral.size Size of the generic ephemeral volume
3308 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the StatsD exporter pods
3311 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the StatsD exporter containers
3313 extraVolumeMounts: []
3314 ## StatsD metrics service configuration
3317 ## @param metrics.service.ports.ingest StatsD exporter ingest service port (used for the metrics ingestion from Airflow components)
3318 ## @param metrics.service.ports.metrics StatsD exporter metrics service port (used to expose Prometheus metrics)
3323 ## @param metrics.service.clusterIP Static clusterIP or None for headless services
3324 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
3327 ## @param metrics.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3328 ## Values: ClientIP or None
3329 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3331 sessionAffinity: None
3332 ## @param metrics.service.annotations [object] Annotations for the StatsD metrics service
3335 prometheus.io/scrape: "true"
3336 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
3337 ## Prometheus Operator ServiceMonitor configuration
3340 ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (requires `metrics.enabled` to be `true`)
3343 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
3346 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
3347 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3350 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
3351 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
3354 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
3357 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
3360 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
3363 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
3365 metricRelabelings: []
3366 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
3369 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3372 ## Metrics Network Policies
3373 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3376 ## @param metrics.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
3379 ## @param metrics.networkPolicy.allowExternal Don't require client label for connections
3380 ## The Policy model to apply. When set to false, only pods with the correct
3381 ## client label will have network access to the ports Metrics is listening
3382 ## on. When true, Metrics will accept connections from any source
3383 ## (with the correct destination port).
3386 ## @param metrics.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3388 allowExternalEgress: true
3389 ## @param metrics.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3399 ## - matchExpressions:
3405 ## @param metrics.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3415 ## - matchExpressions:
3422 ## @param metrics.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3423 ## @param metrics.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3425 ingressNSMatchLabels: {}
3426 ingressNSPodMatchLabels: {}
3427## @section Airflow database parameters
3429## PostgreSQL chart configuration
3430## @param postgresql.enabled Switch to enable or disable the PostgreSQL helm chart
3431## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user
3432## @param postgresql.auth.username Name for a custom user to create
3433## @param postgresql.auth.password Password for the custom user to create
3434## @param postgresql.auth.database Name for a custom database to create
3435## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials
3436## @param postgresql.architecture PostgreSQL architecture (`standalone` or `replication`)
3441 enablePostgresUser: true
3442 username: ig_airflow
3444 database: iamguarded_airflow
3446 architecture: standalone
3448 ## PostgreSQL Primary resource requests and limits
3449 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3450 ## @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).
3452 resourcesPreset: "nano"
3453 ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3466 repository: chainguard-private/postgres-iamguarded
3472 repository: chainguard-private/prometheus-postgres-exporter-iamguarded
3478 repository: chainguard-private/os-shell-iamguarded
3481## External PostgreSQL configuration
3482## All of these values are only used when postgresql.enabled is set to false
3483## @param externalDatabase.host Database host (ignored if externalDatabase.sqlConnection is set)
3484## @param externalDatabase.port Database port number (ignored if externalDatabase.sqlConnection is set)
3485## @param externalDatabase.user Non-root username for Airflow (ignored if externalDatabase.sqlConnection is set)
3486## @param externalDatabase.password Password for the non-root username for Airflow (ignored if externalDatabase.sqlConnection or externalDatabase.existingSecret are set)
3487## @param externalDatabase.database Airflow database name (ignored if externalDatabase.sqlConnection is set)
3488## @param externalDatabase.sqlConnection SQL connection string
3489## @param externalDatabase.existingSecret Name of an existing secret resource containing the database credentials
3490## @param externalDatabase.existingSecretPasswordKey Name of an existing secret key containing the database credentials (ignored if externalDatabase.existingSecretSqlConnectionKey is set)
3491## @param externalDatabase.existingSecretSqlConnectionKey Name of an existing secret key containing the SQL connection string
3497 database: iamguarded_airflow
3501 existingSecretPasswordKey: ""
3502 existingSecretSqlConnectionKey: ""
3503## Redis® chart configuration
3504## @param redis.enabled Switch to enable or disable the Redis® helm
3505## @param redis.auth.enabled Enable password authentication
3506## @param redis.auth.password Redis® password
3507## @param redis.auth.existingSecret The name of an existing secret with Redis® credentials
3508## @param redis.architecture Redis® architecture. Allowed values: `standalone` or `replication`
3514 ## Redis® password (both master and slave). Defaults to a random 10-character alphanumeric string if not set and auth.enabled is true.
3515 ## It should always be set using the password value or in the existingSecret to avoid issues
3517 ## The password value is ignored if existingSecret is set
3520 architecture: standalone
3522 ## @param redis.master.service.ports.redis Redis® port
3527 ## Redis® master resource requests and limits
3528 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3529 ## @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).
3531 resourcesPreset: "nano"
3532 ## @param redis.master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3545 repository: chainguard-private/redis-server-iamguarded
3551 repository: chainguard-private/redis-sentinel-iamguarded
3557 repository: chainguard-private/prometheus-redis-exporter-iamguarded
3563 repository: chainguard-private/kubectl-iamguarded
3569 repository: chainguard-private/os-shell-iamguarded
3575 repository: chainguard-private/os-shell-iamguarded
3578## External Redis® configuration
3579## All of these values are only used when redis.enabled is set to false
3580## @param externalRedis.host Redis® host
3581## @param externalRedis.port Redis® port number
3582## @param externalRedis.username Redis® username
3583## @param externalRedis.password Redis® password
3584## @param externalRedis.existingSecret Name of an existing secret resource containing the Redis&trade credentials
3585## @param externalRedis.existingSecretPasswordKey Name of an existing secret key containing the Redis&trade credentials
3590 ## Most Redis® implementations do not require a username
3591 ## to authenticate and it should be enough with the password
3595 existingSecretPasswordKey: ""