@@ -68,13 +68,13 @@ airflowHome: /opt/airflow
6868defaultAirflowRepository : ghcr.io/sage-bionetworks-workflows/orca-recipes
6969
7070# Default airflow tag to deploy
71- defaultAirflowTag : " 0.1 .0"
71+ defaultAirflowTag : " 0.2 .0"
7272
7373# Default airflow digest. If specified, it takes precedence over tag
7474defaultAirflowDigest : ~
7575
7676# Airflow version (Used to make some decisions based on Airflow Version being deployed)
77- airflowVersion : " 2.9.3 "
77+ airflowVersion : " 2.10.5 "
7878
7979# Images
8080images :
@@ -105,7 +105,7 @@ images:
105105 pullPolicy : IfNotPresent
106106 statsd :
107107 repository : quay.io/prometheus/statsd-exporter
108- tag : v0.26.1
108+ tag : v0.28.0
109109 pullPolicy : IfNotPresent
110110 redis :
111111 repository : redis
@@ -115,15 +115,15 @@ images:
115115 pullPolicy : IfNotPresent
116116 pgbouncer :
117117 repository : apache/airflow
118- tag : airflow-pgbouncer-2024 .01.19 -1.21 .0
118+ tag : airflow-pgbouncer-2025 .01.10 -1.24 .0
119119 pullPolicy : IfNotPresent
120120 pgbouncerExporter :
121121 repository : apache/airflow
122122 tag : airflow-pgbouncer-exporter-2024.06.18-0.17.0
123123 pullPolicy : IfNotPresent
124124 gitSync :
125125 repository : registry.k8s.io/git-sync/git-sync
126- tag : v4.1 .0
126+ tag : v4.3 .0
127127 pullPolicy : IfNotPresent
128128
129129# Select certain nodes for airflow pods.
@@ -162,7 +162,7 @@ ingress:
162162
163163 # The hostnames or hosts configuration for the web Ingress
164164 hosts : []
165- # # The hostname for the web Ingress (can be templated)
165+ # # The hostname for the web Ingress (templated)
166166 # - name: ""
167167 # # configs for web Ingress TLS
168168 # tls:
@@ -206,7 +206,7 @@ ingress:
206206
207207 # The hostnames or hosts configuration for the flower Ingress
208208 hosts : []
209- # # The hostname for the flower Ingress (can be templated)
209+ # # The hostname for the flower Ingress (templated)
210210 # - name: ""
211211 # tls:
212212 # # Enable TLS termination for the flower Ingress
@@ -237,7 +237,7 @@ airflowPodAnnotations: {}
237237# main Airflow configmap
238238airflowConfigAnnotations : {}
239239
240- # `airflow_local_settings` file as a string (can be templated).
240+ # `airflow_local_settings` file as a string (templated).
241241airflowLocalSettings : |-
242242 {{- if semverCompare ">=2.2.0" .Values.airflowVersion }}
243243 {{- if not (or .Values.webserverSecretKey .Values.webserverSecretKeySecretName) }}
@@ -266,6 +266,7 @@ rbac:
266266
267267# Airflow executor
268268# One of: LocalExecutor, LocalKubernetesExecutor, CeleryExecutor, KubernetesExecutor, CeleryKubernetesExecutor
269+ # Specify executors in a prioritized list to leverage multiple execution environments as needed.
269270executor : " CeleryExecutor"
270271
271272# If this is true and using LocalExecutor/KubernetesExecutor/CeleryKubernetesExecutor, the scheduler's
@@ -307,6 +308,7 @@ enableBuiltInSecretEnvVars:
307308 AIRFLOW__CELERY__BROKER_URL : true
308309 AIRFLOW__ELASTICSEARCH__HOST : true
309310 AIRFLOW__ELASTICSEARCH__ELASTICSEARCH_HOST : true
311+ # AIRFLOW__OPENSEARCH__HOST: true
310312
311313# Priority Classes that will be installed by charts.
312314# Ideally, there should be an entry for dagProcessor, flower,
@@ -326,9 +328,9 @@ priorityClasses: []
326328# Extra secrets that will be managed by the chart
327329# (You can use them with extraEnv or extraEnvFrom or some of the extraVolumes values).
328330# The format for secret data is "key/value" where
329- # * key (can be templated) is the name of the secret that will be created
331+ # * key (templated) is the name of the secret that will be created
330332# * value: an object with the standard 'data' or 'stringData' key (or both).
331- # The value associated with those keys must be a string (can be templated)
333+ # The value associated with those keys must be a string (templated)
332334extraSecrets : {}
333335# eg:
334336# extraSecrets:
@@ -353,9 +355,9 @@ extraSecrets: {}
353355# Extra ConfigMaps that will be managed by the chart
354356# (You can use them with extraEnv or extraEnvFrom or some of the extraVolumes values).
355357# The format for configmap data is "key/value" where
356- # * key (can be templated) is the name of the configmap that will be created
358+ # * key (templated) is the name of the configmap that will be created
357359# * value: an object with the standard 'data' key.
358- # The value associated with this keys must be a string (can be templated)
360+ # The value associated with this keys must be a string (templated)
359361extraConfigMaps : {}
360362# eg:
361363# extraConfigMaps:
@@ -367,7 +369,7 @@ extraConfigMaps: {}
367369# AIRFLOW_VAR_KUBERNETES_NAMESPACE: "{{ .Release.Namespace }}"
368370
369371# Extra env 'items' that will be added to the definition of airflow containers
370- # a string is expected (can be templated).
372+ # a string is expected (templated).
371373# TODO: difference from `env`? This is a templated string. Probably should template `env` and remove this.
372374extraEnv : ~
373375# eg:
@@ -532,6 +534,9 @@ workers:
532534 maxSurge : " 100%"
533535 maxUnavailable : " 50%"
534536
537+ # Allow relaxing ordering guarantees while preserving its uniqueness and identity
538+ # podManagementPolicy: Parallel
539+
535540 # When not set, the values defined in the global securityContext will be used
536541 securityContext : {}
537542 # runAsUser: 50000
@@ -594,7 +599,8 @@ workers:
594599 SELECT ceil(COUNT(*)::decimal / {{ .Values.config.celery.worker_concurrency }})
595600 FROM task_instance
596601 WHERE (state='running' OR state='queued')
597- {{- if eq .Values.executor "CeleryKubernetesExecutor" }}
602+ {{- if or (contains "CeleryKubernetesExecutor" .Values.executor)
603+ (contains "KubernetesExecutor" .Values.executor) }}
598604 AND queue != '{{ .Values.config.celery_kubernetes_executor.kubernetes_queue }}'
599605 {{- end }}
600606
@@ -779,8 +785,6 @@ workers:
779785 securityContexts :
780786 container : {}
781787
782- env : []
783-
784788 volumeClaimTemplates : []
785789 # Additional volumeClaimTemplates needed.
786790 # Comment out the above and uncomment the section below to enable it.
@@ -870,7 +874,7 @@ scheduler:
870874
871875 # Create ServiceAccount
872876 serviceAccount :
873- # default value is true
877+ # only affect CeleryExecutor, default value is true
874878 # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
875879 automountServiceAccountToken : true
876880 # Specifies whether a ServiceAccount should be created
@@ -1186,18 +1190,15 @@ migrateDatabaseJob:
11861190 useHelmHooks : false
11871191 applyCustomEnv : true
11881192
1189- # rpcServer support is experimental / dev purpose only and will later be renamed
1190- _rpcServer :
1191- enabled : false
1193+ _apiServer :
11921194
11931195 # Labels specific to workers objects and pods
11941196 labels : {}
11951197
1196- # Command to use when running the Airflow rpc server (templated).
1197- command :
1198- - " bash"
1199- # Args to use when running the Airflow rpc server (templated).
1200- args : ["-c", "exec airflow internal-api"]
1198+ # Command to use when running the Airflow API server (templated).
1199+ command : ~
1200+ # Args to use when running the Airflow API server (templated).
1201+ args : ["bash", "-c", "exec airflow fastapi-api"]
12011202 env : []
12021203 serviceAccount :
12031204 # default value is true
@@ -1216,8 +1217,8 @@ _rpcServer:
12161217 # # service annotations
12171218 annotations : {}
12181219 ports :
1219- - name : rpc -server
1220- port : " {{ .Values.ports._rpcServer }} "
1220+ - name : api -server
1221+ port : " 9091 "
12211222
12221223 loadBalancerIP : ~
12231224 # # Limit load balancer source ips to list of CIDRs
@@ -1250,15 +1251,13 @@ _rpcServer:
12501251 # Launch additional containers into the flower pods.
12511252 extraContainers : []
12521253
1253- # Additional network policies as needed (Deprecated - renamed to `webserver.networkPolicy.ingress.from`)
1254- extraNetworkPolicies : []
12551254 networkPolicy :
12561255 ingress :
12571256 # Peers for webserver NetworkPolicy ingress
12581257 from : []
12591258 # Ports for webserver NetworkPolicy ingress (if `from` is set)
12601259 ports :
1261- - port : " {{ .Values.ports._rpcServer }} "
1260+ - port : " 9091 "
12621261
12631262 resources : {}
12641263 # limits:
@@ -1282,8 +1281,6 @@ _rpcServer:
12821281 periodSeconds : 10
12831282 scheme : HTTP
12841283
1285- # Wait for at most 1 minute (6*10s) for the RPC server container to startup.
1286- # livenessProbe kicks in after the first successful startupProbe
12871284 startupProbe :
12881285 timeoutSeconds : 20
12891286 failureThreshold : 6
@@ -1336,6 +1333,7 @@ webserver:
13361333 # Args to use when running the Airflow webserver (templated).
13371334 args : ["bash", "-c", "exec airflow webserver"]
13381335
1336+
13391337 # Create ServiceAccount
13401338 serviceAccount :
13411339 # default value is true
@@ -1426,7 +1424,7 @@ webserver:
14261424 extraVolumes : []
14271425 extraVolumeMounts : []
14281426
1429- # This string (can be templated) will be mounted into the Airflow Webserver
1427+ # This string (templated) will be mounted into the Airflow Webserver
14301428 # as a custom webserver_config.py. You can bake a webserver_config.py in to
14311429 # your image instead or specify a configmap containing the
14321430 # webserver_config.py.
@@ -2192,6 +2190,8 @@ pgbouncer:
21922190 # - name: my-templated-extra-volume
21932191 # mountPath: "{{ .Values.my_custom_path }}"
21942192 # readOnly: true
2193+ # Volumes apply to all pgbouncer containers, while volume mounts apply to the pgbouncer
2194+ # container itself. Metrics exporter container has its own mounts.
21952195 extraVolumes : []
21962196 extraVolumeMounts : []
21972197
@@ -2380,6 +2380,22 @@ elasticsearch:
23802380 # port: ~
23812381 connection : {}
23822382
2383+ # OpenSearch logging configuration
2384+ opensearch :
2385+ # Enable opensearch task logging
2386+ enabled : false
2387+ # A secret containing the connection
2388+ secretName : ~
2389+ # Or an object representing the connection
2390+ # Example:
2391+ # connection:
2392+ # scheme: ~
2393+ # user: ~
2394+ # pass: ~
2395+ # host: ~
2396+ # port: ~
2397+ connection : {}
2398+
23832399# All ports used by chart
23842400ports :
23852401 flowerUI : 5555
@@ -2391,8 +2407,7 @@ ports:
23912407 statsdScrape : 9102
23922408 pgbouncer : 6543
23932409 pgbouncerScrape : 9127
2394- # rpcServer support is experimental / dev purpose only and will later be renamed
2395- _rpcServer : 9080
2410+ # _apiServer: 9091
23962411
23972412# Define any ResourceQuotas for namespace
23982413quotas : {}
@@ -2499,10 +2514,10 @@ config:
24992514 executor : ' {{ .Values.executor }}'
25002515 # For Airflow 1.10, backward compatibility; moved to [logging] in 2.0
25012516 colored_console_log : ' False'
2502- remote_logging : ' {{- ternary "True" "False" .Values.elasticsearch.enabled }}'
2517+ remote_logging : ' {{- ternary "True" "False" (or .Values.elasticsearch.enabled .Values.opensearch.enabled) }}'
25032518 allowed_deserialization_classes_regexp : " .*"
25042519 logging :
2505- remote_logging : ' {{- ternary "True" "False" .Values.elasticsearch.enabled }}'
2520+ remote_logging : ' {{- ternary "True" "False" (or .Values.elasticsearch.enabled .Values.opensearch.enabled) }}'
25062521 colored_console_log : ' False'
25072522 metrics :
25082523 statsd_on : ' {{ ternary "True" "False" .Values.statsd.enabled }}'
@@ -2517,7 +2532,7 @@ config:
25172532 flower_url_prefix : ' {{ ternary "" .Values.ingress.flower.path (eq .Values.ingress.flower.path "/") }}'
25182533 worker_concurrency : 16
25192534 scheduler :
2520- standalone_dag_processor : ' {{ ternary "True" "False" . Values.dagProcessor.enabled }}'
2535+ standalone_dag_processor : ' {{ ternary "True" "False" (or (semverCompare ">=3.0.0" . Values.airflowVersion) (.Values. dagProcessor.enabled | default false)) }}'
25212536 # statsd params included for Airflow 1.10 backward compatibility; moved to [metrics] in 2.0
25222537 statsd_on : ' {{ ternary "True" "False" .Values.statsd.enabled }}'
25232538 statsd_port : 9125
@@ -2743,4 +2758,3 @@ logs:
27432758 storageClassName : gp3
27442759 # # the name of an existing PVC to use
27452760 existingClaim :
2746-
0 commit comments