DirectorySecurity AdvisoriesPricing
Sign in
Directory
airflow logoHELM

airflow

Helm chart
iamguarded
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# This file has been modified by Chainguard, Inc.
2
#
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
6
#
7
# Copyright Broadcom, Inc. All Rights Reserved.
8
# SPDX-License-Identifier: APACHE-2.0
9
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
14
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)
19
##
20
global:
21
imageRegistry: ""
22
useImageTags: false
23
## E.g.
24
## imagePullSecrets:
25
## - myRegistryKeySecretName
26
##
27
imagePullSecrets: []
28
defaultStorageClass: ""
29
## Security parameters
30
##
31
security:
32
## @param global.security.allowInsecureImages Allows skipping image verification
33
allowInsecureImages: false
34
## Compatibility adaptations for Kubernetes platforms
35
##
36
compatibility:
37
## Compatibility adaptations for Openshift
38
##
39
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)
41
##
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
44
##
45
omitEmptySeLinuxOptions: false
46
org: ""
47
## @section Common parameters
48
49
## @param kubeVersion Override Kubernetes version
50
##
51
kubeVersion: ""
52
## @param apiVersions Override Kubernetes API versions reported by .Capabilities
53
##
54
apiVersions: []
55
## @param nameOverride String to partially override common.names.name
56
##
57
nameOverride: ""
58
## @param fullnameOverride String to fully override common.names.fullname
59
##
60
fullnameOverride: ""
61
## @param namespaceOverride String to fully override common.names.namespace
62
##
63
namespaceOverride: ""
64
## @param commonLabels Labels to add to all deployed objects
65
##
66
commonLabels: {}
67
## @param commonAnnotations Annotations to add to all deployed objects
68
##
69
commonAnnotations: {}
70
## @param clusterDomain Kubernetes cluster domain name
71
##
72
clusterDomain: cluster.local
73
## @param extraDeploy Array of extra objects to deploy with the release
74
##
75
extraDeploy: []
76
## @param usePasswordFiles Mount credentials as files instead of using environment variables
77
##
78
usePasswordFiles: true
79
## Diagnostic mode
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
83
##
84
diagnosticMode:
85
enabled: false
86
command:
87
- sleep
88
args:
89
- infinity
90
## @section Airflow common parameters
91
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
100
image:
101
registry: cgr.dev
102
repository: chainguard-private/airflow-iamguarded
103
tag: 2.11.2
104
digest: ""
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
108
##
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/
113
## e.g:
114
## pullSecrets:
115
## - myRegistryKeySecretName
116
##
117
pullSecrets: []
118
## Set to true if you would like to see extra information on logs
119
##
120
debug: false
121
## Authentication parameters
122
##
123
auth:
124
## @param auth.username Username to access web UI
125
##
126
username: user
127
## @param auth.password Password to access web UI
128
##
129
password: ""
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
133
##
134
fernetKey: ""
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
137
##
138
secretKey: ""
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
141
##
142
jwtSecretKey: ""
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
147
##
148
existingSecret: ""
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
151
##
152
executor: CeleryExecutor
153
## @param loadExamples Switch to load some Airflow examples
154
##
155
loadExamples: false
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:
159
## configuration:
160
## core:
161
## dags_folder: "/opt/iamguarded/airflow/dags"
162
## ... will be transformed to:
163
## [core]
164
## dags_folder = "/opt/iamguarded/airflow/dags"
165
##
166
configuration: {}
167
## @param overrideConfiguration Airflow common configuration override. Values defined here takes precedence over the ones defined at `configuration`
168
##
169
overrideConfiguration: {}
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
172
## e.g:
173
## localSettings: |-
174
## ...
175
##
176
localSettings: ""
177
## @param existingConfigmap Name of an existing ConfigMap with the Airflow config file and, optionally, the local settings file
178
##
179
existingConfigmap: ""
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
184
##
185
dags:
186
enabled: false
187
existingConfigmap: ""
188
## E.g:
189
## repositories:
190
## - repository: https://github.com/myuser/myrepo
191
## branch: main
192
## name: my-dags
193
## path: /
194
##
195
repositories: []
196
## @param dags.sshKey SSH Private key used to clone/sync DAGs from Git repositories (ignored if dags.existingSshKeySecret is set)
197
##
198
sshKey: ""
199
## @param dags.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync DAGs from Git repositories
200
##
201
existingSshKeySecret: ""
202
## @param dags.existingSshKeySecretKey Key in the existing secret containing the SSH private key
203
##
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
208
##
209
plugins:
210
enabled: false
211
## E.g:
212
## repositories:
213
## - repository: https://github.com/myuser/myrepo
214
## branch: main
215
## name: my-plugins
216
## path: /
217
##
218
repositories: []
219
## @param plugins.sshKey SSH Private key used to clone/sync plugins from Git repositories (ignored if plugins.existingSshKeySecret is set)
220
##
221
sshKey: ""
222
## @param plugins.existingSshKeySecret Name of a secret containing the SSH private key used to clone/sync plugins from Git repositories
223
##
224
existingSshKeySecret: ""
225
## @param plugins.existingSshKeySecretKey Key in the existing secret containing the SSH private key
226
##
227
existingSshKeySecretKey: ""
228
## Default init Containers
229
##
230
defaultInitContainers:
231
## Airflow "prepare-config" init container
232
## Used to prepare the Airflow configuration files for main containers to use them
233
##
234
prepareConfig:
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
248
##
249
containerSecurityContext:
250
enabled: true
251
seLinuxOptions: {}
252
runAsUser: 1001
253
runAsGroup: 1001
254
runAsNonRoot: true
255
readOnlyRootFilesystem: true
256
privileged: false
257
allowPrivilegeEscalation: false
258
capabilities:
259
add: []
260
drop: ["ALL"]
261
seccompProfile:
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).
266
##
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)
269
## E.g:
270
## resources:
271
## requests:
272
## cpu: 2
273
## memory: 512Mi
274
## limits:
275
## cpu: 3
276
## memory: 1024Mi
277
##
278
resources: {}
279
## Airflow "wait-for-db-migrations" init container
280
## Used to wait for db migrations to be ready
281
##
282
waitForDBMigrations:
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
296
##
297
containerSecurityContext:
298
enabled: true
299
seLinuxOptions: {}
300
runAsUser: 1001
301
runAsGroup: 1001
302
runAsNonRoot: true
303
readOnlyRootFilesystem: true
304
privileged: false
305
allowPrivilegeEscalation: false
306
capabilities:
307
add: []
308
drop: ["ALL"]
309
seccompProfile:
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).
314
##
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)
317
## E.g:
318
## resources:
319
## requests:
320
## cpu: 2
321
## memory: 512Mi
322
## limits:
323
## cpu: 3
324
## memory: 1024Mi
325
##
326
resources: {}
327
prepareVenv:
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
341
##
342
containerSecurityContext:
343
enabled: true
344
seLinuxOptions: {}
345
runAsUser: 1001
346
runAsGroup: 1001
347
runAsNonRoot: true
348
readOnlyRootFilesystem: true
349
privileged: false
350
allowPrivilegeEscalation: false
351
capabilities:
352
add: []
353
drop: ["ALL"]
354
seccompProfile:
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).
359
##
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)
362
## E.g:
363
## resources:
364
## requests:
365
## cpu: 2
366
## memory: 512Mi
367
## limits:
368
## cpu: 3
369
## memory: 1024Mi
370
##
371
resources: {}
372
## Airflow "load-dags-plugins" init container
373
## Used to load DAGs and/or plugins from a ConfigMap or Git repositories
374
##
375
loadDAGsPlugins:
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
382
command: []
383
args: []
384
extraVolumeMounts: []
385
extraEnvVars: []
386
extraEnvVarsCM: ""
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
401
##
402
containerSecurityContext:
403
enabled: true
404
seLinuxOptions: {}
405
runAsUser: 1001
406
runAsGroup: 1001
407
runAsNonRoot: true
408
readOnlyRootFilesystem: true
409
privileged: false
410
allowPrivilegeEscalation: false
411
capabilities:
412
add: []
413
drop: ["ALL"]
414
seccompProfile:
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).
419
##
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)
422
## E.g:
423
## resources:
424
## requests:
425
## cpu: 2
426
## memory: 512Mi
427
## limits:
428
## cpu: 3
429
## memory: 1024Mi
430
##
431
resources: {}
432
## Default sidecars
433
##
434
defaultSidecars:
435
## Airflow "sync-dags-plugins" sidecar
436
## Used to sync DAGs and/or plugins from Git repositories
437
##
438
syncDAGsPlugins:
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
446
interval: 60
447
command: []
448
args: []
449
extraVolumeMounts: []
450
extraEnvVars: []
451
extraEnvVarsCM: ""
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
466
##
467
containerSecurityContext:
468
enabled: true
469
seLinuxOptions: {}
470
runAsUser: 1001
471
runAsGroup: 1001
472
runAsNonRoot: true
473
readOnlyRootFilesystem: true
474
privileged: false
475
allowPrivilegeEscalation: false
476
capabilities:
477
add: []
478
drop: ["ALL"]
479
seccompProfile:
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).
484
##
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)
487
## E.g:
488
## resources:
489
## requests:
490
## cpu: 2
491
## memory: 512Mi
492
## limits:
493
## cpu: 3
494
## memory: 1024Mi
495
##
496
resources: {}
497
## @param extraEnvVars Add extra environment variables for all the Airflow pods
498
##
499
extraEnvVars: []
500
## @param extraEnvVarsCM ConfigMap with extra environment variables for all the Airflow pods
501
##
502
extraEnvVarsCM: ""
503
## @param extraEnvVarsCMs List of ConfigMaps with extra environment variables for all the Airflow pods
504
##
505
extraEnvVarsCMs: []
506
## @param extraEnvVarsSecret Secret with extra environment variables for all the Airflow pods
507
##
508
extraEnvVarsSecret: ""
509
## @param extraEnvVarsSecrets List of secrets with extra environment variables for all the Airflow pods
510
##
511
extraEnvVarsSecrets: []
512
## @param sidecars Add additional sidecar containers to all the Airflow pods
513
## Example:
514
## sidecars:
515
## - name: your-image-name
516
## image: your-image
517
## imagePullPolicy: Always
518
## ports:
519
## - name: portname
520
## containerPort: 1234
521
##
522
sidecars: []
523
## @param initContainers Add additional init containers to all the Airflow pods
524
## Example:
525
## initContainers:
526
## - name: your-image-name
527
## image: your-image
528
## imagePullPolicy: Always
529
## ports:
530
## - name: portname
531
## containerPort: 1234
532
##
533
initContainers: []
534
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for all the Airflow pods
535
##
536
extraVolumeMounts: []
537
## @param extraVolumes Optionally specify extra list of additional volumes for the all the Airflow pods
538
##
539
extraVolumes: []
540
## @section Airflow webserver parameters
541
##
542
web:
543
## @param web.baseUrl URL used to access to Airflow webserver
544
##
545
baseUrl: ""
546
## @param web.configuration Specify content for webserver_config.py (auto-generated based on other env. vars otherwise)
547
##
548
configuration: ""
549
## @param web.extraConfiguration Specify extra content to be appended to default webserver_config.py (ignored if `web.configuration` or `web.existingConfigmap` are set)
550
##
551
extraConfiguration: ""
552
## @param web.existingConfigmap Name of an existing config map containing the Airflow webserver config file
553
##
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
568
##
569
tls:
570
enabled: false
571
autoGenerated:
572
enabled: true
573
engine: helm
574
certManager:
575
existingIssuer: ""
576
existingIssuerKind: ""
577
keySize: 2048
578
keyAlgorithm: RSA
579
duration: 2160h
580
renewBefore: 360h
581
ca: ""
582
cert: ""
583
key: ""
584
existingSecret: ""
585
## @param web.command Override default container command (useful when using custom images)
586
##
587
command: []
588
## @param web.args Override default container args (useful when using custom images)
589
##
590
args: []
591
## @param web.extraEnvVars Array with extra environment variables to add Airflow webserver pods
592
##
593
extraEnvVars: []
594
## @param web.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow webserver pods
595
##
596
extraEnvVarsCM: ""
597
## @param web.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow webserver pods
598
##
599
extraEnvVarsCMs: []
600
## @param web.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow webserver pods
601
##
602
extraEnvVarsSecret: ""
603
## @param web.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow webserver pods
604
##
605
extraEnvVarsSecrets: []
606
## @param web.containerPorts.http Airflow webserver HTTP container port
607
##
608
containerPorts:
609
http: 8080
610
## @param web.replicaCount Number of Airflow webserver replicas
611
##
612
replicaCount: 1
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
621
##
622
livenessProbe:
623
enabled: true
624
initialDelaySeconds: 180
625
periodSeconds: 20
626
timeoutSeconds: 5
627
failureThreshold: 6
628
successThreshold: 1
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
635
##
636
readinessProbe:
637
enabled: true
638
initialDelaySeconds: 30
639
periodSeconds: 10
640
timeoutSeconds: 5
641
failureThreshold: 6
642
successThreshold: 1
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
649
##
650
startupProbe:
651
enabled: false
652
initialDelaySeconds: 60
653
periodSeconds: 10
654
timeoutSeconds: 1
655
failureThreshold: 15
656
successThreshold: 1
657
## @param web.customLivenessProbe Custom livenessProbe that overrides the default one
658
##
659
customLivenessProbe: {}
660
## @param web.customReadinessProbe Custom readinessProbe that overrides the default one
661
##
662
customReadinessProbe: {}
663
## @param web.customStartupProbe Custom startupProbe that overrides the default one
664
##
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).
669
##
670
resourcesPreset: "medium"
671
## @param web.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
672
## Example:
673
## resources:
674
## requests:
675
## cpu: 2
676
## memory: 512Mi
677
## limits:
678
## cpu: 3
679
## memory: 1024Mi
680
##
681
resources: {}
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
689
##
690
podSecurityContext:
691
enabled: true
692
fsGroupChangePolicy: Always
693
sysctls: []
694
supplementalGroups: []
695
fsGroup: 1001
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
708
##
709
containerSecurityContext:
710
enabled: true
711
seLinuxOptions: {}
712
runAsUser: 1001
713
runAsGroup: 1001
714
runAsNonRoot: true
715
privileged: false
716
allowPrivilegeEscalation: false
717
readOnlyRootFilesystem: true
718
capabilities:
719
drop: ["ALL"]
720
seccompProfile:
721
type: "RuntimeDefault"
722
## @param web.lifecycleHooks for the Airflow webserver container(s) to automate configuration before or after startup
723
##
724
lifecycleHooks: {}
725
## @param web.automountServiceAccountToken Mount Service Account token in pod
726
##
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/
730
##
731
hostAliases: []
732
## @param web.podLabels Add extra labels to the Airflow webserver pods
733
##
734
podLabels: {}
735
## @param web.podAnnotations Add extra annotations to the Airflow webserver pods
736
##
737
podAnnotations: {}
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
740
##
741
topologyKey: ""
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
745
##
746
affinity: {}
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.
752
##
753
nodeAffinityPreset:
754
## e.g:
755
## key: "kubernetes.io/e2e-az-name"
756
##
757
key: ""
758
type: ""
759
## e.g:
760
## values:
761
## - e2e-az1
762
## - e2e-az2
763
##
764
values: []
765
## @param web.nodeSelector Node labels for Airflow webserver pods assignment
766
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
767
##
768
nodeSelector: {}
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
771
##
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
775
##
776
podAntiAffinityPreset: soft
777
## @param web.tolerations Tolerations for Airflow webserver pods assignment
778
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
779
##
780
tolerations: []
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
783
##
784
topologySpreadConstraints: []
785
## @param web.priorityClassName Priority Class Name
786
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
787
##
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/
791
##
792
schedulerName: ""
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
795
##
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
800
##
801
updateStrategy:
802
type: RollingUpdate
803
rollingUpdate: {}
804
## @param web.sidecars Add additional sidecar containers to the Airflow webserver pods
805
## Example:
806
## sidecars:
807
## - name: your-image-name
808
## image: your-image
809
## imagePullPolicy: Always
810
## ports:
811
## - name: portname
812
## containerPort: 1234
813
##
814
sidecars: []
815
## @param web.initContainers Add additional init containers to the Airflow webserver pods
816
## Example:
817
## initContainers:
818
## - name: your-image-name
819
## image: your-image
820
## imagePullPolicy: Always
821
## ports:
822
## - name: portname
823
## containerPort: 1234
824
##
825
initContainers: []
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
829
##
830
emptyDir:
831
## @param web.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
832
## Possible values: "Memory", ""
833
##
834
medium: ""
835
ephemeral:
836
## @param web.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
837
##
838
enabled: false
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)
845
##
846
storageClass: ""
847
## @param web.ephemeral.annotations Additional annotations for backing PVC
848
##
849
annotations: {}
850
## @param web.ephemeral.accessModes Persistent Volume Access Modes
851
##
852
accessModes:
853
- ReadWriteOnce
854
## @param web.ephemeral.size Size of the generic ephemeral volume
855
##
856
size: 8Gi
857
## @param web.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow webserver pods
858
##
859
extraVolumeMounts: []
860
## @param web.extraVolumes Optionally specify extra list of additional volumes for the Airflow webserver pods
861
##
862
extraVolumes: []
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
868
##
869
pdb:
870
create: true
871
minAvailable: ""
872
maxUnavailable: ""
873
## Autoscaling configuration
874
## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
875
##
876
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
882
##
883
vpa:
884
enabled: false
885
annotations: {}
886
controlledResources: []
887
maxAllowed: {}
888
minAllowed: {}
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".
892
##
893
updatePolicy:
894
updateMode: 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
900
##
901
hpa:
902
enabled: false
903
minReplicas: ""
904
maxReplicas: ""
905
targetCPU: ""
906
targetMemory: ""
907
## Web Network Policies
908
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
909
##
910
networkPolicy:
911
## @param web.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
912
##
913
enabled: true
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).
919
##
920
allowExternal: true
921
## @param web.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
922
##
923
allowExternalEgress: true
924
## @param web.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
925
## e.g:
926
## extraIngress:
927
## - ports:
928
## - port: 1234
929
## from:
930
## - podSelector:
931
## - matchLabels:
932
## - role: frontend
933
## - podSelector:
934
## - matchExpressions:
935
## - key: role
936
## operator: In
937
## values:
938
## - frontend
939
extraIngress: []
940
## @param web.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
941
## e.g:
942
## extraEgress:
943
## - ports:
944
## - port: 1234
945
## to:
946
## - podSelector:
947
## - matchLabels:
948
## - role: frontend
949
## - podSelector:
950
## - matchExpressions:
951
## - key: role
952
## operator: In
953
## values:
954
## - frontend
955
##
956
extraEgress: []
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
959
##
960
ingressNSMatchLabels: {}
961
ingressNSPodMatchLabels: {}
962
## @section Airflow scheduler parameters
963
##
964
scheduler:
965
## @param scheduler.replicaCount Number of scheduler replicas
966
##
967
replicaCount: 1
968
## @param scheduler.command Override cmd
969
##
970
command: []
971
## @param scheduler.args Override args
972
##
973
args: []
974
## @param scheduler.extraEnvVars Add extra environment variables
975
##
976
extraEnvVars: []
977
## @param scheduler.extraEnvVarsCM ConfigMap with extra environment variables
978
##
979
extraEnvVarsCM: ""
980
## @param scheduler.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow scheduler pods
981
##
982
extraEnvVarsCMs: []
983
## @param scheduler.extraEnvVarsSecret Secret with extra environment variables
984
##
985
extraEnvVarsSecret: ""
986
## @param scheduler.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow scheduler pods
987
##
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
997
##
998
livenessProbe:
999
enabled: true
1000
initialDelaySeconds: 180
1001
periodSeconds: 20
1002
timeoutSeconds: 15
1003
failureThreshold: 6
1004
successThreshold: 1
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
1011
##
1012
readinessProbe:
1013
enabled: true
1014
initialDelaySeconds: 30
1015
periodSeconds: 10
1016
timeoutSeconds: 15
1017
failureThreshold: 6
1018
successThreshold: 1
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
1025
##
1026
startupProbe:
1027
enabled: false
1028
initialDelaySeconds: 60
1029
periodSeconds: 10
1030
timeoutSeconds: 1
1031
failureThreshold: 15
1032
successThreshold: 1
1033
## @param scheduler.customLivenessProbe Custom livenessProbe that overrides the default one
1034
##
1035
customLivenessProbe: {}
1036
## @param scheduler.customReadinessProbe Custom readinessProbe that overrides the default one
1037
##
1038
customReadinessProbe: {}
1039
## @param scheduler.customStartupProbe Custom startupProbe that overrides the default one
1040
##
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).
1045
##
1046
resourcesPreset: "small"
1047
## @param scheduler.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1048
## Example:
1049
## resources:
1050
## requests:
1051
## cpu: 2
1052
## memory: 512Mi
1053
## limits:
1054
## cpu: 3
1055
## memory: 1024Mi
1056
##
1057
resources: {}
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
1065
##
1066
podSecurityContext:
1067
enabled: true
1068
fsGroupChangePolicy: Always
1069
sysctls: []
1070
supplementalGroups: []
1071
fsGroup: 1001
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
1084
##
1085
containerSecurityContext:
1086
enabled: true
1087
seLinuxOptions: {}
1088
runAsUser: 1001
1089
runAsGroup: 1001
1090
runAsNonRoot: true
1091
privileged: false
1092
allowPrivilegeEscalation: false
1093
readOnlyRootFilesystem: true
1094
capabilities:
1095
drop: ["ALL"]
1096
seccompProfile:
1097
type: "RuntimeDefault"
1098
## @param scheduler.lifecycleHooks for the Airflow scheduler container(s) to automate configuration before or after startup
1099
##
1100
lifecycleHooks: {}
1101
## @param scheduler.automountServiceAccountToken Mount Service Account token in pod
1102
##
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/
1106
##
1107
hostAliases: []
1108
## @param scheduler.podLabels Add extra labels to the Airflow scheduler pods
1109
##
1110
podLabels: {}
1111
## @param scheduler.podAnnotations Add extra annotations to the Airflow scheduler pods
1112
##
1113
podAnnotations: {}
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
1116
##
1117
topologyKey: ""
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
1121
##
1122
affinity: {}
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.
1128
##
1129
nodeAffinityPreset:
1130
## e.g:
1131
## key: "kubernetes.io/e2e-az-name"
1132
##
1133
key: ""
1134
type: ""
1135
## e.g:
1136
## values:
1137
## - e2e-az1
1138
## - e2e-az2
1139
##
1140
values: []
1141
## @param scheduler.nodeSelector Node labels for Airflow scheduler pods assignment
1142
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1143
##
1144
nodeSelector: {}
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
1147
##
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
1151
##
1152
podAntiAffinityPreset: soft
1153
## @param scheduler.tolerations Tolerations for Airflow scheduler pods assignment
1154
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1155
##
1156
tolerations: []
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
1159
##
1160
topologySpreadConstraints: []
1161
## @param scheduler.priorityClassName Priority Class Name
1162
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1163
##
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/
1167
##
1168
schedulerName: ""
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
1171
##
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
1176
##
1177
updateStrategy:
1178
type: RollingUpdate
1179
rollingUpdate: {}
1180
## @param scheduler.sidecars Add additional sidecar containers to the Airflow scheduler pods
1181
## Example:
1182
## sidecars:
1183
## - name: your-image-name
1184
## image: your-image
1185
## imagePullPolicy: Always
1186
## ports:
1187
## - name: portname
1188
## containerPort: 1234
1189
##
1190
sidecars: []
1191
## @param scheduler.initContainers Add additional init containers to the Airflow scheduler pods
1192
## Example:
1193
## initContainers:
1194
## - name: your-image-name
1195
## image: your-image
1196
## imagePullPolicy: Always
1197
## ports:
1198
## - name: portname
1199
## containerPort: 1234
1200
##
1201
initContainers: []
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
1205
##
1206
emptyDir:
1207
## @param scheduler.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1208
## Possible values: "Memory", ""
1209
##
1210
medium: ""
1211
ephemeral:
1212
## @param scheduler.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1213
##
1214
enabled: false
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)
1221
##
1222
storageClass: ""
1223
## @param scheduler.ephemeral.annotations Additional annotations for backing PVC
1224
##
1225
annotations: {}
1226
## @param scheduler.ephemeral.accessModes Persistent Volume Access Modes
1227
##
1228
accessModes:
1229
- ReadWriteOnce
1230
## @param scheduler.ephemeral.size Size of the generic ephemeral volume
1231
##
1232
size: 8Gi
1233
## @param scheduler.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow scheduler pods
1234
##
1235
extraVolumeMounts: []
1236
## @param scheduler.extraVolumes Optionally specify extra list of additional volumes for the Airflow scheduler pods
1237
##
1238
extraVolumes: []
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
1244
##
1245
pdb:
1246
create: true
1247
minAvailable: ""
1248
maxUnavailable: ""
1249
## Autoscaling configuration
1250
## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1251
##
1252
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
1258
##
1259
vpa:
1260
enabled: false
1261
annotations: {}
1262
controlledResources: []
1263
maxAllowed: {}
1264
minAllowed: {}
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".
1268
##
1269
updatePolicy:
1270
updateMode: 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
1276
##
1277
hpa:
1278
enabled: false
1279
minReplicas: ""
1280
maxReplicas: ""
1281
targetCPU: ""
1282
targetMemory: ""
1283
## Scheduler Network Policies
1284
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1285
##
1286
networkPolicy:
1287
## @param scheduler.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1288
##
1289
enabled: true
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).
1295
##
1296
allowExternal: true
1297
## @param scheduler.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1298
##
1299
allowExternalEgress: true
1300
## @param scheduler.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1301
## e.g:
1302
## extraIngress:
1303
## - ports:
1304
## - port: 1234
1305
## from:
1306
## - podSelector:
1307
## - matchLabels:
1308
## - role: frontend
1309
## - podSelector:
1310
## - matchExpressions:
1311
## - key: role
1312
## operator: In
1313
## values:
1314
## - frontend
1315
extraIngress: []
1316
## @param scheduler.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1317
## e.g:
1318
## extraEgress:
1319
## - ports:
1320
## - port: 1234
1321
## to:
1322
## - podSelector:
1323
## - matchLabels:
1324
## - role: frontend
1325
## - podSelector:
1326
## - matchExpressions:
1327
## - key: role
1328
## operator: In
1329
## values:
1330
## - frontend
1331
##
1332
extraEgress: []
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
1335
##
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
1340
##
1341
dagProcessor:
1342
## @param dagProcessor.enabled Run Airflow Dag Processor Manager as a standalone component
1343
##
1344
enabled: true
1345
## @param dagProcessor.replicaCount Number of Airflow Dag Processor replicas
1346
##
1347
replicaCount: 1
1348
## @param dagProcessor.command Override default Airflow Dag Processor cmd
1349
##
1350
command: []
1351
## @param dagProcessor.args Override default Airflow Dag Processor args
1352
##
1353
args: []
1354
## @param dagProcessor.extraEnvVars Add extra environment variables to Airflow Dag Processor containers
1355
##
1356
extraEnvVars: []
1357
## @param dagProcessor.extraEnvVarsCM ConfigMap with extra environment variables
1358
##
1359
extraEnvVarsCM: ""
1360
## @param dagProcessor.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow dagProcessor pods
1361
##
1362
extraEnvVarsCMs: []
1363
## @param dagProcessor.extraEnvVarsSecret Secret with extra environment variables
1364
##
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
1374
##
1375
livenessProbe:
1376
enabled: true
1377
initialDelaySeconds: 180
1378
periodSeconds: 20
1379
timeoutSeconds: 15
1380
failureThreshold: 6
1381
successThreshold: 1
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
1388
##
1389
readinessProbe:
1390
enabled: true
1391
initialDelaySeconds: 30
1392
periodSeconds: 10
1393
timeoutSeconds: 15
1394
failureThreshold: 6
1395
successThreshold: 1
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
1402
##
1403
startupProbe:
1404
enabled: false
1405
initialDelaySeconds: 60
1406
periodSeconds: 10
1407
timeoutSeconds: 1
1408
failureThreshold: 15
1409
successThreshold: 1
1410
## @param dagProcessor.customLivenessProbe Custom livenessProbe that overrides the default one
1411
##
1412
customLivenessProbe: {}
1413
## @param dagProcessor.customReadinessProbe Custom readinessProbe that overrides the default one
1414
##
1415
customReadinessProbe: {}
1416
## @param dagProcessor.customStartupProbe Custom startupProbe that overrides the default one
1417
##
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).
1422
##
1423
resourcesPreset: "small"
1424
## @param dagProcessor.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1425
## Example:
1426
## resources:
1427
## requests:
1428
## cpu: 2
1429
## memory: 512Mi
1430
## limits:
1431
## cpu: 3
1432
## memory: 1024Mi
1433
##
1434
resources: {}
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
1442
##
1443
podSecurityContext:
1444
enabled: true
1445
fsGroupChangePolicy: Always
1446
sysctls: []
1447
supplementalGroups: []
1448
fsGroup: 1001
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
1461
##
1462
containerSecurityContext:
1463
enabled: true
1464
seLinuxOptions: {}
1465
runAsUser: 1001
1466
runAsGroup: 1001
1467
runAsNonRoot: true
1468
privileged: false
1469
allowPrivilegeEscalation: false
1470
readOnlyRootFilesystem: true
1471
capabilities:
1472
drop: ["ALL"]
1473
seccompProfile:
1474
type: "RuntimeDefault"
1475
## @param dagProcessor.lifecycleHooks for the Airflow Dag Processor containers to automate configuration before or after startup
1476
##
1477
lifecycleHooks: {}
1478
## @param dagProcessor.automountServiceAccountToken Mount Service Account token in pod
1479
##
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/
1483
##
1484
hostAliases: []
1485
## @param dagProcessor.podLabels Add extra labels to the Airflow Dag Processor pods
1486
##
1487
podLabels: {}
1488
## @param dagProcessor.podAnnotations Add extra annotations to the Airflow Dag Processor pods
1489
##
1490
podAnnotations: {}
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
1493
##
1494
topologyKey: ""
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
1498
##
1499
affinity: {}
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.
1505
##
1506
nodeAffinityPreset:
1507
## e.g:
1508
## key: "kubernetes.io/e2e-az-name"
1509
##
1510
key: ""
1511
type: ""
1512
## e.g:
1513
## values:
1514
## - e2e-az1
1515
## - e2e-az2
1516
##
1517
values: []
1518
## @param dagProcessor.nodeSelector Node labels for Airflow Dag Processor pods assignment
1519
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1520
##
1521
nodeSelector: {}
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
1524
##
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
1528
##
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/
1532
##
1533
tolerations: []
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
1536
##
1537
topologySpreadConstraints: []
1538
## @param dagProcessor.priorityClassName Priority Class Name
1539
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1540
##
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/
1544
##
1545
schedulerName: ""
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
1548
##
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
1553
##
1554
updateStrategy:
1555
type: RollingUpdate
1556
rollingUpdate: {}
1557
## @param dagProcessor.sidecars Add additional sidecar containers to the Airflow Dag Processor pods
1558
## Example:
1559
## sidecars:
1560
## - name: your-image-name
1561
## image: your-image
1562
## imagePullPolicy: Always
1563
## ports:
1564
## - name: portname
1565
## containerPort: 1234
1566
##
1567
sidecars: []
1568
## @param dagProcessor.initContainers Add additional init containers to the Airflow Dag Processor pods
1569
## Example:
1570
## initContainers:
1571
## - name: your-image-name
1572
## image: your-image
1573
## imagePullPolicy: Always
1574
## ports:
1575
## - name: portname
1576
## containerPort: 1234
1577
##
1578
initContainers: []
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
1582
##
1583
emptyDir:
1584
## @param dagProcessor.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1585
## Possible values: "Memory", ""
1586
##
1587
medium: ""
1588
ephemeral:
1589
## @param dagProcessor.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1590
##
1591
enabled: false
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)
1598
##
1599
storageClass: ""
1600
## @param dagProcessor.ephemeral.annotations Additional annotations for backing PVC
1601
##
1602
annotations: {}
1603
## @param dagProcessor.ephemeral.accessModes Persistent Volume Access Modes
1604
##
1605
accessModes:
1606
- ReadWriteOnce
1607
## @param dagProcessor.ephemeral.size Size of the generic ephemeral volume
1608
##
1609
size: 8Gi
1610
## @param dagProcessor.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Dag Processor containers
1611
##
1612
extraVolumeMounts: []
1613
## @param dagProcessor.extraVolumes Optionally specify extra list of additional volumes for the Airflow Dag Processor pods
1614
##
1615
extraVolumes: []
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
1621
##
1622
pdb:
1623
create: true
1624
minAvailable: ""
1625
maxUnavailable: ""
1626
## Autoscaling configuration
1627
## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
1628
##
1629
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
1635
##
1636
vpa:
1637
enabled: false
1638
annotations: {}
1639
controlledResources: []
1640
maxAllowed: {}
1641
minAllowed: {}
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".
1645
##
1646
updatePolicy:
1647
updateMode: 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
1653
##
1654
hpa:
1655
enabled: false
1656
minReplicas: ""
1657
maxReplicas: ""
1658
targetCPU: ""
1659
targetMemory: ""
1660
## Airflow Dag Processor Network Policies
1661
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1662
##
1663
networkPolicy:
1664
## @param dagProcessor.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1665
##
1666
enabled: true
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).
1672
##
1673
allowExternal: true
1674
## @param dagProcessor.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1675
##
1676
allowExternalEgress: true
1677
## @param dagProcessor.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1678
## e.g:
1679
## extraIngress:
1680
## - ports:
1681
## - port: 1234
1682
## from:
1683
## - podSelector:
1684
## - matchLabels:
1685
## - role: frontend
1686
## - podSelector:
1687
## - matchExpressions:
1688
## - key: role
1689
## operator: In
1690
## values:
1691
## - frontend
1692
extraIngress: []
1693
## @param dagProcessor.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1694
## e.g:
1695
## extraEgress:
1696
## - ports:
1697
## - port: 1234
1698
## to:
1699
## - podSelector:
1700
## - matchLabels:
1701
## - role: frontend
1702
## - podSelector:
1703
## - matchExpressions:
1704
## - key: role
1705
## operator: In
1706
## values:
1707
## - frontend
1708
##
1709
extraEgress: []
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
1712
##
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
1717
##
1718
triggerer:
1719
## @param triggerer.enabled Run Airflow Triggerer as a standalone component
1720
##
1721
enabled: true
1722
## @param triggerer.defaultCapacity How many triggers a single Triggerer can run at once
1723
##
1724
defaultCapacity: 1000
1725
## @param triggerer.replicaCount Number of Airflow Triggerer replicas
1726
##
1727
replicaCount: 1
1728
## @param triggerer.command Override default Airflow Triggerer cmd
1729
##
1730
command: []
1731
## @param triggerer.args Override default Airflow Triggerer args
1732
##
1733
args: []
1734
## @param triggerer.extraEnvVars Add extra environment variables to Airflow Triggerer containers
1735
##
1736
extraEnvVars: []
1737
## @param triggerer.extraEnvVarsCM ConfigMap with extra environment variables
1738
##
1739
extraEnvVarsCM: ""
1740
## @param triggerer.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow triggerer pods
1741
##
1742
extraEnvVarsCMs: []
1743
## @param triggerer.extraEnvVarsSecret Secret with extra environment variables
1744
##
1745
extraEnvVarsSecret: ""
1746
## @param triggerer.containerPorts.logs Airflow Triggerer logs container port
1747
##
1748
containerPorts:
1749
logs: 8794
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
1758
##
1759
livenessProbe:
1760
enabled: true
1761
initialDelaySeconds: 180
1762
periodSeconds: 20
1763
timeoutSeconds: 15
1764
failureThreshold: 6
1765
successThreshold: 1
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
1772
##
1773
readinessProbe:
1774
enabled: true
1775
initialDelaySeconds: 30
1776
periodSeconds: 10
1777
timeoutSeconds: 15
1778
failureThreshold: 6
1779
successThreshold: 1
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
1786
##
1787
startupProbe:
1788
enabled: false
1789
initialDelaySeconds: 60
1790
periodSeconds: 10
1791
timeoutSeconds: 1
1792
failureThreshold: 15
1793
successThreshold: 1
1794
## @param triggerer.customLivenessProbe Custom livenessProbe that overrides the default one
1795
##
1796
customLivenessProbe: {}
1797
## @param triggerer.customReadinessProbe Custom readinessProbe that overrides the default one
1798
##
1799
customReadinessProbe: {}
1800
## @param triggerer.customStartupProbe Custom startupProbe that overrides the default one
1801
##
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).
1806
##
1807
resourcesPreset: "small"
1808
## @param triggerer.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1809
## Example:
1810
## resources:
1811
## requests:
1812
## cpu: 2
1813
## memory: 512Mi
1814
## limits:
1815
## cpu: 3
1816
## memory: 1024Mi
1817
##
1818
resources: {}
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
1826
##
1827
podSecurityContext:
1828
enabled: true
1829
fsGroupChangePolicy: Always
1830
sysctls: []
1831
supplementalGroups: []
1832
fsGroup: 1001
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
1845
##
1846
containerSecurityContext:
1847
enabled: true
1848
seLinuxOptions: {}
1849
runAsUser: 1001
1850
runAsGroup: 1001
1851
runAsNonRoot: true
1852
privileged: false
1853
allowPrivilegeEscalation: false
1854
readOnlyRootFilesystem: true
1855
capabilities:
1856
drop: ["ALL"]
1857
seccompProfile:
1858
type: "RuntimeDefault"
1859
## @param triggerer.lifecycleHooks for the Airflow Triggerer containers to automate configuration before or after startup
1860
##
1861
lifecycleHooks: {}
1862
## @param triggerer.automountServiceAccountToken Mount Service Account token in pod
1863
##
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/
1867
##
1868
hostAliases: []
1869
## @param triggerer.podLabels Add extra labels to the Airflow Triggerer pods
1870
##
1871
podLabels: {}
1872
## @param triggerer.podAnnotations Add extra annotations to the Airflow Triggerer pods
1873
##
1874
podAnnotations: {}
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
1877
##
1878
topologyKey: ""
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
1882
##
1883
affinity: {}
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.
1889
##
1890
nodeAffinityPreset:
1891
## e.g:
1892
## key: "kubernetes.io/e2e-az-name"
1893
##
1894
key: ""
1895
type: ""
1896
## e.g:
1897
## values:
1898
## - e2e-az1
1899
## - e2e-az2
1900
##
1901
values: []
1902
## @param triggerer.nodeSelector Node labels for Airflow Triggerer pods assignment
1903
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1904
##
1905
nodeSelector: {}
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
1908
##
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
1912
##
1913
podAntiAffinityPreset: soft
1914
## @param triggerer.tolerations Tolerations for Airflow Triggerer pods assignment
1915
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1916
##
1917
tolerations: []
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
1920
##
1921
topologySpreadConstraints: []
1922
## @param triggerer.priorityClassName Priority Class Name
1923
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
1924
##
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/
1928
##
1929
schedulerName: ""
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
1932
##
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
1936
##
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
1941
##
1942
updateStrategy:
1943
type: RollingUpdate
1944
rollingUpdate: {}
1945
## @param triggerer.sidecars Add additional sidecar containers to the Airflow Triggerer pods
1946
## Example:
1947
## sidecars:
1948
## - name: your-image-name
1949
## image: your-image
1950
## imagePullPolicy: Always
1951
## ports:
1952
## - name: portname
1953
## containerPort: 1234
1954
##
1955
sidecars: []
1956
## @param triggerer.initContainers Add additional init containers to the Airflow Triggerer pods
1957
## Example:
1958
## initContainers:
1959
## - name: your-image-name
1960
## image: your-image
1961
## imagePullPolicy: Always
1962
## ports:
1963
## - name: portname
1964
## containerPort: 1234
1965
##
1966
initContainers: []
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
1970
##
1971
emptyDir:
1972
## @param triggerer.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
1973
## Possible values: "Memory", ""
1974
##
1975
medium: ""
1976
ephemeral:
1977
## @param triggerer.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
1978
##
1979
enabled: false
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)
1986
##
1987
storageClass: ""
1988
## @param triggerer.ephemeral.annotations Additional annotations for backing PVC
1989
##
1990
annotations: {}
1991
## @param triggerer.ephemeral.accessModes Persistent Volume Access Modes
1992
##
1993
accessModes:
1994
- ReadWriteOnce
1995
## @param triggerer.ephemeral.size Size of the generic ephemeral volume
1996
##
1997
size: 8Gi
1998
## @param triggerer.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow Triggerer containers
1999
##
2000
extraVolumeMounts: []
2001
## @param triggerer.extraVolumes Optionally specify extra list of additional volumes for the Airflow Triggerer pods
2002
##
2003
extraVolumes: []
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
2009
##
2010
pdb:
2011
create: true
2012
minAvailable: ""
2013
maxUnavailable: ""
2014
## Autoscaling configuration
2015
## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2016
##
2017
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
2023
##
2024
vpa:
2025
enabled: false
2026
annotations: {}
2027
controlledResources: []
2028
maxAllowed: {}
2029
minAllowed: {}
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".
2033
##
2034
updatePolicy:
2035
updateMode: 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
2041
##
2042
hpa:
2043
enabled: false
2044
minReplicas: ""
2045
maxReplicas: ""
2046
targetCPU: ""
2047
targetMemory: ""
2048
## Airflow Triggerer Persistence Parameters
2049
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes
2050
##
2051
persistence:
2052
## @param triggerer.persistence.enabled Enable logs persistence using Persistent Volume Claims
2053
##
2054
enabled: true
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)
2061
##
2062
storageClass: ""
2063
## @param triggerer.persistence.annotations Additional Persistent Volume Claim annotations
2064
##
2065
annotations: {}
2066
## @param triggerer.persistence.accessModes Persistent Volume Access Modes
2067
##
2068
accessModes:
2069
- ReadWriteOnce
2070
## @param triggerer.persistence.size Size of logs volume
2071
##
2072
size: 8Gi
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
2075
## E.g.
2076
## selector:
2077
## matchLabels:
2078
## app: my-app
2079
##
2080
selector: {}
2081
## @param triggerer.persistence.dataSource Custom PVC data source
2082
##
2083
dataSource: {}
2084
## @param triggerer.persistence.existingClaim The name of an existing PVC to use for persistence (only if triggerer.replicaCount=1)
2085
##
2086
existingClaim: ""
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
2092
##
2093
persistentVolumeClaimRetentionPolicy:
2094
enabled: false
2095
whenScaled: Retain
2096
whenDeleted: Retain
2097
## Airflow Triggerer Service
2098
##
2099
service:
2100
## @param triggerer.service.type Airflow Triggerer service type
2101
##
2102
type: ClusterIP
2103
## @param triggerer.service.ports.logs Airflow Triggerer service logs port
2104
##
2105
ports:
2106
logs: 8794
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>
2110
##
2111
nodePorts:
2112
logs: ""
2113
## @param triggerer.service.clusterIP Airflow Triggerer service Cluster IP
2114
## e.g.:
2115
## clusterIP: None
2116
##
2117
clusterIP: ""
2118
## @param triggerer.service.loadBalancerIP Airflow Triggerer service Load Balancer IP
2119
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2120
##
2121
loadBalancerIP: ""
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
2124
## e.g:
2125
## loadBalancerSourceRanges:
2126
## - 10.10.10.0/24
2127
##
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
2131
##
2132
externalTrafficPolicy: Cluster
2133
## @param triggerer.service.annotations Additional custom annotations for Airflow Triggerer service
2134
##
2135
annotations: {}
2136
## @param triggerer.service.extraPorts Extra ports to expose in Airflow Triggerer service (normally used with the `triggerer.sidecars` value)
2137
##
2138
extraPorts: []
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/
2142
##
2143
sessionAffinity: None
2144
## @param triggerer.service.sessionAffinityConfig Additional settings for the sessionAffinity
2145
## sessionAffinityConfig:
2146
## clientIP:
2147
## timeoutSeconds: 300
2148
##
2149
sessionAffinityConfig: {}
2150
## Airflow Triggerer Network Policies
2151
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2152
##
2153
networkPolicy:
2154
## @param triggerer.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2155
##
2156
enabled: true
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).
2162
##
2163
allowExternal: true
2164
## @param triggerer.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2165
##
2166
allowExternalEgress: true
2167
## @param triggerer.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2168
## e.g:
2169
## extraIngress:
2170
## - ports:
2171
## - port: 1234
2172
## from:
2173
## - podSelector:
2174
## - matchLabels:
2175
## - role: frontend
2176
## - podSelector:
2177
## - matchExpressions:
2178
## - key: role
2179
## operator: In
2180
## values:
2181
## - frontend
2182
extraIngress: []
2183
## @param triggerer.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2184
## e.g:
2185
## extraEgress:
2186
## - ports:
2187
## - port: 1234
2188
## to:
2189
## - podSelector:
2190
## - matchLabels:
2191
## - role: frontend
2192
## - podSelector:
2193
## - matchExpressions:
2194
## - key: role
2195
## operator: In
2196
## values:
2197
## - frontend
2198
##
2199
extraEgress: []
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
2202
##
2203
ingressNSMatchLabels: {}
2204
ingressNSPodMatchLabels: {}
2205
## @section Airflow worker parameters
2206
##
2207
worker:
2208
## @param worker.command Override default container command (useful when using custom images)
2209
##
2210
command: []
2211
## @param worker.args Override default container args (useful when using custom images)
2212
##
2213
args: []
2214
## @param worker.extraEnvVars Array with extra environment variables to add Airflow worker pods
2215
##
2216
extraEnvVars: []
2217
## @param worker.extraEnvVarsCM ConfigMap containing extra environment variables for Airflow worker pods
2218
##
2219
extraEnvVarsCM: ""
2220
## @param worker.extraEnvVarsCMs List of ConfigMaps with extra environment variables for Airflow worker pods
2221
##
2222
extraEnvVarsCMs: []
2223
## @param worker.extraEnvVarsSecret Secret containing extra environment variables (in case of sensitive data) for Airflow worker pods
2224
##
2225
extraEnvVarsSecret: ""
2226
## @param worker.extraEnvVarsSecrets List of secrets with extra environment variables for Airflow worker pods
2227
##
2228
extraEnvVarsSecrets: []
2229
## @param worker.containerPorts.http Airflow worker HTTP container port
2230
##
2231
containerPorts:
2232
http: 8793
2233
## @param worker.replicaCount Number of Airflow worker replicas
2234
##
2235
replicaCount: 1
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
2244
##
2245
livenessProbe:
2246
enabled: true
2247
initialDelaySeconds: 180
2248
periodSeconds: 20
2249
timeoutSeconds: 5
2250
failureThreshold: 6
2251
successThreshold: 1
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
2258
##
2259
readinessProbe:
2260
enabled: true
2261
initialDelaySeconds: 30
2262
periodSeconds: 10
2263
timeoutSeconds: 5
2264
failureThreshold: 6
2265
successThreshold: 1
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
2272
##
2273
startupProbe:
2274
enabled: false
2275
initialDelaySeconds: 60
2276
periodSeconds: 10
2277
timeoutSeconds: 1
2278
failureThreshold: 15
2279
successThreshold: 1
2280
## @param worker.customLivenessProbe Custom livenessProbe that overrides the default one
2281
##
2282
customLivenessProbe: {}
2283
## @param worker.customReadinessProbe Custom readinessProbe that overrides the default one
2284
##
2285
customReadinessProbe: {}
2286
## @param worker.customStartupProbe Custom startupProbe that overrides the default one
2287
##
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).
2292
##
2293
resourcesPreset: "large"
2294
## @param worker.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2295
## Example:
2296
## resources:
2297
## requests:
2298
## cpu: 2
2299
## memory: 512Mi
2300
## limits:
2301
## cpu: 3
2302
## memory: 1024Mi
2303
##
2304
resources: {}
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
2312
##
2313
podSecurityContext:
2314
enabled: true
2315
fsGroupChangePolicy: Always
2316
sysctls: []
2317
supplementalGroups: []
2318
fsGroup: 1001
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
2331
##
2332
containerSecurityContext:
2333
enabled: true
2334
seLinuxOptions: {}
2335
runAsUser: 1001
2336
runAsGroup: 1001
2337
runAsNonRoot: true
2338
privileged: false
2339
allowPrivilegeEscalation: false
2340
readOnlyRootFilesystem: true
2341
capabilities:
2342
drop: ["ALL"]
2343
seccompProfile:
2344
type: "RuntimeDefault"
2345
## @param worker.lifecycleHooks for the Airflow worker container(s) to automate configuration before or after startup
2346
##
2347
lifecycleHooks: {}
2348
## @param worker.automountServiceAccountToken Mount Service Account token in pod
2349
##
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/
2353
##
2354
hostAliases: []
2355
## @param worker.podLabels Add extra labels to the Airflow worker pods
2356
##
2357
podLabels: {}
2358
## @param worker.podAnnotations Add extra annotations to the Airflow worker pods
2359
##
2360
podAnnotations: {}
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
2363
##
2364
topologyKey: ""
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
2368
##
2369
affinity: {}
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.
2375
##
2376
nodeAffinityPreset:
2377
## e.g:
2378
## key: "kubernetes.io/e2e-az-name"
2379
##
2380
key: ""
2381
type: ""
2382
## e.g:
2383
## values:
2384
## - e2e-az1
2385
## - e2e-az2
2386
##
2387
values: []
2388
## @param worker.nodeSelector Node labels for Airflow worker pods assignment
2389
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2390
##
2391
nodeSelector: {}
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
2394
##
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
2398
##
2399
podAntiAffinityPreset: soft
2400
## @param worker.tolerations Tolerations for Airflow worker pods assignment
2401
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2402
##
2403
tolerations: []
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
2406
##
2407
topologySpreadConstraints: []
2408
## @param worker.priorityClassName Priority Class Name
2409
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2410
##
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/
2414
##
2415
schedulerName: ""
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
2418
##
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
2422
##
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
2427
##
2428
updateStrategy:
2429
type: RollingUpdate
2430
rollingUpdate: {}
2431
## @param worker.sidecars Add additional sidecar containers to the Airflow worker pods
2432
## Example:
2433
## sidecars:
2434
## - name: your-image-name
2435
## image: your-image
2436
## imagePullPolicy: Always
2437
## ports:
2438
## - name: portname
2439
## containerPort: 1234
2440
##
2441
sidecars: []
2442
## @param worker.initContainers Add additional init containers to the Airflow worker pods
2443
## Example:
2444
## initContainers:
2445
## - name: your-image-name
2446
## image: your-image
2447
## imagePullPolicy: Always
2448
## ports:
2449
## - name: portname
2450
## containerPort: 1234
2451
##
2452
initContainers: []
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
2456
##
2457
emptyDir:
2458
## @param worker.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2459
## Possible values: "Memory", ""
2460
##
2461
medium: ""
2462
ephemeral:
2463
## @param worker.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2464
##
2465
enabled: false
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)
2472
##
2473
storageClass: ""
2474
## @param worker.ephemeral.annotations Additional annotations for backing PVC
2475
##
2476
annotations: {}
2477
## @param worker.ephemeral.accessModes Persistent Volume Access Modes
2478
##
2479
accessModes:
2480
- ReadWriteOnce
2481
## @param worker.ephemeral.size Size of the generic ephemeral volume
2482
##
2483
size: 8Gi
2484
## @param worker.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow worker pods
2485
##
2486
extraVolumeMounts: []
2487
## @param worker.extraVolumes Optionally specify extra list of additional volumes for the Airflow worker pods
2488
##
2489
extraVolumes: []
2490
## @param worker.extraVolumeClaimTemplates Optionally specify extra list of volumesClaimTemplates for the Airflow worker statefulset
2491
##
2492
extraVolumeClaimTemplates: []
2493
## @param worker.podTemplate Template to replace the default one to be use when `executor=KubernetesExecutor` to create Airflow worker pods
2494
##
2495
podTemplate: {}
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
2501
##
2502
pdb:
2503
create: true
2504
minAvailable: ""
2505
maxUnavailable: ""
2506
## Autoscaling configuration
2507
## ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/
2508
##
2509
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
2515
##
2516
vpa:
2517
enabled: false
2518
annotations: {}
2519
controlledResources: []
2520
maxAllowed: {}
2521
minAllowed: {}
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".
2525
##
2526
updatePolicy:
2527
updateMode: 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
2533
##
2534
hpa:
2535
enabled: false
2536
minReplicas: 1
2537
maxReplicas: 3
2538
targetCPU: 80
2539
targetMemory: 80
2540
## Worker Network Policies
2541
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2542
##
2543
networkPolicy:
2544
## @param worker.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2545
##
2546
enabled: true
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).
2552
##
2553
allowExternal: true
2554
## @param worker.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2555
##
2556
allowExternalEgress: true
2557
## @param worker.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2558
## e.g:
2559
## extraIngress:
2560
## - ports:
2561
## - port: 1234
2562
## from:
2563
## - podSelector:
2564
## - matchLabels:
2565
## - role: frontend
2566
## - podSelector:
2567
## - matchExpressions:
2568
## - key: role
2569
## operator: In
2570
## values:
2571
## - frontend
2572
extraIngress: []
2573
## @param worker.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2574
## e.g:
2575
## extraEgress:
2576
## - ports:
2577
## - port: 1234
2578
## to:
2579
## - podSelector:
2580
## - matchLabels:
2581
## - role: frontend
2582
## - podSelector:
2583
## - matchExpressions:
2584
## - key: role
2585
## operator: In
2586
## values:
2587
## - frontend
2588
##
2589
extraEgress: []
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
2592
##
2593
ingressNSMatchLabels: {}
2594
ingressNSPodMatchLabels: {}
2595
## @section Airflow "setup-db" K8s Job parameters
2596
##
2597
setupDBJob:
2598
## @param setupDBJob.enabled Enable setting up the Airflow database using a K8s job (otherwise it's done by the Webserver on startup)
2599
##
2600
enabled: true
2601
## @param setupDBJob.backoffLimit set backoff limit of the job
2602
##
2603
backoffLimit: 10
2604
## @param setupDBJob.command Override default container command on "setup-db" job's containers
2605
##
2606
command: []
2607
## @param setupDBJob.args Override default container args on "setup-db" job's containers
2608
##
2609
args: []
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
2623
##
2624
containerSecurityContext:
2625
enabled: true
2626
seLinuxOptions: {}
2627
runAsUser: 1001
2628
runAsGroup: 1001
2629
runAsNonRoot: true
2630
readOnlyRootFilesystem: true
2631
privileged: false
2632
allowPrivilegeEscalation: false
2633
capabilities:
2634
add: []
2635
drop: ["ALL"]
2636
seccompProfile:
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
2645
##
2646
podSecurityContext:
2647
enabled: true
2648
fsGroupChangePolicy: Always
2649
sysctls: []
2650
supplementalGroups: []
2651
fsGroup: 1001
2652
## @param setupDBJob.extraEnvVars Array containing extra env vars to configure the Airflow "setup-db" job's container
2653
##
2654
extraEnvVars: []
2655
## @param setupDBJob.extraEnvVarsCM ConfigMap containing extra env vars to configure the Airflow "setup-db" job's container
2656
##
2657
extraEnvVarsCM: ""
2658
## @param setupDBJob.extraEnvVarsSecret Secret containing extra env vars to configure the Airflow "setup-db" job's container (in case of sensitive data)
2659
##
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).
2664
##
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)
2667
## E.g:
2668
## resources:
2669
## requests:
2670
## cpu: 2
2671
## memory: 512Mi
2672
## limits:
2673
## cpu: 3
2674
## memory: 1024Mi
2675
##
2676
resources: {}
2677
## @param setupDBJob.automountServiceAccountToken Mount Service Account token in Airflow "setup-db" job's pods
2678
##
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/
2682
##
2683
hostAliases: []
2684
## @param setupDBJob.annotations [object] Add annotations to the Airflow "setup-db" job
2685
##
2686
annotations: {}
2687
## @param setupDBJob.podLabels Additional pod labels for Airflow "setup-db" job
2688
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2689
##
2690
podLabels: {}
2691
## @param setupDBJob.podAnnotations Additional pod annotations for Airflow "setup-db" job
2692
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2693
##
2694
podAnnotations: {}
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
2697
##
2698
topologyKey: ""
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
2702
##
2703
affinity: {}
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.
2709
##
2710
nodeAffinityPreset:
2711
## e.g:
2712
## key: "kubernetes.io/e2e-az-name"
2713
##
2714
key: ""
2715
type: ""
2716
## e.g:
2717
## values:
2718
## - e2e-az1
2719
## - e2e-az2
2720
##
2721
values: []
2722
## @param setupDBJob.nodeSelector Node labels for Airflow setup-db pods assignment
2723
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2724
##
2725
nodeSelector: {}
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
2728
##
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
2732
##
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/
2736
##
2737
tolerations: []
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
2740
##
2741
topologySpreadConstraints: []
2742
## @param setupDBJob.priorityClassName Priority Class Name
2743
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
2744
##
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/
2748
##
2749
schedulerName: ""
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
2752
##
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
2757
##
2758
emptyDir:
2759
## @param setupDBJob.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
2760
## Possible values: "Memory", ""
2761
##
2762
medium: ""
2763
ephemeral:
2764
## @param setupDBJob.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
2765
##
2766
enabled: false
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)
2773
##
2774
storageClass: ""
2775
## @param setupDBJob.ephemeral.annotations Additional annotations for backing PVC
2776
##
2777
annotations: {}
2778
## @param setupDBJob.ephemeral.accessModes Persistent Volume Access Modes
2779
##
2780
accessModes:
2781
- ReadWriteOnce
2782
## @param setupDBJob.ephemeral.size Size of the generic ephemeral volume
2783
##
2784
size: 8Gi
2785
## @param setupDBJob.extraVolumes Optionally specify extra list of additional volumes for Airflow "setup-db" job's pods
2786
##
2787
extraVolumes: []
2788
## @param setupDBJob.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Airflow "setup-db" job's containers
2789
##
2790
extraVolumeMounts: []
2791
## @param setupDBJob.initContainers Add additional init containers to the Airflow "setup-db" job's pods
2792
## Example:
2793
## initContainers:
2794
## - name: your-image-name
2795
## image: your-image
2796
## imagePullPolicy: Always
2797
## ports:
2798
## - name: portname
2799
## containerPort: 1234
2800
##
2801
initContainers: []
2802
## @section Airflow ldap parameters
2803
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
2819
##
2820
ldap:
2821
enabled: false
2822
uri: "ldap://ldap_server:389"
2823
basedn: "dc=example,dc=org"
2824
searchAttribute: "cn"
2825
firstnameField: "givenName"
2826
lastnameField: "sn"
2827
emailField: "mail"
2828
binddn: "cn=admin,dc=example,dc=org"
2829
bindpw: ""
2830
existingSecret: ""
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
2841
##
2842
tls:
2843
enabled: false
2844
allowSelfSigned: true
2845
certificatesSecret: ""
2846
certificatesMountPath: /opt/iamguarded/airflow/conf/certs
2847
CAFilename: ""
2848
## @section Traffic Exposure Parameters
2849
2850
## Airflow service parameters
2851
##
2852
service:
2853
## @param service.type Airflow service type
2854
##
2855
type: ClusterIP
2856
## @param service.ports.http Airflow service HTTP port
2857
##
2858
ports:
2859
http: 8080
2860
## Node ports to expose
2861
## @param service.nodePorts.http Node port for HTTP
2862
## NOTE: choose port between <30000-32767>
2863
##
2864
nodePorts:
2865
http: ""
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/
2869
##
2870
sessionAffinity: None
2871
## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
2872
## sessionAffinityConfig:
2873
## clientIP:
2874
## timeoutSeconds: 300
2875
##
2876
sessionAffinityConfig: {}
2877
## @param service.clusterIP Airflow service Cluster IP
2878
## e.g.:
2879
## clusterIP: None
2880
##
2881
clusterIP: ""
2882
## @param service.loadBalancerIP Airflow service Load Balancer IP
2883
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2884
##
2885
loadBalancerIP: ""
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
2888
## e.g:
2889
## loadBalancerSourceRanges:
2890
## - 10.10.10.0/24
2891
##
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
2895
##
2896
externalTrafficPolicy: Cluster
2897
## @param service.annotations Additional custom annotations for Airflow service
2898
##
2899
annotations: {}
2900
## @param service.extraPorts Extra port to expose on Airflow service
2901
##
2902
extraPorts: []
2903
## Airflow ingress parameters
2904
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2905
##
2906
ingress:
2907
## @param ingress.enabled Enable ingress record generation for Airflow
2908
##
2909
enabled: false
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/
2913
##
2914
ingressClassName: ""
2915
## @param ingress.pathType Ingress path type
2916
##
2917
pathType: ImplementationSpecific
2918
## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
2919
##
2920
apiVersion: ""
2921
## @param ingress.hostname Default host for the ingress record
2922
##
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
2926
##
2927
path: /
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
2931
## e.g:
2932
## annotations:
2933
## kubernetes.io/ingress.class: nginx
2934
## cert-manager.io/cluster-issuer: cluster-issuer-name
2935
##
2936
annotations: {}
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 }}`
2939
## You can:
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`
2943
##
2944
tls: false
2945
## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2946
##
2947
selfSigned: false
2948
## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2949
## e.g:
2950
## extraHosts:
2951
## - name: airflow.local
2952
## path: /
2953
##
2954
extraHosts: []
2955
## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2956
## e.g:
2957
## extraPaths:
2958
## - path: /*
2959
## backend:
2960
## serviceName: ssl-redirect
2961
## servicePort: use-annotation
2962
##
2963
extraPaths: []
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
2966
## e.g:
2967
## extraTls:
2968
## - hosts:
2969
## - airflow.local
2970
## secretName: airflow.local-tls
2971
##
2972
extraTls: []
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
2980
## e.g:
2981
## secrets:
2982
## - name: airflow.local-tls
2983
## key: |-
2984
## -----BEGIN RSA PRIVATE KEY-----
2985
## ...
2986
## -----END RSA PRIVATE KEY-----
2987
## certificate: |-
2988
## -----BEGIN CERTIFICATE-----
2989
## ...
2990
## -----END CERTIFICATE-----
2991
##
2992
secrets: []
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
2995
## e.g:
2996
## extraRules:
2997
## - host: example.local
2998
## http:
2999
## path: /
3000
## backend:
3001
## service:
3002
## name: example-svc
3003
## port:
3004
## name: http
3005
##
3006
extraRules: []
3007
## @section Other Parameters
3008
3009
## Service account for Airflow pods to use.
3010
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3011
##
3012
serviceAccount:
3013
## @param serviceAccount.create Enable creation of ServiceAccount for Airflow pods
3014
##
3015
create: true
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
3018
##
3019
name: ""
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
3022
##
3023
automountServiceAccountToken: false
3024
## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
3025
##
3026
annotations: {}
3027
## Role Based Access
3028
## Ref: https://kubernetes.io/docs/admin/authorization/rbac/
3029
## @param rbac.create Create Role and RoleBinding
3030
##
3031
rbac:
3032
create: false
3033
## @param rbac.rules Custom RBAC rules to set
3034
## e.g:
3035
## rules:
3036
## - apiGroups:
3037
## - ""
3038
## resources:
3039
## - pods
3040
## verbs:
3041
## - get
3042
## - list
3043
##
3044
rules: []
3045
## @section StatsD metrics parameters
3046
##
3047
metrics:
3048
## @param metrics.enabled Enable a StatsD exporter that collects StatsD metrics from Airflow components and expose them as Prometheus metrics
3049
##
3050
enabled: false
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
3058
##
3059
image:
3060
registry: cgr.dev
3061
repository: chainguard-private/prometheus-statsd-exporter-iamguarded
3062
tag: 0.31.0
3063
digest: ""
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/
3068
## e.g:
3069
## pullSecrets:
3070
## - myRegistryKeySecretName
3071
##
3072
pullSecrets: []
3073
## @param metrics.configuration Specify content for StatsD exporter's mappings.yml
3074
##
3075
configuration: ""
3076
## @param metrics.existingConfigmap Name of an existing config map containing the StatsD exporter's mappings.yml
3077
##
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)
3081
##
3082
containerPorts:
3083
ingest: 9125
3084
metrics: 9102
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).
3088
##
3089
resourcesPreset: "nano"
3090
## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3091
## Example:
3092
## resources:
3093
## requests:
3094
## cpu: 2
3095
## memory: 512Mi
3096
## limits:
3097
## cpu: 3
3098
## memory: 1024Mi
3099
##
3100
resources: {}
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
3108
##
3109
podSecurityContext:
3110
enabled: true
3111
fsGroupChangePolicy: Always
3112
sysctls: []
3113
supplementalGroups: []
3114
fsGroup: 1001
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
3127
## e.g:
3128
## containerSecurityContext:
3129
## enabled: true
3130
## capabilities:
3131
## drop: ["NET_RAW"]
3132
## readOnlyRootFilesystem: true
3133
##
3134
containerSecurityContext:
3135
enabled: true
3136
seLinuxOptions: {}
3137
runAsUser: 1001
3138
runAsGroup: 1001
3139
runAsNonRoot: true
3140
privileged: false
3141
allowPrivilegeEscalation: false
3142
readOnlyRootFilesystem: true
3143
capabilities:
3144
drop: ["ALL"]
3145
seccompProfile:
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
3155
##
3156
livenessProbe:
3157
enabled: true
3158
initialDelaySeconds: 180
3159
periodSeconds: 20
3160
timeoutSeconds: 5
3161
failureThreshold: 6
3162
successThreshold: 1
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
3169
##
3170
readinessProbe:
3171
enabled: true
3172
initialDelaySeconds: 30
3173
periodSeconds: 10
3174
timeoutSeconds: 5
3175
failureThreshold: 6
3176
successThreshold: 1
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
3183
##
3184
startupProbe:
3185
enabled: false
3186
initialDelaySeconds: 60
3187
periodSeconds: 10
3188
timeoutSeconds: 1
3189
failureThreshold: 15
3190
successThreshold: 1
3191
## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
3192
##
3193
customLivenessProbe: {}
3194
## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
3195
##
3196
customReadinessProbe: {}
3197
## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
3198
##
3199
customStartupProbe: {}
3200
## @param metrics.lifecycleHooks for the StatsD exporter containers' to automate configuration before or after startup
3201
##
3202
lifecycleHooks: {}
3203
## @param metrics.automountServiceAccountToken Mount Service Account token in pod
3204
##
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/
3208
##
3209
hostAliases: []
3210
## @param metrics.podLabels Extra labels for StatsD exporter pods
3211
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3212
##
3213
podLabels: {}
3214
## @param metrics.podAnnotations Extra annotations for StatsD exporter pods
3215
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3216
##
3217
podAnnotations: {}
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
3220
##
3221
topologyKey: ""
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
3224
##
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
3228
##
3229
podAntiAffinityPreset: soft
3230
## Node metrics.affinity preset
3231
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3232
##
3233
nodeAffinityPreset:
3234
## @param metrics.nodeAffinityPreset.type Node affinity preset type. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
3235
##
3236
type: ""
3237
## @param metrics.nodeAffinityPreset.key Node label key to match Ignored if `metrics.affinity` is set.
3238
## E.g.
3239
## key: "kubernetes.io/e2e-az-name"
3240
##
3241
key: ""
3242
## @param metrics.nodeAffinityPreset.values Node label values to match. Ignored if `metrics.affinity` is set.
3243
## E.g.
3244
## values:
3245
## - e2e-az1
3246
## - e2e-az2
3247
##
3248
values: []
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
3252
##
3253
affinity: {}
3254
## @param metrics.nodeSelector Node labels for StatsD exporter pods assignment
3255
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3256
##
3257
nodeSelector: {}
3258
## @param metrics.priorityClassName StatsD exporter pods' priorityClassName
3259
##
3260
priorityClassName: ""
3261
## @param metrics.tolerations Tolerations for pod assignment
3262
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3263
##
3264
tolerations: []
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
3267
##
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/
3271
##
3272
schedulerName: ""
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
3275
##
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
3280
##
3281
emptyDir:
3282
## @param metrics.emptyDir.medium Override emptyDir Volume type, defaults to emptyDir: {}
3283
## Possible values: "Memory", ""
3284
##
3285
medium: ""
3286
ephemeral:
3287
## @param metrics.ephemeral.enabled Use a generic ephemeral volume instead of an emptyDir
3288
##
3289
enabled: false
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)
3296
##
3297
storageClass: ""
3298
## @param metrics.ephemeral.annotations Additional annotations for backing PVC
3299
##
3300
annotations: {}
3301
## @param metrics.ephemeral.accessModes Persistent Volume Access Modes
3302
##
3303
accessModes:
3304
- ReadWriteOnce
3305
## @param metrics.ephemeral.size Size of the generic ephemeral volume
3306
##
3307
size: 8Gi
3308
## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the StatsD exporter pods
3309
##
3310
extraVolumes: []
3311
## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the StatsD exporter containers
3312
##
3313
extraVolumeMounts: []
3314
## StatsD metrics service configuration
3315
##
3316
service:
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)
3319
##
3320
ports:
3321
ingest: 9125
3322
metrics: 9102
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
3325
##
3326
clusterIP: ""
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/
3330
##
3331
sessionAffinity: None
3332
## @param metrics.service.annotations [object] Annotations for the StatsD metrics service
3333
##
3334
annotations:
3335
prometheus.io/scrape: "true"
3336
prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
3337
## Prometheus Operator ServiceMonitor configuration
3338
##
3339
serviceMonitor:
3340
## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (requires `metrics.enabled` to be `true`)
3341
##
3342
enabled: false
3343
## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
3344
##
3345
namespace: ""
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
3348
##
3349
interval: ""
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
3352
##
3353
scrapeTimeout: ""
3354
## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
3355
##
3356
labels: {}
3357
## @param metrics.serviceMonitor.selector Prometheus instance selector labels
3358
##
3359
selector: {}
3360
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
3361
##
3362
relabelings: []
3363
## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
3364
##
3365
metricRelabelings: []
3366
## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
3367
##
3368
honorLabels: false
3369
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
3370
##
3371
jobLabel: ""
3372
## Metrics Network Policies
3373
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3374
##
3375
networkPolicy:
3376
## @param metrics.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
3377
##
3378
enabled: true
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).
3384
##
3385
allowExternal: true
3386
## @param metrics.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3387
##
3388
allowExternalEgress: true
3389
## @param metrics.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3390
## e.g:
3391
## extraIngress:
3392
## - ports:
3393
## - port: 1234
3394
## from:
3395
## - podSelector:
3396
## - matchLabels:
3397
## - role: frontend
3398
## - podSelector:
3399
## - matchExpressions:
3400
## - key: role
3401
## operator: In
3402
## values:
3403
## - frontend
3404
extraIngress: []
3405
## @param metrics.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3406
## e.g:
3407
## extraEgress:
3408
## - ports:
3409
## - port: 1234
3410
## to:
3411
## - podSelector:
3412
## - matchLabels:
3413
## - role: frontend
3414
## - podSelector:
3415
## - matchExpressions:
3416
## - key: role
3417
## operator: In
3418
## values:
3419
## - frontend
3420
##
3421
extraEgress: []
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
3424
##
3425
ingressNSMatchLabels: {}
3426
ingressNSPodMatchLabels: {}
3427
## @section Airflow database parameters
3428
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`)
3437
##
3438
postgresql:
3439
enabled: true
3440
auth:
3441
enablePostgresUser: true
3442
username: ig_airflow
3443
password: ""
3444
database: iamguarded_airflow
3445
existingSecret: ""
3446
architecture: standalone
3447
primary:
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).
3451
##
3452
resourcesPreset: "nano"
3453
## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3454
## Example:
3455
## resources:
3456
## requests:
3457
## cpu: 2
3458
## memory: 512Mi
3459
## limits:
3460
## cpu: 3
3461
## memory: 1024Mi
3462
##
3463
resources: {}
3464
image:
3465
registry: cgr.dev
3466
repository: chainguard-private/postgres-iamguarded
3467
tag: 18.6-r7
3468
digest: ""
3469
metrics:
3470
image:
3471
registry: cgr.dev
3472
repository: chainguard-private/prometheus-postgres-exporter-iamguarded
3473
tag: 0.20.1
3474
digest: ""
3475
volumePermissions:
3476
image:
3477
registry: cgr.dev
3478
repository: chainguard-private/os-shell-iamguarded
3479
tag: 1.0.0
3480
digest: ""
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
3492
##
3493
externalDatabase:
3494
host: localhost
3495
port: 5432
3496
user: ig_airflow
3497
database: iamguarded_airflow
3498
password: ""
3499
sqlConnection: ""
3500
existingSecret: ""
3501
existingSecretPasswordKey: ""
3502
existingSecretSqlConnectionKey: ""
3503
## Redis&reg; chart configuration
3504
## @param redis.enabled Switch to enable or disable the Redis&reg; helm
3505
## @param redis.auth.enabled Enable password authentication
3506
## @param redis.auth.password Redis&reg; password
3507
## @param redis.auth.existingSecret The name of an existing secret with Redis&reg; credentials
3508
## @param redis.architecture Redis&reg; architecture. Allowed values: `standalone` or `replication`
3509
##
3510
redis:
3511
enabled: true
3512
auth:
3513
enabled: true
3514
## Redis&reg; 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
3516
## with Airflow.
3517
## The password value is ignored if existingSecret is set
3518
password: ""
3519
existingSecret: ""
3520
architecture: standalone
3521
master:
3522
## @param redis.master.service.ports.redis Redis&reg; port
3523
##
3524
service:
3525
ports:
3526
redis: 6379
3527
## Redis&reg; 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).
3530
##
3531
resourcesPreset: "nano"
3532
## @param redis.master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3533
## Example:
3534
## resources:
3535
## requests:
3536
## cpu: 2
3537
## memory: 512Mi
3538
## limits:
3539
## cpu: 3
3540
## memory: 1024Mi
3541
##
3542
resources: {}
3543
image:
3544
registry: cgr.dev
3545
repository: chainguard-private/redis-server-iamguarded
3546
tag: 8.10.3
3547
digest: ""
3548
sentinel:
3549
image:
3550
registry: cgr.dev
3551
repository: chainguard-private/redis-sentinel-iamguarded
3552
tag: 8.10.3
3553
digest: ""
3554
metrics:
3555
image:
3556
registry: cgr.dev
3557
repository: chainguard-private/prometheus-redis-exporter-iamguarded
3558
tag: 1.97.0
3559
digest: ""
3560
kubectl:
3561
image:
3562
registry: cgr.dev
3563
repository: chainguard-private/kubectl-iamguarded
3564
tag: 1.37.2
3565
digest: ""
3566
volumePermissions:
3567
image:
3568
registry: cgr.dev
3569
repository: chainguard-private/os-shell-iamguarded
3570
tag: 1.0.0
3571
digest: ""
3572
sysctl:
3573
image:
3574
registry: cgr.dev
3575
repository: chainguard-private/os-shell-iamguarded
3576
tag: 1.0.0
3577
digest: ""
3578
## External Redis&reg; configuration
3579
## All of these values are only used when redis.enabled is set to false
3580
## @param externalRedis.host Redis&reg; host
3581
## @param externalRedis.port Redis&reg; port number
3582
## @param externalRedis.username Redis&reg; username
3583
## @param externalRedis.password Redis&reg; 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
3586
##
3587
externalRedis:
3588
host: localhost
3589
port: 6379
3590
## Most Redis&reg; implementations do not require a username
3591
## to authenticate and it should be enough with the password
3592
username: ""
3593
password: ""
3594
existingSecret: ""
3595
existingSecretPasswordKey: ""
3596

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.