Skip to content

Commit 1c70306

Browse files
authored
[Chart] Fix rendering condition of "git_sync_ssh_key_volume" (#59418)
* fix: fix rendering condition of "git_sync_ssh_key_volume" * test: add test case * test: split the case
1 parent f8d1e88 commit 1c70306

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

chart/files/pod-template-file.kubernetes-helm-yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ spec:
252252
- emptyDir: {{- toYaml (default (dict) .Values.logs.emptyDirConfig) | nindent 6 }}
253253
name: logs
254254
{{- end }}
255-
{{- if and .Values.dags.gitSync.enabled .Values.dags.gitSync.sshKeySecret }}
255+
{{- if and .Values.dags.gitSync.enabled (or .Values.dags.gitSync.sshKeySecret .Values.dags.gitSync.sshKey) }}
256256
{{- include "git_sync_ssh_key_volume" . | nindent 2 }}
257257
{{- end }}
258258
- configMap:

helm-tests/tests/helm_tests/airflow_aux/test_configmap.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,52 @@ def test_execution_api_server_url(
302302
"execution_api_server_url should not be set for Airflow 2.x versions"
303303
)
304304

305+
@pytest.mark.parametrize(
306+
("git_sync_enabled", "ssh_key_secret", "expected_volume"),
307+
[
308+
(True, "my-secret", True),
309+
(True, None, False),
310+
(False, "my-secret", False),
311+
],
312+
)
313+
def test_pod_template_git_sync_ssh_key_volume_with_ssh_key_secret_name(
314+
self, git_sync_enabled, ssh_key_secret, expected_volume
315+
):
316+
dag_values = {"gitSync": {"enabled": git_sync_enabled, "sshKeySecret": ssh_key_secret}}
317+
docs = render_chart(
318+
values={
319+
"executor": "KubernetesExecutor",
320+
"dags": dag_values,
321+
},
322+
show_only=["templates/configmaps/configmap.yaml"],
323+
)
324+
325+
pod_template_file = jmespath.search('data."pod_template_file.yaml"', docs[0])
326+
assert ("git-sync-ssh-key" in pod_template_file) == expected_volume
327+
328+
@pytest.mark.parametrize(
329+
("git_sync_enabled", "ssh_key", "expected_volume"),
330+
[
331+
(True, "my-key", True),
332+
(True, None, False),
333+
(False, "my-key", False),
334+
],
335+
)
336+
def test_pod_template_git_sync_ssh_key_volume_with_ssh_key(
337+
self, git_sync_enabled, ssh_key, expected_volume
338+
):
339+
dag_values = {"gitSync": {"enabled": git_sync_enabled, "sshKey": ssh_key}}
340+
docs = render_chart(
341+
values={
342+
"executor": "KubernetesExecutor",
343+
"dags": dag_values,
344+
},
345+
show_only=["templates/configmaps/configmap.yaml"],
346+
)
347+
348+
pod_template_file = jmespath.search('data."pod_template_file.yaml"', docs[0])
349+
assert ("git-sync-ssh-key" in pod_template_file) == expected_volume
350+
305351
@pytest.mark.parametrize(
306352
("scheduler_cpu_limit", "expected_sync_parallelism"),
307353
[

0 commit comments

Comments
 (0)