Skip to content

Commit f6b05fe

Browse files
authored
Chart: allow passing custom env to log groomer sidecar containers (apache#46003)
1 parent a5313b3 commit f6b05fe

File tree

7 files changed

+59
-5
lines changed

7 files changed

+59
-5
lines changed

chart/templates/dag-processor/dag-processor-deployment.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,15 @@ spec:
210210
{{- if .Values.dagProcessor.logGroomerSidecar.args }}
211211
args: {{- tpl (toYaml .Values.dagProcessor.logGroomerSidecar.args) . | nindent 12 }}
212212
{{- end }}
213-
{{- if .Values.dagProcessor.logGroomerSidecar.retentionDays }}
214213
env:
214+
{{- if .Values.dagProcessor.logGroomerSidecar.retentionDays }}
215215
- name: AIRFLOW__LOG_RETENTION_DAYS
216216
value: "{{ .Values.dagProcessor.logGroomerSidecar.retentionDays }}"
217+
{{- end }}
217218
- name: AIRFLOW_HOME
218219
value: "{{ .Values.airflowHome }}"
220+
{{- if .Values.dagProcessor.logGroomerSidecar.env }}
221+
{{- tpl (toYaml .Values.dagProcessor.logGroomerSidecar.env) $ | nindent 12 }}
219222
{{- end }}
220223
volumeMounts:
221224
- name: logs

chart/templates/scheduler/scheduler-deployment.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,15 @@ spec:
268268
{{- if .Values.scheduler.logGroomerSidecar.args }}
269269
args: {{- tpl (toYaml .Values.scheduler.logGroomerSidecar.args) . | nindent 12 }}
270270
{{- end }}
271-
{{- if .Values.scheduler.logGroomerSidecar.retentionDays }}
272271
env:
272+
{{- if .Values.scheduler.logGroomerSidecar.retentionDays }}
273273
- name: AIRFLOW__LOG_RETENTION_DAYS
274274
value: "{{ .Values.scheduler.logGroomerSidecar.retentionDays }}"
275+
{{- end }}
275276
- name: AIRFLOW_HOME
276277
value: "{{ .Values.airflowHome }}"
278+
{{- if .Values.scheduler.logGroomerSidecar.env }}
279+
{{- tpl (toYaml .Values.scheduler.logGroomerSidecar.env) $ | nindent 12 }}
277280
{{- end }}
278281
volumeMounts:
279282
- name: logs

chart/templates/triggerer/triggerer-deployment.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,15 @@ spec:
240240
{{- if .Values.triggerer.logGroomerSidecar.args }}
241241
args: {{- tpl (toYaml .Values.triggerer.logGroomerSidecar.args) . | nindent 12 }}
242242
{{- end }}
243-
{{- if .Values.triggerer.logGroomerSidecar.retentionDays }}
244243
env:
244+
{{- if .Values.triggerer.logGroomerSidecar.retentionDays }}
245245
- name: AIRFLOW__LOG_RETENTION_DAYS
246246
value: "{{ .Values.triggerer.logGroomerSidecar.retentionDays }}"
247+
{{- end }}
247248
- name: AIRFLOW_HOME
248249
value: "{{ .Values.airflowHome }}"
250+
{{- if .Values.triggerer.logGroomerSidecar.env }}
251+
{{- tpl (toYaml .Values.triggerer.logGroomerSidecar.env) $ | nindent 12 }}
249252
{{- end }}
250253
volumeMounts:
251254
- name: logs

chart/templates/workers/worker-deployment.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -322,12 +322,15 @@ spec:
322322
{{- if .Values.workers.logGroomerSidecar.args }}
323323
args: {{ tpl (toYaml .Values.workers.logGroomerSidecar.args) . | nindent 12 }}
324324
{{- end }}
325-
{{- if .Values.workers.logGroomerSidecar.retentionDays }}
326325
env:
326+
{{- if .Values.workers.logGroomerSidecar.retentionDays }}
327327
- name: AIRFLOW__LOG_RETENTION_DAYS
328328
value: "{{ .Values.workers.logGroomerSidecar.retentionDays }}"
329+
{{- end }}
329330
- name: AIRFLOW_HOME
330331
value: "{{ .Values.airflowHome }}"
332+
{{- if .Values.workers.logGroomerSidecar.env }}
333+
{{- tpl (toYaml .Values.workers.logGroomerSidecar.env) $ | nindent 12 }}
331334
{{- end }}
332335
resources: {{- toYaml .Values.workers.logGroomerSidecar.resources | nindent 12 }}
333336
volumeMounts:

chart/values.schema.json

+10
Original file line numberDiff line numberDiff line change
@@ -12197,6 +12197,16 @@
1219712197
"type": "integer",
1219812198
"default": 15
1219912199
},
12200+
"env": {
12201+
"description": "Add additional env vars to log groomer sidecar container (templated).",
12202+
"items": {
12203+
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVar"
12204+
},
12205+
"type": "array",
12206+
"default": [],
12207+
"x-kubernetes-patch-merge-key": "name",
12208+
"x-kubernetes-patch-strategy": "merge"
12209+
},
1220012210
"resources": {
1220112211
"description": "Resources for Airflow log groomer sidecar.",
1220212212
"type": "object",

chart/values.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,7 @@ workers:
831831
# Detailed default security context for logGroomerSidecar for container level
832832
securityContexts:
833833
container: {}
834+
env: []
834835

835836
waitForMigrations:
836837
# Whether to create init container to wait for db migrations
@@ -1034,6 +1035,7 @@ scheduler:
10341035
container: {}
10351036
# container level lifecycle hooks
10361037
containerLifecycleHooks: {}
1038+
env: []
10371039

10381040
waitForMigrations:
10391041
# Whether to create init container to wait for db migrations
@@ -1748,6 +1750,8 @@ triggerer:
17481750
# container level lifecycle hooks
17491751
containerLifecycleHooks: {}
17501752

1753+
env: []
1754+
17511755
waitForMigrations:
17521756
# Whether to create init container to wait for db migrations
17531757
enabled: true
@@ -1928,6 +1932,8 @@ dagProcessor:
19281932
securityContexts:
19291933
container: {}
19301934

1935+
env: []
1936+
19311937
waitForMigrations:
19321938
# Whether to create init container to wait for db migrations
19331939
enabled: true

tests/charts/log_groomer.py

+27-1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,32 @@ def test_log_groomer_collector_default_retention_days(self):
9090
)
9191
assert jmespath.search("spec.template.spec.containers[1].env[0].value", docs[0]) == "15"
9292

93+
def test_log_groomer_collector_custom_env(self):
94+
env = [
95+
{"name": "APP_RELEASE_NAME", "value": "{{ .Release.Name }}-airflow"},
96+
{"name": "APP__LOG_RETENTION_DAYS", "value": "5"},
97+
]
98+
99+
if self.obj_name == "dag-processor":
100+
values = {"dagProcessor": {"enabled": True, "logGroomerSidecar": {"env": env}}}
101+
else:
102+
values = {
103+
"workers": {"logGroomerSidecar": {"env": env}},
104+
"scheduler": {"logGroomerSidecar": {"env": env}},
105+
"triggerer": {"logGroomerSidecar": {"env": env}},
106+
}
107+
108+
docs = render_chart(
109+
values=values, show_only=[f"templates/{self.folder}/{self.obj_name}-deployment.yaml"]
110+
)
111+
112+
assert {"name": "APP_RELEASE_NAME", "value": "release-name-airflow"} in jmespath.search(
113+
"spec.template.spec.containers[1].env", docs[0]
114+
)
115+
assert {"name": "APP__LOG_RETENTION_DAYS", "value": "5"} in jmespath.search(
116+
"spec.template.spec.containers[1].env", docs[0]
117+
)
118+
93119
@pytest.mark.parametrize("command", [None, ["custom", "command"]])
94120
@pytest.mark.parametrize("args", [None, ["custom", "args"]])
95121
def test_log_groomer_command_and_args_overrides(self, command, args):
@@ -163,7 +189,7 @@ def test_log_groomer_retention_days_overrides(self, retention_days, retention_re
163189
"spec.template.spec.containers[1].env[0].value", docs[0]
164190
)
165191
else:
166-
assert jmespath.search("spec.template.spec.containers[1].env", docs[0]) is None
192+
assert len(jmespath.search("spec.template.spec.containers[1].env", docs[0])) == 1
167193

168194
def test_log_groomer_resources(self):
169195
if self.obj_name == "dag-processor":

0 commit comments

Comments
 (0)