values-sxkj.yaml 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654
  1. # Licensed to the Apache Software Foundation (ASF) under one
  2. # or more contributor license agreements. See the NOTICE file
  3. # distributed with this work for additional information
  4. # regarding copyright ownership. The ASF licenses this file
  5. # to you under the Apache License, Version 2.0 (the
  6. # "License"); you may not use this file except in compliance
  7. # with the License. You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing,
  12. # software distributed under the License is distributed on an
  13. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. # KIND, either express or implied. See the License for the
  15. # specific language governing permissions and limitations
  16. # under the License.
  17. ---
  18. # Default values for airflow.
  19. # This is a YAML-formatted file.
  20. # Declare variables to be passed into your templates.
  21. # Provide a name to substitute for the full names of resources
  22. fullnameOverride: ''
  23. # Provide a name to substitute for the name of the chart
  24. nameOverride: ''
  25. # Provide a Kubernetes version (used for API Version selection) to override the auto-detected version
  26. kubeVersionOverride: ''
  27. # User and group of airflow user
  28. uid: 50000
  29. gid: 0
  30. # Default security context for airflow
  31. securityContext: {}
  32. # runAsUser: 50000
  33. # fsGroup: 0
  34. # runAsGroup: 0
  35. # Airflow home directory
  36. # Used for mount paths
  37. airflowHome: /opt/airflow
  38. # Default airflow repository -- overrides all the specific images below
  39. defaultAirflowRepository: apache/airflow
  40. # Default airflow tag to deploy
  41. defaultAirflowTag: '2.3.0'
  42. # Airflow version (Used to make some decisions based on Airflow Version being deployed)
  43. airflowVersion: '2.3.0'
  44. # Images
  45. images:
  46. airflow:
  47. repository: ~
  48. tag: ~
  49. pullPolicy: IfNotPresent
  50. # To avoid images with user code, you can turn this to 'true' and
  51. # all the 'run-airflow-migrations' and 'wait-for-airflow-migrations' containers/jobs
  52. # will use the images from 'defaultAirflowRepository:defaultAirflowTag' values
  53. # to run and wait for DB migrations .
  54. useDefaultImageForMigration: false
  55. # timeout (in seconds) for airflow-migrations to complete
  56. migrationsWaitTimeout: 60
  57. pod_template:
  58. repository: ~
  59. tag: ~
  60. pullPolicy: IfNotPresent
  61. flower:
  62. repository: ~
  63. tag: ~
  64. pullPolicy: IfNotPresent
  65. statsd:
  66. repository: apache/airflow
  67. tag: airflow-statsd-exporter-2021.04.28-v0.17.0
  68. pullPolicy: IfNotPresent
  69. redis:
  70. repository: redis
  71. tag: 6-bullseye
  72. pullPolicy: IfNotPresent
  73. pgbouncer:
  74. repository: apache/airflow
  75. tag: airflow-pgbouncer-2021.04.28-1.14.0
  76. pullPolicy: IfNotPresent
  77. pgbouncerExporter:
  78. repository: apache/airflow
  79. tag: airflow-pgbouncer-exporter-2021.09.22-0.12.0
  80. pullPolicy: IfNotPresent
  81. gitSync:
  82. repository: registry.cn-hangzhou.aliyuncs.com/sxtest/git-sync
  83. tag: v3.4.0
  84. pullPolicy: IfNotPresent
  85. # Select certain nodes for airflow pods.
  86. nodeSelector: {}
  87. affinity: {}
  88. tolerations: []
  89. # topologySpreadConstraints: []
  90. # Add common labels to all objects and pods defined in this chart.
  91. labels: {}
  92. # Ingress configuration
  93. ingress:
  94. # Enable all ingress resources (deprecated - use ingress.web.enabled and ingress.flower.enabled)
  95. enabled: ~
  96. # Configs for the Ingress of the web Service
  97. web:
  98. # Enable web ingress resource
  99. enabled: true
  100. # Annotations for the web Ingress
  101. annotations: {}
  102. # The path for the web Ingress
  103. path: '/'
  104. # The pathType for the above path (used only with Kubernetes v1.19 and above)
  105. pathType: 'ImplementationSpecific'
  106. # The hostname for the web Ingress (Deprecated - renamed to `ingress.web.hosts`)
  107. host: 'aihub-dag-web.sxkj.com'
  108. # The hostnames or hosts configuration for the web Ingress
  109. hosts: []
  110. # - name: ""
  111. # # configs for web Ingress TLS
  112. # tls:
  113. # # Enable TLS termination for the web Ingress
  114. # enabled: false
  115. # # the name of a pre-created Secret containing a TLS private key and certificate
  116. # secretName: ""
  117. # The Ingress Class for the web Ingress (used only with Kubernetes v1.19 and above)
  118. # ingressClassName: ''
  119. # configs for web Ingress TLS (Deprecated - renamed to `ingress.web.hosts[*].tls`)
  120. tls:
  121. # Enable TLS termination for the web Ingress
  122. enabled: false
  123. # the name of a pre-created Secret containing a TLS private key and certificate
  124. secretName: ''
  125. # HTTP paths to add to the web Ingress before the default path
  126. precedingPaths: []
  127. # Http paths to add to the web Ingress after the default path
  128. succeedingPaths: []
  129. # Configs for the Ingress of the flower Service
  130. flower:
  131. # Enable web ingress resource
  132. enabled: true
  133. # Annotations for the flower Ingress
  134. annotations: {}
  135. # The path for the flower Ingress
  136. path: '/flower'
  137. # The pathType for the above path (used only with Kubernetes v1.19 and above)
  138. pathType: 'ImplementationSpecific'
  139. # The hostname for the flower Ingress (Deprecated - renamed to `ingress.flower.hosts`)
  140. host: 'aihub-dag-web.sxkj.com'
  141. # The hostnames or hosts configuration for the flower Ingress
  142. hosts: []
  143. # - name: ""
  144. # tls:
  145. # # Enable TLS termination for the flower Ingress
  146. # enabled: false
  147. # # the name of a pre-created Secret containing a TLS private key and certificate
  148. # secretName: ""
  149. # The Ingress Class for the flower Ingress (used only with Kubernetes v1.19 and above)
  150. # ingressClassName: ''
  151. # configs for flower Ingress TLS (Deprecated - renamed to `ingress.flower.hosts[*].tls`)
  152. tls:
  153. # Enable TLS termination for the flower Ingress
  154. enabled: false
  155. # the name of a pre-created Secret containing a TLS private key and certificate
  156. secretName: ''
  157. # Network policy configuration
  158. networkPolicies:
  159. # Enabled network policies
  160. enabled: false
  161. # Extra annotations to apply to all
  162. # Airflow pods
  163. airflowPodAnnotations: {}
  164. # Extra annotations to apply to
  165. # main Airflow configmap
  166. airflowConfigAnnotations: {}
  167. # `airflow_local_settings` file as a string (can be templated).
  168. airflowLocalSettings: |-
  169. {{- if semverCompare ">=2.2.0" .Values.airflowVersion }}
  170. {{- if not (or .Values.webserverSecretKey .Values.webserverSecretKeySecretName) }}
  171. from airflow.www.utils import UIAlert
  172. DASHBOARD_UIALERTS = [
  173. UIAlert(
  174. 'Usage of a dynamic webserver secret key detected. We recommend a static webserver secret key instead.'
  175. ' See the <a href='
  176. '"https://airflow.apache.org/docs/helm-chart/stable/production-guide.html#webserver-secret-key">'
  177. 'Helm Chart Production Guide</a> for more details.',
  178. category="warning",
  179. roles=["Admin"],
  180. html=True,
  181. )
  182. ]
  183. {{- end }}
  184. {{- end }}
  185. # Enable RBAC (default on most clusters these days)
  186. rbac:
  187. # Specifies whether RBAC resources should be created
  188. create: true
  189. createSCCRoleBinding: false
  190. # Airflow executor
  191. # One of: LocalExecutor, LocalKubernetesExecutor, CeleryExecutor, KubernetesExecutor, CeleryKubernetesExecutor
  192. # executor: 'CeleryExecutor'
  193. executor: 'CeleryKubernetesExecutor'
  194. # If this is true and using LocalExecutor/KubernetesExecutor/CeleryKubernetesExecutor, the scheduler's
  195. # service account will have access to communicate with the api-server and launch pods.
  196. # If this is true and using CeleryExecutor/KubernetesExecutor/CeleryKubernetesExecutor, the workers
  197. # will be able to launch pods.
  198. allowPodLaunching: true
  199. # Environment variables for all airflow containers
  200. env: []
  201. # - name: ""
  202. # value: ""
  203. # Secrets for all airflow containers
  204. secret: []
  205. # - envName: ""
  206. # secretName: ""
  207. # secretKey: ""
  208. # Enables selected built-in secrets that are set via environment variables by default.
  209. # Those secrets are provided by the Helm Chart secrets by default but in some cases you
  210. # might want to provide some of those variables with _CMD or _SECRET variable, and you should
  211. # in this case disable setting of those variables by setting the relevant configuration to false.
  212. enableBuiltInSecretEnvVars:
  213. AIRFLOW__CORE__FERNET_KEY: true
  214. # For Airflow <2.3, backward compatibility; moved to [database] in 2.3
  215. AIRFLOW__CORE__SQL_ALCHEMY_CONN: true
  216. AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: true
  217. AIRFLOW_CONN_AIRFLOW_DB: true
  218. AIRFLOW__WEBSERVER__SECRET_KEY: true
  219. AIRFLOW__CELERY__CELERY_RESULT_BACKEND: true
  220. AIRFLOW__CELERY__RESULT_BACKEND: true
  221. AIRFLOW__CELERY__BROKER_URL: true
  222. AIRFLOW__ELASTICSEARCH__HOST: true
  223. AIRFLOW__ELASTICSEARCH__ELASTICSEARCH_HOST: true
  224. # Extra secrets that will be managed by the chart
  225. # (You can use them with extraEnv or extraEnvFrom or some of the extraVolumes values).
  226. # The format is "key/value" where
  227. # * key (can be templated) is the name of the secret that will be created
  228. # * value: an object with the standard 'data' or 'stringData' key (or both).
  229. # The value associated with those keys must be a string (can be templated)
  230. extraSecrets: {}
  231. # eg:
  232. # extraSecrets:
  233. # '{{ .Release.Name }}-airflow-connections':
  234. # type: 'Opaque'
  235. # data: |
  236. # AIRFLOW_CONN_GCP: 'base64_encoded_gcp_conn_string'
  237. # AIRFLOW_CONN_AWS: 'base64_encoded_aws_conn_string'
  238. # stringData: |
  239. # AIRFLOW_CONN_OTHER: 'other_conn'
  240. # '{{ .Release.Name }}-other-secret-name-suffix':
  241. # data: |
  242. # ...
  243. # Extra ConfigMaps that will be managed by the chart
  244. # (You can use them with extraEnv or extraEnvFrom or some of the extraVolumes values).
  245. # The format is "key/value" where
  246. # * key (can be templated) is the name of the configmap that will be created
  247. # * value: an object with the standard 'data' key.
  248. # The value associated with this keys must be a string (can be templated)
  249. extraConfigMaps: {}
  250. # eg:
  251. # extraConfigMaps:
  252. # '{{ .Release.Name }}-airflow-variables':
  253. # data: |
  254. # AIRFLOW_VAR_HELLO_MESSAGE: "Hi!"
  255. # AIRFLOW_VAR_KUBERNETES_NAMESPACE: "{{ .Release.Namespace }}"
  256. # Extra env 'items' that will be added to the definition of airflow containers
  257. # a string is expected (can be templated).
  258. # TODO: difference from `env`? This is a templated string. Probably should template `env` and remove this.
  259. extraEnv: ~
  260. # eg:
  261. # extraEnv: |
  262. # - name: AIRFLOW__CORE__LOAD_EXAMPLES
  263. # value: 'True'
  264. # Extra envFrom 'items' that will be added to the definition of airflow containers
  265. # A string is expected (can be templated).
  266. extraEnvFrom: ~
  267. # eg:
  268. # extraEnvFrom: |
  269. # - secretRef:
  270. # name: '{{ .Release.Name }}-airflow-connections'
  271. # - configMapRef:
  272. # name: '{{ .Release.Name }}-airflow-variables'
  273. # Airflow database & redis config
  274. data:
  275. # If secret names are provided, use those secrets
  276. metadataSecretName: ~
  277. resultBackendSecretName: ~
  278. brokerUrlSecretName: ~
  279. # Otherwise pass connection values in
  280. metadataConnection:
  281. user: postgres
  282. pass: postgres
  283. protocol: postgresql
  284. host: 192.168.199.109 #postgres-postgresql
  285. port: 5432
  286. db: postgres
  287. sslmode: disable
  288. # resultBackendConnection defaults to the same database as metadataConnection
  289. resultBackendConnection: ~
  290. # or, you can use a different database
  291. # resultBackendConnection:
  292. # user: postgres
  293. # pass: postgres
  294. # protocol: postgresql
  295. # host: ~
  296. # port: 5432
  297. # db: postgres
  298. # sslmode: disable
  299. # Note: brokerUrl can only be set during install, not upgrade
  300. brokerUrl: ~
  301. # Fernet key settings
  302. # Note: fernetKey can only be set during install, not upgrade
  303. fernetKey: ~
  304. fernetKeySecretName: ~
  305. # Flask secret key for Airflow Webserver: `[webserver] secret_key` in airflow.cfg
  306. webserverSecretKey: ~
  307. webserverSecretKeySecretName: ~
  308. # In order to use kerberos you need to create secret containing the keytab file
  309. # The secret name should follow naming convention of the application where resources are
  310. # name {{ .Release-name }}-<POSTFIX>. In case of the keytab file, the postfix is "kerberos-keytab"
  311. # So if your release is named "my-release" the name of the secret should be "my-release-kerberos-keytab"
  312. #
  313. # The Keytab content should be available in the "kerberos.keytab" key of the secret.
  314. #
  315. # apiVersion: v1
  316. # kind: Secret
  317. # data:
  318. # kerberos.keytab: <base64_encoded keytab file content>
  319. # type: Opaque
  320. #
  321. #
  322. # If you have such keytab file you can do it with similar
  323. #
  324. # kubectl create secret generic {{ .Release.name }}-kerberos-keytab --from-file=kerberos.keytab
  325. #
  326. #
  327. # Alternatively, instead of manually creating the secret, it is possible to specify
  328. # kerberos.keytabBase64Content parameter. This parameter should contain base64 encoded keytab.
  329. #
  330. kerberos:
  331. enabled: false
  332. ccacheMountPath: /var/kerberos-ccache
  333. ccacheFileName: cache
  334. configPath: /etc/krb5.conf
  335. keytabBase64Content: ~
  336. keytabPath: /etc/airflow.keytab
  337. principal: airflow@FOO.COM
  338. reinitFrequency: 3600
  339. config: |
  340. # This is an example config showing how you can use templating and how "example" config
  341. # might look like. It works with the test kerberos server that we are using during integration
  342. # testing at Apache Airflow (see `scripts/ci/docker-compose/integration-kerberos.yml` but in
  343. # order to make it production-ready you must replace it with your own configuration that
  344. # Matches your kerberos deployment. Administrators of your Kerberos instance should
  345. # provide the right configuration.
  346. [logging]
  347. default = "FILE:{{ template "airflow_logs_no_quote" . }}/kerberos_libs.log"
  348. kdc = "FILE:{{ template "airflow_logs_no_quote" . }}/kerberos_kdc.log"
  349. admin_server = "FILE:{{ template "airflow_logs_no_quote" . }}/kadmind.log"
  350. [libdefaults]
  351. default_realm = FOO.COM
  352. ticket_lifetime = 10h
  353. renew_lifetime = 7d
  354. forwardable = true
  355. [realms]
  356. FOO.COM = {
  357. kdc = kdc-server.foo.com
  358. admin_server = admin_server.foo.com
  359. }
  360. # Airflow Worker Config
  361. workers:
  362. # Number of airflow celery workers in StatefulSet
  363. replicas: 2
  364. # Command to use when running Airflow workers (templated).
  365. command: ~
  366. # Args to use when running Airflow workers (templated).
  367. args:
  368. - 'bash'
  369. - '-c'
  370. # The format below is necessary to get `helm lint` happy
  371. - |-
  372. exec \
  373. airflow {{ semverCompare ">=2.0.0" .Values.airflowVersion | ternary "celery worker" "worker" }}
  374. # Update Strategy when worker is deployed as a StatefulSet
  375. updateStrategy: ~
  376. # Update Strategy when worker is deployed as a Deployment
  377. strategy:
  378. rollingUpdate:
  379. maxSurge: '100%'
  380. maxUnavailable: '50%'
  381. # When not set, the values defined in the global securityContext will be used
  382. securityContext: {}
  383. # runAsUser: 50000
  384. # fsGroup: 0
  385. # runAsGroup: 0
  386. # Create ServiceAccount
  387. serviceAccount:
  388. # Specifies whether a ServiceAccount should be created
  389. create: true
  390. # The name of the ServiceAccount to use.
  391. # If not set and create is true, a name is generated using the release name
  392. name: ~
  393. # Annotations to add to worker kubernetes service account.
  394. annotations: {}
  395. # Allow KEDA autoscaling.
  396. # Persistence.enabled must be set to false to use KEDA.
  397. keda:
  398. enabled: false
  399. namespaceLabels: {}
  400. # How often KEDA polls the airflow DB to report new scale requests to the HPA
  401. pollingInterval: 5
  402. # How many seconds KEDA will wait before scaling to zero.
  403. # Note that HPA has a separate cooldown period for scale-downs
  404. cooldownPeriod: 30
  405. # Minimum number of workers created by keda
  406. minReplicaCount: 0
  407. # Maximum number of workers created by keda
  408. maxReplicaCount: 10
  409. persistence:
  410. # Enable persistent volumes
  411. enabled: true
  412. # Volume size for worker StatefulSet
  413. size: 10Gi
  414. # If using a custom storageClass, pass name ref to all statefulSets here
  415. storageClassName: 'nas-storage'
  416. # Execute init container to chown log directory.
  417. # This is currently only needed in kind, due to usage
  418. # of local-path provisioner.
  419. fixPermissions: false
  420. # Annotations to add to worker volumes
  421. annotations: {}
  422. kerberosSidecar:
  423. # Enable kerberos sidecar
  424. enabled: false
  425. resources: {}
  426. # limits:
  427. # cpu: 100m
  428. # memory: 128Mi
  429. # requests:
  430. # cpu: 100m
  431. # memory: 128Mi
  432. resources: {}
  433. # limits:
  434. # cpu: 100m
  435. # memory: 128Mi
  436. # requests:
  437. # cpu: 100m
  438. # memory: 128Mi
  439. # Grace period for tasks to finish after SIGTERM is sent from kubernetes
  440. terminationGracePeriodSeconds: 600
  441. # This setting tells kubernetes that its ok to evict
  442. # when it wants to scale a node down.
  443. safeToEvict: true
  444. # Launch additional containers into worker.
  445. # Note: If used with KubernetesExecutor, you are responsible for signaling sidecars to exit when the main
  446. # container finishes so Airflow can continue the worker shutdown process!
  447. extraContainers: []
  448. # Add additional init containers into workers.
  449. extraInitContainers: []
  450. # Mount additional volumes into worker.
  451. extraVolumes: []
  452. extraVolumeMounts: []
  453. # Select certain nodes for airflow worker pods.
  454. nodeSelector: {}
  455. priorityClassName: ~
  456. affinity: {}
  457. # default worker affinity is:
  458. # podAntiAffinity:
  459. # preferredDuringSchedulingIgnoredDuringExecution:
  460. # - podAffinityTerm:
  461. # labelSelector:
  462. # matchLabels:
  463. # component: worker
  464. # topologyKey: kubernetes.io/hostname
  465. # weight: 100
  466. tolerations: []
  467. # topologySpreadConstraints: []
  468. # hostAliases to use in worker pods.
  469. # See:
  470. # https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  471. hostAliases: []
  472. # - ip: "127.0.0.2"
  473. # hostnames:
  474. # - "test.hostname.one"
  475. # - ip: "127.0.0.3"
  476. # hostnames:
  477. # - "test.hostname.two"
  478. podAnnotations: {}
  479. logGroomerSidecar:
  480. # Command to use when running the Airflow worker log groomer sidecar (templated).
  481. command: ~
  482. # Args to use when running the Airflow worker log groomer sidecar (templated).
  483. args: ['bash', '/clean-logs']
  484. # Number of days to retain logs
  485. retentionDays: 15
  486. resources: {}
  487. # limits:
  488. # cpu: 100m
  489. # memory: 128Mi
  490. # requests:
  491. # cpu: 100m
  492. # memory: 128Mi
  493. # Airflow scheduler settings
  494. scheduler:
  495. # If the scheduler stops heartbeating for 5 minutes (5*60s) kill the
  496. # scheduler and let Kubernetes restart it
  497. livenessProbe:
  498. initialDelaySeconds: 10
  499. timeoutSeconds: 20
  500. failureThreshold: 5
  501. periodSeconds: 60
  502. command: ~
  503. # Airflow 2.0 allows users to run multiple schedulers,
  504. # However this feature is only recommended for MySQL 8+ and Postgres
  505. replicas: 1
  506. # Command to use when running the Airflow scheduler (templated).
  507. command: ~
  508. # Args to use when running the Airflow scheduler (templated).
  509. args: ['bash', '-c', 'exec airflow scheduler']
  510. # Update Strategy when scheduler is deployed as a StatefulSet
  511. # (when using LocalExecutor and workers.persistence)
  512. updateStrategy: ~
  513. # Update Strategy when scheduler is deployed as a Deployment
  514. # (when not using LocalExecutor and workers.persistence)
  515. strategy: ~
  516. # When not set, the values defined in the global securityContext will be used
  517. securityContext: {}
  518. # runAsUser: 50000
  519. # fsGroup: 0
  520. # runAsGroup: 0
  521. # Create ServiceAccount
  522. serviceAccount:
  523. # Specifies whether a ServiceAccount should be created
  524. create: true
  525. # The name of the ServiceAccount to use.
  526. # If not set and create is true, a name is generated using the release name
  527. name: ~
  528. # Annotations to add to scheduler kubernetes service account.
  529. annotations: {}
  530. # Scheduler pod disruption budget
  531. podDisruptionBudget:
  532. enabled: false
  533. # PDB configuration
  534. config:
  535. maxUnavailable: 1
  536. resources: {}
  537. # limits:
  538. # cpu: 100m
  539. # memory: 128Mi
  540. # requests:
  541. # cpu: 100m
  542. # memory: 128Mi
  543. # This setting tells kubernetes that its ok to evict
  544. # when it wants to scale a node down.
  545. safeToEvict: true
  546. # Launch additional containers into scheduler.
  547. extraContainers: []
  548. # Add additional init containers into scheduler.
  549. extraInitContainers: []
  550. # Mount additional volumes into scheduler.
  551. extraVolumes: []
  552. extraVolumeMounts: []
  553. # Select certain nodes for airflow scheduler pods.
  554. nodeSelector: {}
  555. affinity: {}
  556. # default scheduler affinity is:
  557. # podAntiAffinity:
  558. # preferredDuringSchedulingIgnoredDuringExecution:
  559. # - podAffinityTerm:
  560. # labelSelector:
  561. # matchLabels:
  562. # component: scheduler
  563. # topologyKey: kubernetes.io/hostname
  564. # weight: 100
  565. tolerations: []
  566. # topologySpreadConstraints: []
  567. priorityClassName: ~
  568. podAnnotations: {}
  569. logGroomerSidecar:
  570. # Whether to deploy the Airflow scheduler log groomer sidecar.
  571. enabled: true
  572. # Command to use when running the Airflow scheduler log groomer sidecar (templated).
  573. command: ~
  574. # Args to use when running the Airflow scheduler log groomer sidecar (templated).
  575. args: ['bash', '/clean-logs']
  576. # Number of days to retain logs
  577. retentionDays: 15
  578. resources: {}
  579. # limits:
  580. # cpu: 100m
  581. # memory: 128Mi
  582. # requests:
  583. # cpu: 100m
  584. # memory: 128Mi
  585. waitForMigrations:
  586. # Whether to create init container to wait for db migrations
  587. enabled: true
  588. # Airflow create user job settings
  589. createUserJob:
  590. # Command to use when running the create user job (templated).
  591. command: ~
  592. # Args to use when running the create user job (templated).
  593. args:
  594. - 'bash'
  595. - '-c'
  596. # The format below is necessary to get `helm lint` happy
  597. - |-
  598. exec \
  599. airflow {{ semverCompare ">=2.0.0" .Values.airflowVersion | ternary "users create" "create_user" }} "$@"
  600. - --
  601. - '-r'
  602. - '{{ .Values.webserver.defaultUser.role }}'
  603. - '-u'
  604. - '{{ .Values.webserver.defaultUser.username }}'
  605. - '-e'
  606. - '{{ .Values.webserver.defaultUser.email }}'
  607. - '-f'
  608. - '{{ .Values.webserver.defaultUser.firstName }}'
  609. - '-l'
  610. - '{{ .Values.webserver.defaultUser.lastName }}'
  611. - '-p'
  612. - '{{ .Values.webserver.defaultUser.password }}'
  613. # Annotations on the create user job pod
  614. annotations: {}
  615. # jobAnnotations are annotations on the create user job
  616. jobAnnotations: {}
  617. # When not set, the values defined in the global securityContext will be used
  618. securityContext: {}
  619. # runAsUser: 50000
  620. # fsGroup: 0
  621. # runAsGroup: 0
  622. # Create ServiceAccount
  623. serviceAccount:
  624. # Specifies whether a ServiceAccount should be created
  625. create: true
  626. # The name of the ServiceAccount to use.
  627. # If not set and create is true, a name is generated using the release name
  628. name: ~
  629. # Annotations to add to create user kubernetes service account.
  630. annotations: {}
  631. # Launch additional containers into user creation job
  632. extraContainers: []
  633. # Mount additional volumes into user creation job
  634. extraVolumes: []
  635. extraVolumeMounts: []
  636. nodeSelector: {}
  637. affinity: {}
  638. tolerations: []
  639. # topologySpreadConstraints: []
  640. # In case you need to disable the helm hooks that create the jobs after install.
  641. # Disable this if you are using ArgoCD for example
  642. useHelmHooks: true
  643. resources: {}
  644. # limits:
  645. # cpu: 100m
  646. # memory: 128Mi
  647. # requests:
  648. # cpu: 100m
  649. # memory: 128Mi
  650. # Airflow database migration job settings
  651. migrateDatabaseJob:
  652. enabled: true
  653. # Command to use when running the migrate database job (templated).
  654. command: ~
  655. # Args to use when running the migrate database job (templated).
  656. args:
  657. - 'bash'
  658. - '-c'
  659. # The format below is necessary to get `helm lint` happy
  660. - |-
  661. exec \
  662. airflow {{ semverCompare ">=2.0.0" .Values.airflowVersion | ternary "db upgrade" "upgradedb" }}
  663. # Annotations on the database migration pod
  664. annotations: {}
  665. # jobAnnotations are annotations on the database migration job
  666. jobAnnotations: {}
  667. # When not set, the values defined in the global securityContext will be used
  668. securityContext: {}
  669. # runAsUser: 50000
  670. # fsGroup: 0
  671. # runAsGroup: 0
  672. # Create ServiceAccount
  673. serviceAccount:
  674. # Specifies whether a ServiceAccount should be created
  675. create: true
  676. # The name of the ServiceAccount to use.
  677. # If not set and create is true, a name is generated using the release name
  678. name: ~
  679. # Annotations to add to migrate database job kubernetes service account.
  680. annotations: {}
  681. resources: {}
  682. # limits:
  683. # cpu: 100m
  684. # memory: 128Mi
  685. # requests:
  686. # cpu: 100m
  687. # memory: 128Mi
  688. # Launch additional containers into database migration job
  689. extraContainers: []
  690. # Mount additional volumes into database migration job
  691. extraVolumes: []
  692. extraVolumeMounts: []
  693. nodeSelector: {}
  694. affinity: {}
  695. tolerations: []
  696. # topologySpreadConstraints: []
  697. # In case you need to disable the helm hooks that create the jobs after install.
  698. # Disable this if you are using ArgoCD for example
  699. useHelmHooks: true
  700. # Airflow webserver settings
  701. webserver:
  702. allowPodLogReading: true
  703. livenessProbe:
  704. initialDelaySeconds: 15
  705. timeoutSeconds: 30
  706. failureThreshold: 20
  707. periodSeconds: 5
  708. readinessProbe:
  709. initialDelaySeconds: 15
  710. timeoutSeconds: 30
  711. failureThreshold: 20
  712. periodSeconds: 5
  713. # Number of webservers
  714. replicas: 1
  715. # Command to use when running the Airflow webserver (templated).
  716. command: ~
  717. # Args to use when running the Airflow webserver (templated).
  718. args: ['bash', '-c', 'exec airflow webserver']
  719. # Create ServiceAccount
  720. serviceAccount:
  721. # Specifies whether a ServiceAccount should be created
  722. create: true
  723. # The name of the ServiceAccount to use.
  724. # If not set and create is true, a name is generated using the release name
  725. name: ~
  726. # Annotations to add to webserver kubernetes service account.
  727. annotations: {}
  728. # Webserver pod disruption budget
  729. podDisruptionBudget:
  730. enabled: false
  731. # PDB configuration
  732. config:
  733. maxUnavailable: 1
  734. # Allow overriding Update Strategy for Webserver
  735. strategy: ~
  736. # When not set, the values defined in the global securityContext will be used
  737. securityContext: {}
  738. # runAsUser: 50000
  739. # fsGroup: 0
  740. # runAsGroup: 0
  741. # Additional network policies as needed (Deprecated - renamed to `webserver.networkPolicy.ingress.from`)
  742. extraNetworkPolicies: []
  743. networkPolicy:
  744. ingress:
  745. # Peers for webserver NetworkPolicy ingress
  746. from: []
  747. # Ports for webserver NetworkPolicy ingress (if `from` is set)
  748. ports:
  749. - port: '{{ .Values.ports.airflowUI }}'
  750. resources: {}
  751. # limits:
  752. # cpu: 100m
  753. # memory: 128Mi
  754. # requests:
  755. # cpu: 100m
  756. # memory: 128Mi
  757. # Create initial user.
  758. defaultUser:
  759. enabled: true
  760. role: Admin
  761. username: admin
  762. email: admin@example.com
  763. firstName: admin
  764. lastName: user
  765. password: admin
  766. # Launch additional containers into webserver.
  767. extraContainers: []
  768. # Add additional init containers into webserver.
  769. extraInitContainers: []
  770. # Mount additional volumes into webserver.
  771. extraVolumes: []
  772. extraVolumeMounts: []
  773. # This string (can be templated) will be mounted into the Airflow Webserver as a custom
  774. # webserver_config.py. You can bake a webserver_config.py in to your image instead.
  775. webserverConfig: ~
  776. # webserverConfig: |
  777. # from airflow import configuration as conf
  778. # # The SQLAlchemy connection string.
  779. # SQLALCHEMY_DATABASE_URI = conf.get('database', 'SQL_ALCHEMY_CONN')
  780. # # Flask-WTF flag for CSRF
  781. # CSRF_ENABLED = True
  782. service:
  783. type: ClusterIP
  784. ## service annotations
  785. annotations: {}
  786. ports:
  787. - name: airflow-ui
  788. port: '{{ .Values.ports.airflowUI }}'
  789. # To change the port used to access the webserver:
  790. # ports:
  791. # - name: airflow-ui
  792. # port: 80
  793. # targetPort: airflow-ui
  794. # To only expose a sidecar, not the webserver directly:
  795. # ports:
  796. # - name: only_sidecar
  797. # port: 80
  798. # targetPort: 8888
  799. loadBalancerIP: ~
  800. ## Limit load balancer source ips to list of CIDRs
  801. # loadBalancerSourceRanges:
  802. # - "10.123.0.0/16"
  803. loadBalancerSourceRanges: []
  804. # Select certain nodes for airflow webserver pods.
  805. nodeSelector: {}
  806. priorityClassName: ~
  807. affinity: {}
  808. # default webserver affinity is:
  809. # podAntiAffinity:
  810. # preferredDuringSchedulingIgnoredDuringExecution:
  811. # - podAffinityTerm:
  812. # labelSelector:
  813. # matchLabels:
  814. # component: webserver
  815. # topologyKey: kubernetes.io/hostname
  816. # weight: 100
  817. tolerations: []
  818. # topologySpreadConstraints: []
  819. podAnnotations: {}
  820. waitForMigrations:
  821. # Whether to create init container to wait for db migrations
  822. enabled: true
  823. # Airflow Triggerer Config
  824. triggerer:
  825. enabled: true
  826. # Number of airflow triggerers in the deployment
  827. replicas: 1
  828. # Command to use when running Airflow triggerers (templated).
  829. command: ~
  830. # Args to use when running Airflow triggerer (templated).
  831. args: ['bash', '-c', 'exec airflow triggerer']
  832. # Update Strategy for triggerers
  833. strategy:
  834. rollingUpdate:
  835. maxSurge: '100%'
  836. maxUnavailable: '50%'
  837. # If the triggerer stops heartbeating for 5 minutes (5*60s) kill the
  838. # triggerer and let Kubernetes restart it
  839. livenessProbe:
  840. initialDelaySeconds: 10
  841. timeoutSeconds: 20
  842. failureThreshold: 5
  843. periodSeconds: 60
  844. command: ~
  845. # Create ServiceAccount
  846. serviceAccount:
  847. # Specifies whether a ServiceAccount should be created
  848. create: true
  849. # The name of the ServiceAccount to use.
  850. # If not set and create is true, a name is generated using the release name
  851. name: ~
  852. # Annotations to add to triggerer kubernetes service account.
  853. annotations: {}
  854. # When not set, the values defined in the global securityContext will be used
  855. securityContext: {}
  856. # runAsUser: 50000
  857. # fsGroup: 0
  858. # runAsGroup: 0
  859. resources: {}
  860. # limits:
  861. # cpu: 100m
  862. # memory: 128Mi
  863. # requests:
  864. # cpu: 100m
  865. # memory: 128Mi
  866. # Grace period for triggerer to finish after SIGTERM is sent from kubernetes
  867. terminationGracePeriodSeconds: 60
  868. # This setting tells kubernetes that its ok to evict
  869. # when it wants to scale a node down.
  870. safeToEvict: true
  871. # Launch additional containers into triggerer.
  872. extraContainers: []
  873. # Add additional init containers into triggerers.
  874. extraInitContainers: []
  875. # Mount additional volumes into triggerer.
  876. extraVolumes: []
  877. extraVolumeMounts: []
  878. # Select certain nodes for airflow triggerer pods.
  879. nodeSelector: {}
  880. affinity: {}
  881. # default triggerer affinity is:
  882. # podAntiAffinity:
  883. # preferredDuringSchedulingIgnoredDuringExecution:
  884. # - podAffinityTerm:
  885. # labelSelector:
  886. # matchLabels:
  887. # component: triggerer
  888. # topologyKey: kubernetes.io/hostname
  889. # weight: 100
  890. tolerations: []
  891. # topologySpreadConstraints: []
  892. priorityClassName: ~
  893. podAnnotations: {}
  894. waitForMigrations:
  895. # Whether to create init container to wait for db migrations
  896. enabled: true
  897. # Flower settings
  898. flower:
  899. # Enable flower.
  900. # If True, and using CeleryExecutor/CeleryKubernetesExecutor, will deploy flower app.
  901. enabled: true
  902. # Command to use when running flower (templated).
  903. command: ~
  904. # Args to use when running flower (templated).
  905. args:
  906. - 'bash'
  907. - '-c'
  908. # The format below is necessary to get `helm lint` happy
  909. - |-
  910. exec \
  911. airflow {{ semverCompare ">=2.0.0" .Values.airflowVersion | ternary "celery flower" "flower" }}
  912. # Additional network policies as needed (Deprecated - renamed to `flower.networkPolicy.ingress.from`)
  913. extraNetworkPolicies: []
  914. networkPolicy:
  915. ingress:
  916. # Peers for flower NetworkPolicy ingress
  917. from: []
  918. # Ports for flower NetworkPolicy ingress (if ingressPeers is set)
  919. ports:
  920. - port: '{{ .Values.ports.flowerUI }}'
  921. resources: {}
  922. # limits:
  923. # cpu: 100m
  924. # memory: 128Mi
  925. # requests:
  926. # cpu: 100m
  927. # memory: 128Mi
  928. # When not set, the values defined in the global securityContext will be used
  929. securityContext: {}
  930. # runAsUser: 50000
  931. # fsGroup: 0
  932. # runAsGroup: 0
  933. # Create ServiceAccount
  934. serviceAccount:
  935. # Specifies whether a ServiceAccount should be created
  936. create: true
  937. # The name of the ServiceAccount to use.
  938. # If not set and create is true, a name is generated using the release name
  939. name: ~
  940. # Annotations to add to worker kubernetes service account.
  941. annotations: {}
  942. # A secret containing the connection
  943. secretName: ~
  944. # Else, if username and password are set, create secret from username and password
  945. username: ~
  946. password: ~
  947. service:
  948. type: ClusterIP
  949. ## service annotations
  950. annotations: {}
  951. ports:
  952. - name: flower-ui
  953. port: '{{ .Values.ports.flowerUI }}'
  954. # To change the port used to access flower:
  955. # ports:
  956. # - name: flower-ui
  957. # port: 8080
  958. # targetPort: flower-ui
  959. loadBalancerIP: ~
  960. ## Limit load balancer source ips to list of CIDRs
  961. # loadBalancerSourceRanges:
  962. # - "10.123.0.0/16"
  963. loadBalancerSourceRanges: []
  964. # Launch additional containers into the flower pods.
  965. extraContainers: []
  966. # Mount additional volumes into the flower pods.
  967. extraVolumes: []
  968. extraVolumeMounts: []
  969. # Select certain nodes for airflow flower pods.
  970. nodeSelector: {}
  971. affinity: {}
  972. tolerations: []
  973. # topologySpreadConstraints: []
  974. priorityClassName: ~
  975. podAnnotations: {}
  976. # StatsD settings
  977. statsd:
  978. enabled: true
  979. # Create ServiceAccount
  980. serviceAccount:
  981. # Specifies whether a ServiceAccount should be created
  982. create: true
  983. # The name of the ServiceAccount to use.
  984. # If not set and create is true, a name is generated using the release name
  985. name: ~
  986. # Annotations to add to worker kubernetes service account.
  987. annotations: {}
  988. uid: 65534
  989. # When not set, `statsd.uid` will be used
  990. securityContext: {}
  991. # runAsUser: 65534
  992. # fsGroup: 0
  993. # runAsGroup: 0
  994. # Additional network policies as needed
  995. extraNetworkPolicies: []
  996. resources: {}
  997. # limits:
  998. # cpu: 100m
  999. # memory: 128Mi
  1000. # requests:
  1001. # cpu: 100m
  1002. # memory: 128Mi
  1003. service:
  1004. extraAnnotations: {}
  1005. # Select certain nodes for StatsD pods.
  1006. nodeSelector: {}
  1007. affinity: {}
  1008. tolerations: []
  1009. # topologySpreadConstraints: []
  1010. priorityClassName: ~
  1011. # Additional mappings for StatsD exporter.
  1012. extraMappings: []
  1013. # PgBouncer settings
  1014. pgbouncer:
  1015. # Enable PgBouncer
  1016. enabled: false
  1017. # Command to use for PgBouncer(templated).
  1018. command: ['pgbouncer', '-u', 'nobody', '/etc/pgbouncer/pgbouncer.ini']
  1019. # Args to use for PgBouncer(templated).
  1020. args: ~
  1021. auth_type: md5
  1022. auth_file: /etc/pgbouncer/users.txt
  1023. # Create ServiceAccount
  1024. serviceAccount:
  1025. # Specifies whether a ServiceAccount should be created
  1026. create: true
  1027. # The name of the ServiceAccount to use.
  1028. # If not set and create is true, a name is generated using the release name
  1029. name: ~
  1030. # Annotations to add to worker kubernetes service account.
  1031. annotations: {}
  1032. # Additional network policies as needed
  1033. extraNetworkPolicies: []
  1034. # Pool sizes
  1035. metadataPoolSize: 10
  1036. resultBackendPoolSize: 5
  1037. # Maximum clients that can connect to PgBouncer (higher = more file descriptors)
  1038. maxClientConn: 100
  1039. # supply the name of existing secret with pgbouncer.ini and users.txt defined
  1040. # you can load them to a k8s secret like the one below
  1041. # apiVersion: v1
  1042. # kind: Secret
  1043. # metadata:
  1044. # name: pgbouncer-config-secret
  1045. # data:
  1046. # pgbouncer.ini: <base64_encoded pgbouncer.ini file content>
  1047. # users.txt: <base64_encoded users.txt file content>
  1048. # type: Opaque
  1049. #
  1050. # configSecretName: pgbouncer-config-secret
  1051. #
  1052. configSecretName: ~
  1053. # PgBouncer pod disruption budget
  1054. podDisruptionBudget:
  1055. enabled: false
  1056. # PDB configuration
  1057. config:
  1058. maxUnavailable: 1
  1059. # Limit the resources to PgBouncer.
  1060. # When you specify the resource request the k8s scheduler uses this information to decide which node to
  1061. # place the Pod on. When you specify a resource limit for a Container, the kubelet enforces those limits so
  1062. # that the running container is not allowed to use more of that resource than the limit you set.
  1063. # See: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  1064. # Example:
  1065. #
  1066. # resource:
  1067. # limits:
  1068. # cpu: 100m
  1069. # memory: 128Mi
  1070. # requests:
  1071. # cpu: 100m
  1072. # memory: 128Mi
  1073. resources: {}
  1074. service:
  1075. extraAnnotations: {}
  1076. # https://www.pgbouncer.org/config.html
  1077. verbose: 0
  1078. logDisconnections: 0
  1079. logConnections: 0
  1080. sslmode: 'prefer'
  1081. ciphers: 'normal'
  1082. ssl:
  1083. ca: ~
  1084. cert: ~
  1085. key: ~
  1086. # Add extra PgBouncer ini configuration in the databases section:
  1087. # https://www.pgbouncer.org/config.html#section-databases
  1088. extraIniMetadata: ~
  1089. extraIniResultBackend: ~
  1090. # Add extra general PgBouncer ini configuration: https://www.pgbouncer.org/config.html
  1091. extraIni: ~
  1092. # Mount additional volumes into pgbouncer.
  1093. extraVolumes: []
  1094. extraVolumeMounts: []
  1095. # Select certain nodes for PgBouncer pods.
  1096. nodeSelector: {}
  1097. affinity: {}
  1098. tolerations: []
  1099. # topologySpreadConstraints: []
  1100. priorityClassName: ~
  1101. uid: 65534
  1102. metricsExporterSidecar:
  1103. resources: {}
  1104. # limits:
  1105. # cpu: 100m
  1106. # memory: 128Mi
  1107. # requests:
  1108. # cpu: 100m
  1109. # memory: 128Mi
  1110. sslmode: 'disable'
  1111. # Configuration for the redis provisioned by the chart
  1112. redis:
  1113. enabled: true
  1114. terminationGracePeriodSeconds: 600
  1115. # Create ServiceAccount
  1116. serviceAccount:
  1117. # Specifies whether a ServiceAccount should be created
  1118. create: true
  1119. # The name of the ServiceAccount to use.
  1120. # If not set and create is true, a name is generated using the release name
  1121. name: ~
  1122. # Annotations to add to worker kubernetes service account.
  1123. annotations: {}
  1124. persistence:
  1125. # Enable persistent volumes
  1126. enabled: true
  1127. # Volume size for worker StatefulSet
  1128. size: 1Gi
  1129. # If using a custom storageClass, pass name ref to all statefulSets here
  1130. storageClassName: 'nas-storage'
  1131. # Annotations to add to redis volumes
  1132. annotations: {}
  1133. resources: {}
  1134. # limits:
  1135. # cpu: 100m
  1136. # memory: 128Mi
  1137. # requests:
  1138. # cpu: 100m
  1139. # memory: 128Mi
  1140. # If set use as redis secret. Make sure to also set data.brokerUrlSecretName value.
  1141. passwordSecretName: ~
  1142. # Else, if password is set, create secret with it,
  1143. # Otherwise a new password will be generated on install
  1144. # Note: password can only be set during install, not upgrade.
  1145. password: ~
  1146. # This setting tells kubernetes that its ok to evict
  1147. # when it wants to scale a node down.
  1148. safeToEvict: true
  1149. # Select certain nodes for redis pods.
  1150. nodeSelector: {}
  1151. affinity: {}
  1152. tolerations: []
  1153. # topologySpreadConstraints: []
  1154. # Set to 0 for backwards-compatiblity
  1155. uid: 0
  1156. # If not set, `redis.uid` will be used
  1157. securityContext: {}
  1158. # runAsUser: 999
  1159. # runAsGroup: 0
  1160. # Auth secret for a private registry
  1161. # This is used if pulling airflow images from a private registry
  1162. registry:
  1163. secretName: ~
  1164. # Example:
  1165. # connection:
  1166. # user: ~
  1167. # pass: ~
  1168. # host: ~
  1169. # email: ~
  1170. connection: {}
  1171. # Elasticsearch logging configuration
  1172. elasticsearch:
  1173. # Enable elasticsearch task logging
  1174. enabled: false
  1175. # A secret containing the connection
  1176. secretName: ~
  1177. # Or an object representing the connection
  1178. # Example:
  1179. connection:
  1180. # user: ~
  1181. # pass: ~
  1182. host: elasticsearch-master.logs
  1183. port: 9200
  1184. # connection: {}
  1185. # All ports used by chart
  1186. ports:
  1187. flowerUI: 5555
  1188. airflowUI: 8080
  1189. workerLogs: 8793
  1190. redisDB: 6379
  1191. statsdIngest: 9125
  1192. statsdScrape: 9102
  1193. pgbouncer: 6543
  1194. pgbouncerScrape: 9127
  1195. # Define any ResourceQuotas for namespace
  1196. quotas: {}
  1197. # Define default/max/min values for pods and containers in namespace
  1198. limits: []
  1199. # This runs as a CronJob to cleanup old pods.
  1200. cleanup:
  1201. enabled: true
  1202. # Run every 15 minutes
  1203. schedule: '*/15 * * * *'
  1204. # Command to use when running the cleanup cronjob (templated).
  1205. command: ~
  1206. # Args to use when running the cleanup cronjob (templated).
  1207. args:
  1208. [
  1209. 'bash',
  1210. '-c',
  1211. 'exec airflow kubernetes cleanup-pods --namespace={{ .Release.Namespace }}',
  1212. ]
  1213. # Select certain nodes for airflow cleanup pods.
  1214. nodeSelector: {}
  1215. affinity: {}
  1216. tolerations: []
  1217. # topologySpreadConstraints: []
  1218. podAnnotations: {}
  1219. resources: {}
  1220. # limits:
  1221. # cpu: 100m
  1222. # memory: 128Mi
  1223. # requests:
  1224. # cpu: 100m
  1225. # memory: 128Mi
  1226. # Create ServiceAccount
  1227. serviceAccount:
  1228. # Specifies whether a ServiceAccount should be created
  1229. create: true
  1230. # The name of the ServiceAccount to use.
  1231. # If not set and create is true, a name is generated using the release name
  1232. name: ~
  1233. # Annotations to add to cleanup cronjob kubernetes service account.
  1234. annotations: {}
  1235. # When not set, the values defined in the global securityContext will be used
  1236. securityContext: {}
  1237. # runAsUser: 50000
  1238. # runAsGroup: 0
  1239. # Configuration for postgresql subchart
  1240. # Not recommended for production
  1241. postgresql:
  1242. enabled: false
  1243. postgresqlPassword: postgres
  1244. postgresqlUsername: postgres
  1245. # Config settings to go into the mounted airflow.cfg
  1246. #
  1247. # Please note that these values are passed through the `tpl` function, so are
  1248. # all subject to being rendered as go templates. If you need to include a
  1249. # literal `{{` in a value, it must be expressed like this:
  1250. #
  1251. # a: '{{ "{{ not a template }}" }}'
  1252. #
  1253. # Do not set config containing secrets via plain text values, use Env Var or k8s secret object
  1254. # yamllint disable rule:line-length
  1255. config:
  1256. api:
  1257. auth_backends: airflow.api.auth.backend.basic_auth
  1258. core:
  1259. default_timezone: 'Asia/Shanghai'
  1260. dags_folder: '{{ include "airflow_dags" . }}'
  1261. # This is ignored when used with the official Docker image
  1262. load_examples: 'False'
  1263. executor: '{{ .Values.executor }}'
  1264. # For Airflow 1.10, backward compatibility; moved to [logging] in 2.0
  1265. colored_console_log: 'False'
  1266. remote_logging: '{{- ternary "True" "False" .Values.elasticsearch.enabled }}'
  1267. logging:
  1268. remote_logging: '{{- ternary "True" "False" .Values.elasticsearch.enabled }}'
  1269. colored_console_log: 'False'
  1270. metrics:
  1271. statsd_on: '{{ ternary "True" "False" .Values.statsd.enabled }}'
  1272. statsd_port: 9125
  1273. statsd_prefix: airflow
  1274. statsd_host: '{{ printf "%s-statsd" .Release.Name }}'
  1275. webserver:
  1276. enable_proxy_fix: 'True'
  1277. # For Airflow 1.10
  1278. rbac: 'True'
  1279. celery:
  1280. worker_concurrency: 16
  1281. scheduler:
  1282. dag_dir_list_interval: 5
  1283. # statsd params included for Airflow 1.10 backward compatibility; moved to [metrics] in 2.0
  1284. statsd_on: '{{ ternary "True" "False" .Values.statsd.enabled }}'
  1285. statsd_port: 9125
  1286. statsd_prefix: airflow
  1287. statsd_host: '{{ printf "%s-statsd" .Release.Name }}'
  1288. # `run_duration` included for Airflow 1.10 backward compatibility; removed in 2.0.
  1289. run_duration: 41460
  1290. elasticsearch:
  1291. json_format: 'True'
  1292. log_id_template: '{dag_id}_{task_id}_{execution_date}_{try_number}'
  1293. elasticsearch_configs:
  1294. max_retries: 3
  1295. timeout: 30
  1296. retry_timeout: 'True'
  1297. kerberos:
  1298. keytab: '{{ .Values.kerberos.keytabPath }}'
  1299. reinit_frequency: '{{ .Values.kerberos.reinitFrequency }}'
  1300. principal: '{{ .Values.kerberos.principal }}'
  1301. ccache: '{{ .Values.kerberos.ccacheMountPath }}/{{ .Values.kerberos.ccacheFileName }}'
  1302. celery_kubernetes_executor:
  1303. kubernetes_queue: 'kubernetes'
  1304. kubernetes:
  1305. namespace: '{{ .Release.Namespace }}'
  1306. airflow_configmap: '{{ include "airflow_config" . }}'
  1307. airflow_local_settings_configmap: '{{ include "airflow_config" . }}'
  1308. pod_template_file: '{{ include "airflow_pod_template_file" . }}/pod_template_file.yaml'
  1309. worker_container_repository: '{{ .Values.images.airflow.repository | default .Values.defaultAirflowRepository }}'
  1310. worker_container_tag: '{{ .Values.images.airflow.tag | default .Values.defaultAirflowTag }}'
  1311. multi_namespace_mode: '{{ if .Values.multiNamespaceMode }}True{{ else }}False{{ end }}'
  1312. # yamllint enable rule:line-length
  1313. # Whether Airflow can launch workers and/or pods in multiple namespaces
  1314. # If true, it creates ClusterRole/ClusterRolebinding (with access to entire cluster)
  1315. multiNamespaceMode: false
  1316. # `podTemplate` is a templated string containing the contents of `pod_template_file.yaml` used for
  1317. # KubernetesExecutor workers. The default `podTemplate` will use normal `workers` configuration parameters
  1318. # (e.g. `workers.resources`). As such, you normally won't need to override this directly, however,
  1319. # you can still provide a completely custom `pod_template_file.yaml` if desired.
  1320. # If not set, a default one is created using `files/pod-template-file.kubernetes-helm-yaml`.
  1321. podTemplate: ~
  1322. # The following example is NOT functional, but meant to be illustrative of how you can provide a custom
  1323. # `pod_template_file`. You're better off starting with the default in
  1324. # `files/pod-template-file.kubernetes-helm-yaml` and modifying from there.
  1325. # We will set `priorityClassName` in this example:
  1326. # podTemplate: |
  1327. # apiVersion: v1
  1328. # kind: Pod
  1329. # metadata:
  1330. # name: dummy-name
  1331. # labels:
  1332. # tier: airflow
  1333. # component: worker
  1334. # release: {{ .Release.Name }}
  1335. # spec:
  1336. # priorityClassName: high-priority
  1337. # containers:
  1338. # - name: base
  1339. # ...
  1340. # Git sync
  1341. dags:
  1342. persistence:
  1343. # Enable persistent volume for storing dags
  1344. enabled: true
  1345. # Volume size for dags
  1346. size: 10Gi
  1347. # If using a custom storageClass, pass name here
  1348. storageClassName: 'nas-storage'
  1349. # access mode of the persistent volume
  1350. accessMode: ReadWriteOnce
  1351. ## the name of an existing PVC to use
  1352. existingClaim:
  1353. ## optional subpath for dag volume mount
  1354. subPath: ~
  1355. gitSync:
  1356. enabled: false
  1357. # git repo clone url
  1358. # ssh examples ssh://git@github.com/apache/airflow.git
  1359. # git@github.com:apache/airflow.git
  1360. # https example: https://github.com/apache/airflow.git
  1361. repo: http://gogsb.soaringnova.com/sxwl_DL/dags.git
  1362. branch: master
  1363. rev: HEAD
  1364. depth: 1
  1365. # the number of consecutive failures allowed before aborting
  1366. maxFailures: 0
  1367. # subpath within the repo where dags are located
  1368. # should be "" if dags are at repo root
  1369. subPath: ''
  1370. # if your repo needs a user name password
  1371. # you can load them to a k8s secret like the one below
  1372. # ---
  1373. # apiVersion: v1
  1374. # kind: Secret
  1375. # metadata:
  1376. # name: git-credentials
  1377. # data:
  1378. # GIT_SYNC_USERNAME: <base64_encoded_git_username>
  1379. # GIT_SYNC_PASSWORD: <base64_encoded_git_password>
  1380. # and specify the name of the secret below
  1381. #
  1382. credentialsSecret: git-credentials
  1383. #
  1384. #
  1385. # If you are using an ssh clone url, you can load
  1386. # the ssh private key to a k8s secret like the one below
  1387. # ---
  1388. # apiVersion: v1
  1389. # kind: Secret
  1390. # metadata:
  1391. # name: airflow-ssh-secret
  1392. # data:
  1393. # # key needs to be gitSshKey
  1394. # gitSshKey: <base64_encoded_data>
  1395. # and specify the name of the secret below
  1396. # sshKeySecret: airflow-ssh-secret
  1397. #
  1398. # If you are using an ssh private key, you can additionally
  1399. # specify the content of your known_hosts file, example:
  1400. #
  1401. # knownHosts: |
  1402. # <host1>,<ip1> <key1>
  1403. # <host2>,<ip2> <key2>
  1404. # interval between git sync attempts in seconds
  1405. wait: 60
  1406. containerName: git-sync
  1407. uid: 65533
  1408. # When not set, the values defined in the global securityContext will be used
  1409. securityContext: {}
  1410. # runAsUser: 65533
  1411. # runAsGroup: 0
  1412. extraVolumeMounts: []
  1413. env: []
  1414. resources: {}
  1415. # limits:
  1416. # cpu: 100m
  1417. # memory: 128Mi
  1418. # requests:
  1419. # cpu: 100m
  1420. # memory: 128Mi
  1421. logs:
  1422. persistence:
  1423. # Enable persistent volume for storing logs
  1424. enabled: true
  1425. # Volume size for logs
  1426. size: 10Gi
  1427. # If using a custom storageClass, pass name here
  1428. storageClassName: 'nas-storage'
  1429. ## the name of an existing PVC to use
  1430. existingClaim: