values.yaml 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610
  1. ###################################
  2. # Airflow - Common Configs
  3. ###################################
  4. airflow:
  5. ## configs for the docker image of the web/scheduler/worker
  6. ##
  7. image:
  8. repository: elyra/airflow
  9. tag: 1.10.12-python3.6
  10. ## values: Always or IfNotPresent
  11. pullPolicy: IfNotPresent
  12. pullSecret: ""
  13. ## the airflow executor type to use
  14. ##
  15. ## NOTE:
  16. ## - this should be `CeleryExecutor` or `KubernetesExecutor`
  17. ## - if set to `KubernetesExecutor`:
  18. ## - ensure that `workers.enabled` is `false`
  19. ## - ensure that `flower.enabled` is `false`
  20. ## - ensure that `redis.enabled` is `false`
  21. ## - ensure that K8S configs are set in `airflow.config`
  22. ## - we set these configs automatically:
  23. ## - `AIRFLOW__KUBERNETES__NAMESPACE`
  24. ## - `AIRFLOW__KUBERNETES__WORKER_SERVICE_ACCOUNT_NAME`
  25. ## - `AIRFLOW__KUBERNETES__ENV_FROM_CONFIGMAP_REF`
  26. ##
  27. executor: KubernetesExecutor
  28. ## the fernet key used to encrypt the connections/variables in the database
  29. ##
  30. ## WARNING:
  31. ## - you MUST customise this value, otherwise the encryption will be somewhat pointless
  32. ##
  33. ## NOTE:
  34. ## - to prevent this value being stored in your values.yaml (and airflow-env ConfigMap),
  35. ## consider using `airflow.extraEnv` to define it from a pre-created secret
  36. ##
  37. ## GENERATE:
  38. ## python -c "from cryptography.fernet import Fernet; FERNET_KEY = Fernet.generate_key().decode(); print(FERNET_KEY)"
  39. ##
  40. fernetKey: "my-generated-fernetKey"
  41. ## environment variables for the web/scheduler/worker Pods (for airflow configs)
  42. ##
  43. ## WARNING:
  44. ## - don't include sensitive variables in here, instead make use of `airflow.extraEnv` with Secrets
  45. ## - don't specify `AIRFLOW__CORE__SQL_ALCHEMY_CONN`, `AIRFLOW__CELERY__RESULT_BACKEND`,
  46. ## or `AIRFLOW__CELERY__BROKER_URL`, they are dynamically created from chart values
  47. ##
  48. ## NOTE:
  49. ## - airflow allows environment configs to be set as environment variables
  50. ## - they take the form: AIRFLOW__<section>__<key>
  51. ## - see the Airflow documentation: https://airflow.apache.org/docs/stable/howto/set-config.html
  52. ##
  53. ## EXAMPLE:
  54. ## config:
  55. ## ## Security
  56. ## AIRFLOW__CORE__SECURE_MODE: "True"extraEnv:
  57. # - name: AIRFLOW__CORE__FERNET_KEY
  58. # valueFrom:
  59. # secretKeyRef:
  60. # name: airflow
  61. # key: fernet-key
  62. # - name: AIRFLOW__LDAP__BIND_PASSWORD
  63. # valueFrom:
  64. # secretKeyRef:
  65. # name: ldap
  66. # key: passworde
  67. ## AIRFLOW__API__AUTH_BACKEND: "airflow.api.auth.backend.deny_all"
  68. ## AIRFLOW__WEBSERVER__EXPOSE_CONFIG: "False"
  69. ## AIRFLOW__WEBSERVER__RBAC: "False"
  70. ##
  71. ## ## DAGS
  72. ## AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: "30"
  73. ## AIRFLOW__CORE__LOAD_EXAMPLES: "False"
  74. ##
  75. ## ## Email (SMTP)
  76. ## AIRFLOW__EMAIL__EMAIL_BACKEND: "airflow.utils.email.send_email_smtp"
  77. ## AIRFLOW__SMTP__SMTP_HOST: "smtpmail.example.com"
  78. ## AIRFLOW__SMTP__SMTP_STARTTLS: "False"
  79. ## AIRFLOW__SMTP__SMTP_SSL: "False"
  80. ## AIRFLOW__SMTP__SMTP_PORT: "25"
  81. ## AIRFLOW__SMTP__SMTP_MAIL_FROM: "admin@example.com"
  82. ##
  83. ## ## Disable noisy "Handling signal: ttou" Gunicorn log messages
  84. ## GUNICORN_CMD_ARGS: "--log-level WARNING"
  85. ##
  86. ## ## Proxy Config
  87. ## HTTP_PROXY: "http://proxy.example.com:8080"
  88. ##
  89. config:
  90. AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY: "elyra/airflow"
  91. AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG: "1.10.12"
  92. AIRFLOW__KUBERNETES__WORKER_CONTAINER_IMAGE_PULL_POLICY: "IfNotPresent"
  93. AIRFLOW__KUBERNETES__LOGS_VOLUME_CLAIM: "airflow-logs"
  94. AIRFLOW__KUBERNETES__DAGS_VOLUME_CLAIM: "airflow"
  95. AIRFLOW__KUBERNETES__NAMESPACE: "default"
  96. AIRFLOW__KUBERNETES__DELETE_WORKER_PODS: "False"
  97. AIRFLOW__KUBERNETES__RUN_AS_USER: "50000"
  98. AIRFLOW__CORE__LOAD_EXAMPLES: "False"
  99. AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: "60"
  100. AIRFLOW__KUBERNETES__WORKER_SERVICE_ACCOUNT_NAME: "airflow"
  101. AIRFLOW__KUBERNETES__GIT_SYNC_ONE_TIME: "false"
  102. ## extra annotations for the web/scheduler/worker Pods
  103. ##
  104. ## EXAMPLE:
  105. ## podAnnotations:
  106. ## iam.amazonaws.com/role: "airflow-Role"
  107. ##
  108. podAnnotations: {}
  109. ## extra environment variables for the web/scheduler/worker (AND flower) Pods
  110. ##
  111. ## EXAMPLE:
  112. ## extraEnv:
  113. ## - name: AIRFLOW__CORE__FERNET_KEY
  114. ## valueFrom:
  115. ## secretKeyRef:
  116. ## name: airflow-fernet-key
  117. ## key: value
  118. ## - name: AIRFLOW__LDAP__BIND_PASSWORD
  119. ## valueFrom:
  120. ## secretKeyRef:
  121. ## name: airflow-ldap-password
  122. ## key: value
  123. ##
  124. extraEnv: []
  125. ## extra configMap volumeMounts for the web/scheduler/worker Pods
  126. ##
  127. ## EXAMPLE:
  128. ## extraConfigmapMounts:
  129. ## - name: airflow-webserver-config
  130. ## mountPath: /opt/airflow/webserver_config.py
  131. ## configMap: airflow-webserver-config
  132. ## readOnly: true
  133. ## subPath: webserver_config.py
  134. ##
  135. extraConfigmapMounts: []
  136. ## extra containers for the web/scheduler/worker Pods
  137. ##
  138. ## EXAMPLE: (a sidecar that syncs DAGs from object storage)
  139. ## extraContainers:
  140. ## - name: s3-sync
  141. ## image: my-user/s3sync:latest
  142. ## volumeMounts:
  143. ## - name: synchronised-dags
  144. ## mountPath: /dags
  145. ##
  146. extraContainers: []
  147. ## extra pip packages to install in the web/scheduler/worker Pods
  148. ##
  149. ## EXAMPLE:
  150. ## extraPipPackages:
  151. ## - "airflow-exporter==1.3.1"
  152. ##
  153. #extraPipPackages:
  154. ## extra volumeMounts for the web/scheduler/worker Pods
  155. ##
  156. ## EXAMPLE:
  157. ## extraVolumeMounts:
  158. ## - name: synchronised-dags
  159. ## mountPath: /opt/airflow/dags
  160. ##
  161. extraVolumeMounts: []
  162. ## extra volumes for the web/scheduler/worker Pods
  163. ##
  164. ## EXAMPLE:
  165. ## extraVolumes:
  166. ## - name: synchronised-dags
  167. ## emptyDir: {}
  168. ##
  169. extraVolumes: []
  170. ###################################
  171. # Airflow - Scheduler Configs
  172. ###################################
  173. scheduler:
  174. ## resource requests/limits for the scheduler Pod
  175. ##
  176. ## EXAMPLE:
  177. ## resources:
  178. ## requests:
  179. ## cpu: "1000m"
  180. ## memory: "1Gi"
  181. ##
  182. resources: {}
  183. ## the nodeSelector configs for the scheduler Pods
  184. ##
  185. nodeSelector: {}
  186. ## the affinity configs for the scheduler Pods
  187. ##
  188. affinity: {}
  189. ## the toleration configs for the scheduler Pods
  190. ##
  191. tolerations: []
  192. ## the security context for the scheduler Pods
  193. ##
  194. securityContext: {}
  195. ## labels for the scheduler Deployment
  196. ##
  197. labels: {}
  198. ## Pod labels for the scheduler Deployment
  199. ##
  200. podLabels: {}
  201. ## annotations for the scheduler Deployment
  202. ##
  203. annotations: {}
  204. ## Pod Annotations for the scheduler Deployment
  205. ##
  206. podAnnotations: {}
  207. ## if we should tell Kubernetes Autoscaler that its safe to evict these Pods
  208. ##
  209. safeToEvict: true
  210. ## configs for the PodDisruptionBudget of the scheduler
  211. ##
  212. podDisruptionBudget:
  213. ## if a PodDisruptionBudget resource is created for the scheduler
  214. ##
  215. enabled: true
  216. ## the maximum unavailable pods/percentage for the scheduler
  217. ##
  218. ## NOTE:
  219. ## - as there is only ever a single scheduler Pod,
  220. ## this must be 100% for Kubernetes to be able to migrate it
  221. ##
  222. maxUnavailable: "100%"
  223. ## the minimum available pods/percentage for the scheduler
  224. ##
  225. minAvailable: ""
  226. ## custom airflow connections for the airflow scheduler
  227. ##
  228. ## EXAMPLE:
  229. ## connections:
  230. ## - id: my_aws
  231. ## type: aws
  232. ## extra: |
  233. ## {
  234. ## "aws_access_key_id": "XXXXXXXX",
  235. ## "aws_secret_access_key": "XXXXXXXX",
  236. ## "region_name":"eu-central-1"
  237. ## }
  238. ##
  239. connections: []
  240. ## if `scheduler.connections` are deleted and re-added after each scheduler restart
  241. ##
  242. refreshConnections: true
  243. ## the name of an existing Secret containing an `add-connections.sh` script to run on scheduler start
  244. ##
  245. ## NOTE:
  246. ## - if this is non-empty, `scheduler.connections` will be ignored
  247. ## - use this if you don't want to store connections in your values.yaml
  248. ##
  249. ## EXAMPLE SECRET:
  250. ## apiVersion: v1
  251. ## kind: Secret
  252. ## metadata:
  253. ## name: my-airflow-connections
  254. ## type: Opaque
  255. ## stringData:
  256. ## add-connections.sh: |
  257. ## #!/usr/bin/env bash
  258. ##
  259. ## # remove any existing connection
  260. ## airflow connections --delete \
  261. ## --conn_id "my_aws"
  262. ##
  263. ## # re-add your custom connection
  264. ## airflow connections --add \
  265. ## --conn_id "my_aws" \
  266. ## --conn_type "aws" \
  267. ## --conn_extra "{\"region_name\":\"eu-central-1\"}"
  268. ##
  269. existingSecretConnections: ""
  270. ## custom airflow variables for the airflow scheduler
  271. ##
  272. ## NOTE:
  273. ## - THIS IS A STRING, containing a JSON object, with your variables in it
  274. ##
  275. ## EXAMPLE:
  276. ## variables: |
  277. ## { "environment": "dev" }
  278. ##
  279. variables: |
  280. {}
  281. ## custom airflow pools for the airflow scheduler
  282. ##
  283. ## NOTE:
  284. ## - THIS IS A STRING, containing a JSON object, with your pools in it
  285. ##
  286. ## EXAMPLE:
  287. ## pools: |
  288. ## {
  289. ## "example": {
  290. ## "description": "This is an example pool with 2 slots.",
  291. ## "slots": 2
  292. ## }
  293. ## }
  294. ##
  295. pools: |
  296. {}
  297. ## the value of the `airflow --num_runs` parameter used to run the airflow scheduler
  298. ##
  299. ## NOTE:
  300. ## - this is the number of 'dag refreshes' before the airflow scheduler process will exit
  301. ## - if not set to `-1`, the scheduler Pod will restart regularly
  302. ## - for most environments, `-1` will be an acceptable value
  303. ##
  304. numRuns: -1
  305. ## if we run `airflow initdb` when the scheduler starts
  306. ##
  307. initdb: true
  308. ## if we run `airflow initdb` inside a special initContainer
  309. ##
  310. ## NOTE:
  311. ## - may be needed if you have custom database hooks configured that will be pulled in by git-sync
  312. ##
  313. preinitdb: false
  314. ## the number of seconds to wait (in bash) before starting the scheduler container
  315. ##
  316. initialStartupDelay: 0
  317. ## configs for the scheduler liveness probe
  318. ##
  319. ## NOTE:
  320. ## - the maximum number of seconds the scheduler can be unhealthy =
  321. ## `livenessProbe.periodSeconds` x `livenessProbe.failureThreshold`
  322. ##
  323. livenessProbe:
  324. enabled: true
  325. ## the number of seconds to wait before checking pod health
  326. ##
  327. ## NOTE:
  328. ## - make larger if you are installing many packages with:
  329. ## `airflow.extraPipPackages`, `web.extraPipPackages`, or `dags.installRequirements`
  330. ##
  331. initialDelaySeconds: 300
  332. periodSeconds: 30
  333. failureThreshold: 5
  334. ## extra init containers to run before the scheduler Pod
  335. ##
  336. ## EXAMPLE:
  337. ## extraInitContainers:
  338. ## - name: volume-mount-hack
  339. ## image: busybox
  340. ## command: ["sh", "-c", "chown -R 1000:1000 logs"]
  341. ## volumeMounts:
  342. ## - mountPath: /opt/airflow/logs
  343. ## name: logs-data
  344. ##
  345. extraInitContainers: []
  346. ###################################
  347. # Airflow - WebUI Configs
  348. ###################################
  349. web:
  350. ## resource requests/limits for the airflow web Pods
  351. ##
  352. ## EXAMPLE:
  353. ## resources:
  354. ## requests:
  355. ## cpu: "500m"
  356. ## memory: "1Gi"
  357. ##
  358. resources: {}
  359. ## the number of web Pods to run
  360. ##
  361. replicas: 1
  362. ## the nodeSelector configs for the web Pods
  363. ##
  364. nodeSelector: {}
  365. ## the affinity configs for the web Pods
  366. ##
  367. affinity: {}
  368. ## the toleration configs for the web Pods
  369. ##
  370. tolerations: []
  371. ## the security context for the web Pods
  372. ##
  373. securityContext: {}
  374. ## labels for the web Deployment
  375. ##
  376. labels: {}
  377. ## Pod labels for the web Deployment
  378. ##
  379. podLabels: {}
  380. ## annotations for the web Deployment
  381. ##
  382. annotations: {}
  383. ## Pod annotations for the web Deployment
  384. ##
  385. podAnnotations: {}
  386. ## if we should tell Kubernetes Autoscaler that its safe to evict these Pods
  387. ##
  388. safeToEvict: true
  389. ## configs for the PodDisruptionBudget of the web Deployment
  390. ##
  391. podDisruptionBudget:
  392. ## if a PodDisruptionBudget resource is created for the web Deployment
  393. ##
  394. ## WARNING:
  395. ## - if you enable a PodDisruptionBudget, you should set `web.replicas` to a value
  396. ## large enough for Kubernetes to evict at least 1 Pod at a time
  397. ##
  398. enabled: false
  399. ## the maximum unavailable pods/percentage for the web Deployment
  400. ##
  401. maxUnavailable: ""
  402. ## the minimum available pods/percentage for the web Deployment
  403. ##
  404. minAvailable: ""
  405. ## configs for the Service of the web Pods
  406. ##
  407. service:
  408. ## annotations: {}
  409. ##sessionAffinity: "None"
  410. ##sessionAffinityConfig: {}
  411. type: NodePort
  412. ## externalPort: 8080
  413. ## loadBalancerIP: ""
  414. ##loadBalancerSourceRanges: []
  415. ##nodePort:
  416. ## http: ""
  417. ## sets `AIRFLOW__WEBSERVER__BASE_URL`
  418. ##
  419. ## NOTE:
  420. ## - should be compatible with `ingress.web.path` config
  421. ##
  422. baseUrl: "http://localhost:8080"
  423. ## sets `AIRFLOW__CORE__STORE_SERIALIZED_DAGS`
  424. ##
  425. ## NOTE:
  426. ## - setting true will disable `git-sync` and `git-clone` containers in the web Pod
  427. ## - Docs: https://airflow.apache.org/docs/stable/dag-serialization.html
  428. ##
  429. serializeDAGs: false
  430. ## extra pip packages to install in the web container
  431. ##
  432. ## EXAMPLE: ( packages used by RBAC UI for OAuth )
  433. ## extraPipPackages:
  434. ## - "apache-airflow[google_auth]==1.10.10"
  435. ##
  436. extraPipPackages: []
  437. ## the number of seconds to wait (in bash) before starting the web container
  438. ##
  439. initialStartupDelay: 0
  440. ## the number of seconds to wait before declaring a new Pod available
  441. ##
  442. minReadySeconds: 5
  443. ## configs for the web Service readiness probe
  444. ##
  445. readinessProbe:
  446. enabled: false
  447. scheme: HTTP
  448. initialDelaySeconds: 10
  449. periodSeconds: 10
  450. timeoutSeconds: 1
  451. successThreshold: 1
  452. failureThreshold: 3
  453. ## configs for the web Service liveness probe
  454. ##
  455. livenessProbe:
  456. enabled: true
  457. scheme: HTTP
  458. ## the number of seconds to wait before checking pod health
  459. ##
  460. ## NOTE:
  461. ## - make larger if you are installing many packages with:
  462. ## `airflow.extraPipPackages`, `web.extraPipPackages`, or `dags.installRequirements`
  463. ##
  464. initialDelaySeconds: 300
  465. periodSeconds: 30
  466. timeoutSeconds: 3
  467. successThreshold: 1
  468. failureThreshold: 2
  469. ## the directory in which to mount secrets on web containers
  470. ##
  471. secretsDir: /var/airflow/secrets
  472. ## the names of existing Kubernetes Secrets to mount as files at `{workers.secretsDir}/<secret_name>/<keys_in_secret>`
  473. ##
  474. secrets: []
  475. ## the name of an existing Kubernetes Secret to mount as files to `{web.secretsDir}/<keys_in_secret>`
  476. ##
  477. ## NOTE:
  478. ## - overrides `web.secrets`
  479. ##
  480. secretsMap: ""
  481. ###################################
  482. # Airflow - Worker Configs
  483. ###################################
  484. workers:
  485. ## if the airflow workers StatefulSet should be deployed
  486. ##
  487. enabled: false
  488. ## Set to false for use with KubernetesExecutor
  489. ## resource requests/limits for the airflow worker Pods
  490. ##
  491. ## EXAMPLE:
  492. ## resources:
  493. ## requests:
  494. ## cpu: "1000m"
  495. ## memory: "2Gi"
  496. ##
  497. resources: {}
  498. ## the number of workers Pods to run
  499. ##
  500. ## NOTE:
  501. ## - when `workers.autoscaling.enabled` is true, this is the minimum
  502. ##
  503. replicas: 1
  504. ## the nodeSelector configs for the worker Pods
  505. ##
  506. nodeSelector: {}
  507. ## the affinity configs for the worker Pods
  508. ##
  509. affinity: {}
  510. ## the toleration configs for the worker Pods
  511. ##
  512. tolerations: []
  513. ## the security context for the worker Pods
  514. ##
  515. securityContext: {}
  516. ## labels for the worker StatefulSet
  517. ##
  518. labels: {}
  519. ## Pod labels for the worker StatefulSet
  520. ##
  521. podLabels: {}
  522. ## annotations for the worker StatefulSet
  523. ##
  524. annotations: {}
  525. ## Pod annotations for the worker StatefulSet
  526. ##
  527. podAnnotations: {}
  528. ## if we should tell Kubernetes Autoscaler that its safe to evict these Pods
  529. ##
  530. safeToEvict: true
  531. ## configs for the PodDisruptionBudget of the worker StatefulSet
  532. ##
  533. podDisruptionBudget:
  534. ## if a PodDisruptionBudget resource is created for the worker StatefulSet
  535. ##
  536. ## WARNING:
  537. ## - if you enable a PodDisruptionBudget, you should set `workers.replicas` to a value
  538. ## large enough for Kubernetes to evict at least 1 Pod at a time
  539. ## - if you enable `workers.celery.gracefullTermination`, you should consider
  540. ## specifying a `workers.podDisruptionBudget.minAvailable` to prevent there
  541. ## not being enough available workers during graceful termination waiting periods
  542. ##
  543. enabled: false
  544. ## the maximum unavailable pods/percentage for the worker StatefulSet
  545. ##
  546. maxUnavailable: ""
  547. ## the minimum available pods/percentage for the worker StatefulSet
  548. ##
  549. minAvailable: ""
  550. ## configs for the HorizontalPodAutoscaler of the worker Pods
  551. ##
  552. ## EXAMPLE:
  553. ## autoscaling:
  554. ## enabled: true
  555. ## maxReplicas: 16
  556. ## metrics:
  557. ## - type: Resource
  558. ## resource:
  559. ## name: memory
  560. ## target:
  561. ## type: Utilization
  562. ## averageUtilization: 80
  563. ##
  564. autoscaling:
  565. enabled: false
  566. maxReplicas: 2
  567. metrics: []
  568. ## the number of seconds to wait (in bash) before starting each worker container
  569. ##
  570. initialStartupDelay: 0
  571. ## configs for the celery worker Pods
  572. ##
  573. ## NOTE:
  574. ## - only takes effect if `airflow.executor` is `CeleryExecutor`
  575. ##
  576. celery:
  577. ## the number of tasks each celery worker can run at a time
  578. ##
  579. ## NOTE:
  580. ## - sets AIRFLOW__CELERY__WORKER_CONCURRENCY
  581. ##
  582. instances: 16
  583. ## if we should wait for tasks to finish before SIGTERM of the celery worker
  584. ##
  585. ## WARNING:
  586. ## - consider using `workers.podDisruptionBudget.*` to prevent there not being
  587. ## enough available workers during graceful termination waiting periods
  588. ##
  589. gracefullTermination: false
  590. ## how many seconds to wait for tasks to finish before SIGTERM of the celery worker
  591. ##
  592. ## graceful shutdown lifecycle:
  593. ## 1. prevent worker accepting new tasks
  594. ## 2. wait AT MOST `workers.celery.gracefullTerminationPeriod` for tasks to finish
  595. ## 3. send SIGTERM to worker
  596. ## 4. wait AT MOST `workers.terminationPeriod` for kill to finish
  597. ## 5. send SIGKILL to worker
  598. ##
  599. gracefullTerminationPeriod: 600
  600. ## how many seconds to wait after SIGTERM before SIGKILL of the celery worker
  601. ##
  602. ## WARNING:
  603. ## - tasks that are still running during SIGKILL will be orphaned, this is important
  604. ## to understand with KubernetesPodOperator(), as Pods may continue running
  605. ##
  606. terminationPeriod: 60
  607. ## directory in which to mount secrets on worker containers
  608. ##
  609. secretsDir: /var/airflow/secrets
  610. ## the names of existing Kubernetes Secrets to mount as files at `{workers.secretsDir}/<secret_name>/<keys_in_secret>`
  611. ##
  612. secrets: []
  613. ## the name of an existing Kubernetes Secret to mount as files to `{web.secretsDir}/<keys_in_secret>`
  614. ##
  615. ## NOTE:
  616. ## - overrides `worker.secrets`
  617. ##
  618. secretsMap: ""
  619. ###################################
  620. # Airflow - Flower Configs
  621. ###################################
  622. flower:
  623. ## if the Flower UI should be deployed
  624. ##
  625. ## NOTE:
  626. ## - only takes effect if `airflow.executor` is `CeleryExecutor`
  627. ##
  628. enabled: false
  629. ## resource requests/limits for the flower Pods
  630. ##
  631. ## EXAMPLE:
  632. ## resources:
  633. ## requests:
  634. ## cpu: "100m"
  635. ## memory: "126Mi"
  636. ##
  637. resources: {}
  638. ## the number of flower Pods to run
  639. ##
  640. replicas: 1
  641. ## the nodeSelector configs for the flower Pods
  642. ##
  643. nodeSelector: {}
  644. ## the affinity configs for the flower Pods
  645. ##
  646. affinity: {}
  647. ## the toleration configs for the flower Pods
  648. ##
  649. tolerations: []
  650. ## the security context for the flower Pods
  651. ##
  652. securityContext: {}
  653. ## labels for the flower Deployment
  654. ##
  655. labels: {}
  656. ## Pod labels for the flower Deployment
  657. ##
  658. podLabels: {}
  659. ## annotations for the flower Deployment
  660. ##
  661. annotations: {}
  662. ## Pod annotations for the flower Deployment
  663. ##
  664. podAnnotations: {}
  665. ## if we should tell Kubernetes Autoscaler that its safe to evict these Pods
  666. ##
  667. safeToEvict: true
  668. ## configs for the PodDisruptionBudget of the flower Deployment
  669. ##
  670. podDisruptionBudget:
  671. ## if a PodDisruptionBudget resource is created for the flower Deployment
  672. ##
  673. ## WARNING:
  674. ## - if you enable a PodDisruptionBudget, you should set `flower.replicas` to a value
  675. ## large enough for Kubernetes to evict at least 1 Pod at a time
  676. ##
  677. enabled: false
  678. ## the maximum unavailable pods/percentage for the flower Deployment
  679. ##
  680. maxUnavailable: ""
  681. ## the minimum available pods/percentage for the flower Deployment
  682. ##
  683. minAvailable: ""
  684. ## the value of the flower `--auth` argument
  685. ##
  686. ## NOTE:
  687. ## - see flower docs: https://flower.readthedocs.io/en/latest/auth.html#google-oauth-2-0
  688. ##
  689. oauthDomains: ""
  690. ## the name of a pre-created secret containing the basic authentication value for flower
  691. ##
  692. ## NOTE:
  693. ## - This sets `AIRFLOW__CELERY__FLOWER_BASIC_AUTH`
  694. ##
  695. basicAuthSecret: ""
  696. ## the key within `flower.basicAuthSecret` containing the basic authentication string
  697. ##
  698. basicAuthSecretKey: ""
  699. ## sets `AIRFLOW__CELERY__FLOWER_URL_PREFIX`
  700. ##
  701. ## NOTE:
  702. ## - should match `ingress.flower.path` config
  703. ##
  704. urlPrefix: ""
  705. ## configs for the Service of the flower Pods
  706. ##
  707. service:
  708. annotations: {}
  709. type: ClusterIP
  710. externalPort: 5555
  711. loadBalancerIP: ""
  712. loadBalancerSourceRanges: []
  713. nodePort:
  714. http: ""
  715. ## the number of seconds to wait (in bash) before starting the flower container
  716. ##
  717. initialStartupDelay: 0
  718. ## the number of seconds to wait before declaring a new Pod available
  719. ##
  720. minReadySeconds: 5
  721. ## extra ConfigMaps to mount on the flower Pods
  722. ##
  723. ## EXAMPLE:
  724. ## extraConfigmapMounts:
  725. ## - name: extra-cert
  726. ## mountPath: /etc/ssl/certs/extra-cert.pem
  727. ## configMap: extra-certificates
  728. ## readOnly: true
  729. ## subPath: extra-cert.pem
  730. ##
  731. extraConfigmapMounts: []
  732. ###################################
  733. # Airflow - Logs Configs
  734. ###################################
  735. logs:
  736. ## the airflow logs folder
  737. ##
  738. path: /opt/airflow/logs
  739. ## configs for the logs PVC
  740. ##
  741. persistence:
  742. ## if a persistent volume is mounted at `logs.path`
  743. ##
  744. enabled: true
  745. ## the name of an existing PVC to use
  746. ##
  747. existingClaim: ""
  748. ## sub-path under `logs.persistence.existingClaim` to use
  749. ##
  750. subPath: ""
  751. ## the name of the StorageClass used by the PVC
  752. ##
  753. ## NOTE:
  754. ## - if set to "", then `PersistentVolumeClaim/spec.storageClassName` is omitted
  755. ## - if set to "-", then `PersistentVolumeClaim/spec.storageClassName` is set to ""
  756. ##
  757. storageClass: "standard"
  758. ## the access mode of the PVC
  759. ##
  760. ## WARNING:
  761. ## - must be: `ReadWriteMany`
  762. ##
  763. ## NOTE:
  764. ## - different StorageClass support different access modes:
  765. ## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
  766. ##
  767. accessMode: ReadWriteMany
  768. ## the size of PVC to request
  769. ##
  770. size: 1Gi
  771. ###################################
  772. # Airflow - DAGs Configs
  773. ###################################
  774. dags:
  775. ## the airflow dags folder
  776. ##
  777. path: /opt/airflow/dags
  778. ## whether to disable pickling dags from the scheduler to workers
  779. ##
  780. ## NOTE:
  781. ## - sets AIRFLOW__CORE__DONOT_PICKLE
  782. ##
  783. doNotPickle: false
  784. ## install any Python `requirements.txt` at the root of `dags.path` automatically
  785. ##
  786. ## WARNING:
  787. ## - if set to true, and you are using `dags.git.gitSync`, you must also enable
  788. ## `dags.initContainer` to ensure the requirements.txt is available at Pod start
  789. ##
  790. installRequirements: false
  791. ## configs for the dags PVC
  792. ##
  793. persistence:
  794. ## if a persistent volume is mounted at `dags.path`
  795. ##
  796. enabled: true
  797. ## the name of an existing PVC to use
  798. ##
  799. existingClaim: ""
  800. ## sub-path under `dags.persistence.existingClaim` to use
  801. ##
  802. subPath: ""
  803. ## the name of the StorageClass used by the PVC
  804. ##
  805. ## NOTE:
  806. ## - if set to "", then `PersistentVolumeClaim/spec.storageClassName` is omitted
  807. ## - if set to "-", then `PersistentVolumeClaim/spec.storageClassName` is set to ""
  808. ##
  809. storageClass: "standard"
  810. ## the access mode of the PVC
  811. ##
  812. ## WARNING:
  813. ## - must be one of: `ReadOnlyMany` or `ReadWriteMany`
  814. ##
  815. ## NOTE:
  816. ## - different StorageClass support different access modes:
  817. ## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
  818. ##
  819. accessMode: ReadOnlyMany
  820. ## the size of PVC to request
  821. ##
  822. size: 1Gi
  823. ## configs for the DAG git repository & sync container
  824. ##
  825. git:
  826. ## url of the git repository
  827. ##
  828. ## EXAMPLE: (HTTP)
  829. ## url: "https://github.com/torvalds/linux.git"
  830. ##
  831. ## EXAMPLE: (SSH)
  832. ## url: "ssh://git@github.com:torvalds/linux.git"
  833. ##
  834. url: "ssh://git@github.com/your-git-org/your-dag-repo"
  835. ## the branch/tag/sha1 which we clone
  836. ##
  837. ref: "main"
  838. ## the name of a pre-created secret containing files for ~/.ssh/
  839. ##
  840. ## NOTE:
  841. ## - this is ONLY RELEVANT for SSH git repos
  842. ## - the secret commonly includes files: id_rsa, id_rsa.pub, known_hosts
  843. ## - known_hosts is NOT NEEDED if `git.sshKeyscan` is true
  844. ##
  845. secret: "airflow-secret"
  846. ## if we should implicitly trust [git.repoHost]:git.repoPort, by auto creating a ~/.ssh/known_hosts
  847. ##
  848. ## WARNING:
  849. ## - setting true will increase your vulnerability ot a repo spoofing attack
  850. ##
  851. ## NOTE:
  852. ## - this is ONLY RELEVANT for SSH git repos
  853. ## - this is not needed if known_hosts is provided in `git.secret`
  854. ## - git.repoHost and git.repoPort ARE REQUIRED for this to work
  855. ##
  856. sshKeyscan: true
  857. ## the name of the private key file in your `git.secret`
  858. ##
  859. ## NOTE:
  860. ## - this is ONLY RELEVANT for PRIVATE SSH git repos
  861. ##
  862. privateKeyName: id_rsa
  863. ## the host name of the git repo
  864. ##
  865. ## NOTE:
  866. ## - this is ONLY REQUIRED for SSH git repos
  867. ##
  868. ## EXAMPLE:
  869. ## repoHost: "github.com"
  870. ##
  871. repoHost: "github.com"
  872. ## the port of the git repo
  873. ##
  874. ## NOTE:
  875. ## - this is ONLY REQUIRED for SSH git repos
  876. ##
  877. repoPort: 22
  878. ## configs for the git-sync container
  879. ##
  880. gitSync:
  881. ## enable the git-sync sidecar container
  882. ##
  883. enabled: true
  884. ## resource requests/limits for the git-sync container
  885. ##
  886. ## NOTE:
  887. ## - when `workers.autoscaling` is true, YOU MUST SPECIFY a resource request
  888. ##
  889. ## EXAMPLE:
  890. ## resources:
  891. ## requests:
  892. ## cpu: "50m"
  893. ## memory: "64Mi"
  894. ##
  895. resources: {}
  896. ## the docker image for the git-sync container
  897. image:
  898. repository: alpine/git
  899. tag: latest
  900. ## values: Always or IfNotPresent
  901. pullPolicy: Always
  902. ## the git sync interval in seconds
  903. ##
  904. refreshTime: 10
  905. ## configs for the git-clone container
  906. ##
  907. ## NOTE:
  908. ## - use this container if you want to only clone the external git repo
  909. ## at Pod start-time, and not keep it synchronised afterwards
  910. ##
  911. initContainer:
  912. ## enable the git-clone sidecar container
  913. ##
  914. ## NOTE:
  915. ## - this is NOT required for the git-sync sidecar to work
  916. ## - this is mostly used for when `dags.installRequirements` is true to ensure that
  917. ## requirements.txt is available at Pod start
  918. ##
  919. enabled: false
  920. ## resource requests/limits for the git-clone container
  921. ##
  922. ## EXAMPLE:
  923. ## resources:
  924. ## requests:
  925. ## cpu: "50m"
  926. ## memory: "64Mi"
  927. ##
  928. resources: {}
  929. ## the docker image for the git-clone container
  930. image:
  931. repository: alpine/git
  932. tag: latest
  933. ## values: Always or IfNotPresent
  934. pullPolicy: Always
  935. ## path to mount dags-data volume to
  936. ##
  937. ## WARNING:
  938. ## - this path is also used by the git-sync container
  939. ##
  940. mountPath: "/dags"
  941. ## sub-path under `dags.initContainer.mountPath` to sync dags to
  942. ##
  943. ## WARNING:
  944. ## - this path is also used by the git-sync container
  945. ## - this MUST INCLUDE the leading /
  946. ##
  947. ## EXAMPLE:
  948. ## syncSubPath: "/subdirWithDags"
  949. ##
  950. syncSubPath: ""
  951. ###################################
  952. # Kubernetes - Ingress Configs
  953. ###################################
  954. ingress:
  955. ## if we should deploy Ingress resources
  956. ##
  957. ## NOTE:
  958. ## - if you want to change url prefix for web ui or flower (even if you do not use this Ingress),
  959. ## you can change `web.baseUrl` and `flower.urlPrefix`
  960. ##
  961. enabled: false
  962. ## configs for the Ingress of the web Service
  963. ##
  964. web:
  965. ## annotations for the web Ingress
  966. ##
  967. annotations: {}
  968. ## additional labels for the web Ingress
  969. ##
  970. labels: {}
  971. ## the path for the web Ingress
  972. ##
  973. ## WARNING:
  974. ## - do NOT include the trailing slash (for root, set an empty string)
  975. ##
  976. ## NOTE:
  977. ## - should be compatible with `web.baseUrl` config
  978. ##
  979. ## EXAMPLE: (if set to "/airflow")
  980. ## - UI: http://example.com/airflow/admin
  981. ## - API: http://example.com/airflow/api
  982. ## - HEALTH: http://example.com/airflow/health
  983. ##
  984. path: ""
  985. ## the hostname for the web Ingress
  986. ##
  987. host: ""
  988. ## the livenessPath for the web Ingress
  989. ##
  990. ## NOTE:
  991. ## - if set to "", defaults to: `{ingress.web.path}/health`
  992. ##
  993. livenessPath: ""
  994. ## configs for web Ingress TLS
  995. ##
  996. tls:
  997. ## enable TLS termination for the web Ingress
  998. ##
  999. enabled: false
  1000. ## the name of a pre-created Secret containing a TLS private key and certificate
  1001. ##
  1002. ## NOTE:
  1003. ## - this MUST be specified if `ingress.web.tls.enabled` is true
  1004. ##
  1005. secretName: ""
  1006. ## http paths to add to the web Ingress before the default path
  1007. ##
  1008. ## EXAMPLE:
  1009. ## precedingPaths:
  1010. ## - path: "/*"
  1011. ## serviceName: "ssl-redirect"
  1012. ## servicePort: "use-annotation"
  1013. ##
  1014. precedingPaths: []
  1015. ## http paths to add to the web Ingress after the default path
  1016. ##
  1017. ## EXAMPLE:
  1018. ## succeedingPaths:
  1019. ## - path: "/extra-service"
  1020. ## serviceName: "extra-service"
  1021. ## servicePort: "use-annotation"
  1022. ##
  1023. succeedingPaths: []
  1024. ## configs for the Ingress of the flower Service
  1025. ##
  1026. flower:
  1027. ## annotations for the flower Ingress
  1028. ##
  1029. annotations: {}
  1030. ## additional labels for the flower Ingress
  1031. ##
  1032. labels: {}
  1033. ## the path for the flower Ingress
  1034. ##
  1035. ## WARNING:
  1036. ## - do NOT include the trailing slash (for root, set an empty string)
  1037. ##
  1038. ## NOTE:
  1039. ## - should match `flower.urlPrefix` config
  1040. ##
  1041. ## EXAMPLE: (if set to "/airflow/flower")
  1042. ## - UI: http://example.com/airflow/flower
  1043. ##
  1044. path: ""
  1045. ## the hostname for the flower Ingress
  1046. ##
  1047. host: ""
  1048. ## the livenessPath for the flower Ingress
  1049. ##
  1050. ## WARNING:
  1051. ## - keep the trailing slash
  1052. ##
  1053. ## NOTE:
  1054. ## - if set to "", defaults to: `{ingress.flower.path}/`
  1055. ##
  1056. livenessPath: ""
  1057. ## configs for flower Ingress TLS
  1058. ##
  1059. tls:
  1060. ## enable TLS termination for the flower Ingress
  1061. ##
  1062. enabled: false
  1063. ## the name of a pre-created Secret containing a TLS private key and certificate
  1064. ##
  1065. ## NOTE:
  1066. ## - this MUST be specified if `ingress.flower.tls.enabled` is true
  1067. ##
  1068. secretName: ""
  1069. ## http paths to add to the flower Ingress before the default path
  1070. ##
  1071. ## EXAMPLE:
  1072. ## precedingPaths:
  1073. ## - path: "/*"
  1074. ## serviceName: "ssl-redirect"
  1075. ## servicePort: "use-annotation"
  1076. ##
  1077. precedingPaths: []
  1078. ## http paths to add to the flower Ingress after the default path
  1079. ##
  1080. ## EXAMPLE:
  1081. ## succeedingPaths:
  1082. ## - path: "/extra-service"
  1083. ## serviceName: "extra-service"
  1084. ## servicePort: "use-annotation"
  1085. ##
  1086. succeedingPaths: []
  1087. ###################################
  1088. # Kubernetes - RBAC
  1089. ###################################
  1090. rbac:
  1091. ## if Kubernetes RBAC resources are created
  1092. ##
  1093. ## NOTE:
  1094. ## - these allow the service account to create/delete Pods in the airflow namespace,
  1095. ## which is required for the KubernetesPodOperator() to function
  1096. ##
  1097. create: true
  1098. ## if the created RBAC Role has GET/LIST on Event resources
  1099. ##
  1100. ## NOTE:
  1101. ## - this is needed for KubernetesPodOperator() to use `log_events_on_failure=True`
  1102. ##
  1103. events: false
  1104. ###################################
  1105. # Kubernetes - Service Account
  1106. ###################################
  1107. serviceAccount:
  1108. ## if a Kubernetes ServiceAccount is created
  1109. ##
  1110. ## NOTE:
  1111. ## - if false, you must create the service account outside of this helm chart,
  1112. ## with the name: `serviceAccount.name`
  1113. ##
  1114. create: true
  1115. ## the name of the ServiceAccount
  1116. ##
  1117. ## NOTE:
  1118. ## - by default the name is generated using the `airflow.serviceAccountName` template in `_helpers.tpl`
  1119. ##
  1120. name: ""
  1121. ## annotations for the ServiceAccount
  1122. ##
  1123. ## EXAMPLE: (to use WorkloadIdentity in Google Cloud)
  1124. ## annotations:
  1125. ## iam.gke.io/gcp-service-account: <<GCP_SERVICE>>@<<GCP_PROJECT>>.iam.gserviceaccount.com
  1126. ##
  1127. annotations: {}
  1128. ###################################
  1129. # Kubernetes - Extra Manifests
  1130. ###################################
  1131. ## additional Kubernetes manifests to include with this chart
  1132. ##
  1133. ## EXAMPLE:
  1134. ## extraManifests:
  1135. ## - apiVersion: cloud.google.com/v1beta1
  1136. ## kind: BackendConfig
  1137. ## metadata:
  1138. ## name: "{{ .Release.Name }}-test"
  1139. ## spec:
  1140. ## securityPolicy:
  1141. ## name: "gcp-cloud-armor-policy-test"
  1142. ##
  1143. extraManifests: []
  1144. ###################################
  1145. # Database - PostgreSQL Chart
  1146. # - https://github.com/helm/charts/tree/master/stable/postgresql
  1147. ###################################
  1148. postgresql:
  1149. ## if the `stable/postgresql` chart is used
  1150. ##
  1151. ## WARNING:
  1152. ## - this is NOT SUITABLE for production deployments of Airflow,
  1153. ## you should seriously consider using an external database service,
  1154. ## which can be configured with values under: `externalDatabase`
  1155. ##
  1156. ## NOTE:
  1157. ## - set to `false` if using an external database
  1158. ##
  1159. enabled: true
  1160. ## the postgres database to use
  1161. ##
  1162. postgresqlDatabase: airflow
  1163. ## the postgres user to create
  1164. ##
  1165. postgresqlUsername: postgres
  1166. ## the postgres user's password
  1167. ##
  1168. ## WARNING:
  1169. ## - you should NOT use this, instead specify `postgresql.existingSecret`
  1170. ##
  1171. postgresqlPassword: airflow
  1172. ## the name of a pre-created secret containing the postgres password
  1173. ##
  1174. existingSecret: ""
  1175. ## the key within `postgresql.existingSecret` containing the password string
  1176. ##
  1177. existingSecretKey: "postgresql-password"
  1178. ## configs for the PVC of postgresql
  1179. ##
  1180. persistence:
  1181. ## if postgres will use Persistent Volume Claims to store data
  1182. ##
  1183. ## WARNING:
  1184. ## - if false, data will be LOST as postgres Pods restart
  1185. ##
  1186. enabled: true
  1187. ## the name of the StorageClass used by the PVC
  1188. ##
  1189. storageClass: ""
  1190. ## the access modes of the PVC
  1191. ##
  1192. accessModes:
  1193. - ReadWriteOnce
  1194. ## the size of PVC to request
  1195. ##
  1196. size: 8Gi
  1197. ## configs for the postgres StatefulSet
  1198. master:
  1199. ## annotations for the postgres Pod
  1200. ##
  1201. podAnnotations:
  1202. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  1203. ###################################
  1204. # Database - External Database
  1205. # - these configs are only used when `postgresql.enabled` is false
  1206. ###################################
  1207. externalDatabase:
  1208. ## the type of external database: {mysql,postgres}
  1209. ##
  1210. type: postgres
  1211. ## the host of the external database
  1212. ##
  1213. host: localhost
  1214. ## the port of the external database
  1215. ##
  1216. port: 5432
  1217. ## the database/scheme to use within the the external database
  1218. ##
  1219. database: airflow
  1220. ## the user of the external database
  1221. ##
  1222. user: airflow
  1223. ## the name of a pre-created secret containing the external database password
  1224. ##
  1225. passwordSecret: ""
  1226. ## the key within `externalDatabase.passwordSecret` containing the password string
  1227. ##
  1228. passwordSecretKey: "postgresql-password"
  1229. ## the connection properties for external database, e.g. "?sslmode=require"
  1230. properties: ""
  1231. ###################################
  1232. # Database - Redis Chart
  1233. # - https://github.com/helm/charts/tree/master/stable/redis
  1234. ###################################
  1235. redis:
  1236. ## if the `stable/redis` chart is used
  1237. ##
  1238. ## NOTE:
  1239. ## - set to `false` if using an external redis database
  1240. ## - set to `false` if `airflow.executor` is `KubernetesExecutor`
  1241. ##
  1242. enabled: false
  1243. ## the redis password
  1244. ##
  1245. ## WARNING:
  1246. ## - you should NOT use this, instead specify `redis.existingSecret`
  1247. ##
  1248. password: airflow
  1249. ## the name of a pre-created secret containing the redis password
  1250. ##
  1251. existingSecret: ""
  1252. ## the key within `redis.existingSecret` containing the password string
  1253. ##
  1254. existingSecretPasswordKey: "redis-password"
  1255. ## configs for redis cluster mode
  1256. ##
  1257. cluster:
  1258. ## if redis runs in cluster mode
  1259. ##
  1260. enabled: false
  1261. ## the number of redis slaves
  1262. ##
  1263. slaveCount: 1
  1264. ## configs for the redis master
  1265. ##
  1266. master:
  1267. ## resource requests/limits for the master Pod
  1268. ##
  1269. ## EXAMPLE:
  1270. ## resources:
  1271. ## requests:
  1272. ## cpu: "100m"
  1273. ## memory: "256Mi"
  1274. ##
  1275. resources: {}
  1276. ## annotations for the master Pod
  1277. ##
  1278. podAnnotations:
  1279. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  1280. ## configs for the PVC of the redis master
  1281. ##
  1282. persistence:
  1283. ## use a PVC to persist data
  1284. ##
  1285. enabled: false
  1286. ## the name of the StorageClass used by the PVC
  1287. ##
  1288. storageClass: ""
  1289. ## the access mode of the PVC
  1290. ##
  1291. accessModes:
  1292. - ReadWriteOnce
  1293. ## the size of PVC to request
  1294. ##
  1295. size: 8Gi
  1296. ## configs for the redis slaves
  1297. ##
  1298. slave:
  1299. ## resource requests/limits for the slave Pods
  1300. ##
  1301. ## EXAMPLE:
  1302. ## resources:
  1303. ## requests:
  1304. ## cpu: "100m"
  1305. ## memory: "256Mi"
  1306. ##
  1307. resources: {}
  1308. ## annotations for the slave Pods
  1309. ##
  1310. podAnnotations:
  1311. cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
  1312. ## configs for the PVC of the redis slaves
  1313. ##
  1314. persistence:
  1315. ## use a PVC to persist data
  1316. ##
  1317. enabled: false
  1318. ## the name of the StorageClass used by the PVC
  1319. ##
  1320. storageClass: ""
  1321. ## the access mode of the PVC
  1322. ##
  1323. accessModes:
  1324. - ReadWriteOnce
  1325. ## the size of PVC to request
  1326. ##
  1327. size: 8Gi
  1328. ###################################
  1329. # Database - External Database
  1330. # - these configs are only used when `redis.enabled` is false
  1331. ###################################
  1332. externalRedis:
  1333. ## the host of the external redis
  1334. ##
  1335. host: localhost
  1336. ## the port of the external redis
  1337. ##
  1338. port: 6379
  1339. ## the database number to use within the the external redis
  1340. ##
  1341. databaseNumber: 1
  1342. ## the name of a pre-created secret containing the external redis password
  1343. ##
  1344. passwordSecret: ""
  1345. ## the key within `externalRedis.passwordSecret` containing the password string
  1346. ##
  1347. passwordSecretKey: "redis-password"
  1348. ###################################
  1349. # Prometheus - ServiceMonitor
  1350. ###################################
  1351. serviceMonitor:
  1352. ## if the ServiceMonitor resources should be deployed
  1353. ##
  1354. ## WARNING:
  1355. ## - you will need an exporter in your airflow docker container, for example:
  1356. ## https://github.com/epoch8/airflow-exporter
  1357. ##
  1358. ## NOTE:
  1359. ## - you can install pip packages with `airflow.extraPipPackages`
  1360. ## - ServiceMonitor is a resource from: https://github.com/coreos/prometheus-operator
  1361. ##
  1362. enabled: false
  1363. ## labels for ServiceMonitor, so that Prometheus can select it
  1364. ##
  1365. selector:
  1366. prometheus: kube-prometheus
  1367. ## the ServiceMonitor web endpoint path
  1368. ##
  1369. path: /admin/metrics
  1370. ## the ServiceMonitor web endpoint interval
  1371. ##
  1372. interval: "30s"
  1373. ###################################
  1374. # Prometheus - PrometheusRule
  1375. ###################################
  1376. prometheusRule:
  1377. ## if the PrometheusRule resources should be deployed
  1378. ##
  1379. ## WARNING:
  1380. ## - you will need an exporter in your airflow docker container, for example:
  1381. ## https://github.com/epoch8/airflow-exporter
  1382. ##
  1383. ## NOTE:
  1384. ## - you can install pip packages with `airflow.extraPipPackages`
  1385. ## - PrometheusRule a resource from: https://github.com/coreos/prometheus-operator
  1386. ##
  1387. enabled: false
  1388. ## labels for PrometheusRule, so that Prometheus can select it
  1389. ##
  1390. additionalLabels: {}
  1391. ## alerting rules for Prometheus
  1392. ##
  1393. ## NOTE:
  1394. ## - documentation: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
  1395. ##
  1396. groups: []