Skip to content

Commit c70cb3b

Browse files
authored
Chore: Airflow use the open-source chart and update the web server launch arguments to decrease memory usage (#116) (#117)
Signed-off-by: xingcan-ltc <xingcan.hu@hotmail.com>
1 parent 7003e63 commit c70cb3b

File tree

1 file changed

+35
-54
lines changed

1 file changed

+35
-54
lines changed

catalog/airflow/x-definitions/app-airflow.cue

Lines changed: 35 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ template: {
5252
type: "helm"
5353
properties: {
5454
chart: "airflow"
55-
version: parameter.chartVersion
55+
version: "1.14.0"
5656
url: context["helm_repo_url"]
5757
repoType: "oci"
5858
releaseName: context.name
@@ -81,12 +81,32 @@ template: {
8181
"dag_dir_list_interval": 60
8282
}
8383
}
84+
enableBuiltInSecretEnvVars: {
85+
"AIRFLOW_CONN_AIRFLOW_DB": false
86+
"AIRFLOW__CORE__SQL_ALCHEMY_CONN": false
87+
"AIRFLOW__DATABASE__SQL_ALCHEMY_CONN": false
88+
}
8489
extraEnvFrom: """
8590
- secretRef:
8691
name: '\(parameter.dependencies.mysql.mysqlSecret)'
8792
- configMapRef:
8893
name: '\(parameter.dependencies.mysql.mysqlSetting)'
8994
"""
95+
96+
extraEnv: """
97+
- name: AIRFLOW__DATABASE__SQL_ALCHEMY_CONN
98+
value: "mysql://$(MYSQL_USER):$(MYSQL_PASSWORD)@$(MYSQL_HOST):$(MYSQL_PORT)/\(_databaseName)"
99+
"""
100+
101+
migrateDatabaseJob: {
102+
command: [
103+
"bash", "-c",
104+
]
105+
args: [
106+
"mysql -h $MYSQL_HOST -P $MYSQL_PORT -u $MYSQL_USER -p$MYSQL_PASSWORD -e \"CREATE DATABASE IF NOT EXISTS \(_databaseName) CHARACTER SET utf8mb4;\" && airflow db migrate",
107+
]
108+
}
109+
90110
data: {
91111
metadataConnection: {
92112
protocol: "mysql"
@@ -103,6 +123,14 @@ template: {
103123
webserverSecretKey: "feab0e05d989b76acb325a8b35e596c9"
104124
webserver: {
105125
replicas: parameter.webserver.replicas
126+
args: [
127+
"airflow",
128+
"webserver",
129+
"--workers",
130+
"\(parameter.webserver.workerCount)",
131+
"--workerclass",
132+
"gevent",
133+
]
106134
resources: {
107135
limits: {
108136
cpu: parameter.webserver.resources.limits.cpu
@@ -136,55 +164,7 @@ template: {
136164
failureThreshold: 20
137165
periodSeconds: 10
138166
}
139-
extraInitContainers: [
140-
{
141-
name: "create-mysql-database"
142-
image: _imageRegistry + "bitnami/mysql:8.0.22"
143-
env: [
144-
{
145-
name: "PASSWORD"
146-
valueFrom: {
147-
secretKeyRef: {
148-
key: "MYSQL_PASSWORD"
149-
name: "\(parameter.dependencies.mysql.mysqlSecret)"
150-
}
151-
}
152-
},
153-
{
154-
name: "USER"
155-
valueFrom: {
156-
secretKeyRef: {
157-
key: "MYSQL_USER"
158-
name: "\(parameter.dependencies.mysql.mysqlSecret)"
159-
}
160-
}
161-
},
162-
{
163-
name: "DATABASE"
164-
value: _databaseName
165-
},
166-
{
167-
name: "MYSQL_HOST"
168-
valueFrom: configMapKeyRef: {
169-
name: "\(parameter.dependencies.mysql.mysqlSetting)"
170-
key: "MYSQL_HOST"
171-
}
172-
},
173-
{
174-
name: "MYSQL_PORT"
175-
valueFrom: configMapKeyRef: {
176-
name: "\(parameter.dependencies.mysql.mysqlSetting)"
177-
key: "MYSQL_PORT"
178-
}
179-
},
180-
]
181-
command: [
182-
"sh",
183-
"-c",
184-
"mysql -h $MYSQL_HOST -P $MYSQL_PORT -u $USER -p$PASSWORD -e \"CREATE DATABASE IF NOT EXISTS $DATABASE CHARACTER SET utf8mb4;\"",
185-
]
186-
},
187-
]
167+
188168
}
189169
workers: {
190170
replicas: parameter.workers.replicas
@@ -307,6 +287,11 @@ template: {
307287
// // +pattern=^([1-9]\d*)$
308288
// +err:options={"pattern":"请输入正确的副本数"}
309289
replicas: *1 | int
290+
291+
// +minimum=1
292+
// +ui:description=worker 数量,增大可以提高webserver并发
293+
// +ui:order=3
294+
workerCount: *1 | int
310295
}
311296
// +ui:title=Scheduler
312297
// +ui:order=4
@@ -391,10 +376,6 @@ template: {
391376
replicas: *1 | int
392377
}
393378

394-
// +ui:description=Helm Chart 版本号
395-
// +ui:order=100
396-
// +ui:options={"disabled":true}
397-
chartVersion: string
398379
// +ui:description=镜像版本
399380
// +ui:order=101
400381
// +ui:options={"disabled":true}

0 commit comments

Comments
 (0)