This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 3fc895b9df Do not declare a volume for sshKeySecret if dag persistence 
is enabled (#22913)
3fc895b9df is described below

commit 3fc895b9dfe8e7b77538bd80754fb17ccf92db49
Author: Ephraim Anierobi <[email protected]>
AuthorDate: Sat Aug 6 16:26:25 2022 +0100

    Do not declare a volume for sshKeySecret if dag persistence is enabled 
(#22913)
    
    * Do not declare a volume for sshKeySecret if dag persistence is enabled
    
    In scheduler and triggerer components, git-sync-ssh-key volume was created 
even
    when persistence is enabled. This PR fixes that and added tests
    in other components to avoid regression
---
 .../templates/scheduler/scheduler-deployment.yaml  |  4 +--
 .../templates/triggerer/triggerer-deployment.yaml  |  4 +--
 tests/charts/test_git_sync_scheduler.py            | 18 ++++++++++
 tests/charts/test_git_sync_triggerer.py            | 42 ++++++++++++++++++++++
 tests/charts/test_git_sync_webserver.py            | 18 ++++++++++
 tests/charts/test_git_sync_worker.py               | 19 ++++++++++
 6 files changed, 101 insertions(+), 4 deletions(-)

diff --git a/chart/templates/scheduler/scheduler-deployment.yaml 
b/chart/templates/scheduler/scheduler-deployment.yaml
index 8aaa24e203..3e9b94e7d8 100644
--- a/chart/templates/scheduler/scheduler-deployment.yaml
+++ b/chart/templates/scheduler/scheduler-deployment.yaml
@@ -253,10 +253,10 @@ spec:
         {{- else if .Values.dags.gitSync.enabled }}
         - name: dags
           emptyDir: {}
-        {{- end }}
-        {{- if and  .Values.dags.gitSync.enabled  
.Values.dags.gitSync.sshKeySecret }}
+        {{- if .Values.dags.gitSync.sshKeySecret }}
         {{- include "git_sync_ssh_key_volume" . | indent 8 }}
         {{- end }}
+        {{- end}}
 {{- end }}
 {{- if .Values.scheduler.extraVolumes }}
 {{ toYaml .Values.scheduler.extraVolumes | indent 8 }}
diff --git a/chart/templates/triggerer/triggerer-deployment.yaml 
b/chart/templates/triggerer/triggerer-deployment.yaml
index 7842e76de8..b0464dbc13 100644
--- a/chart/templates/triggerer/triggerer-deployment.yaml
+++ b/chart/templates/triggerer/triggerer-deployment.yaml
@@ -199,10 +199,10 @@ spec:
         {{- else if .Values.dags.gitSync.enabled }}
         - name: dags
           emptyDir: {}
-        {{- end }}
-        {{- if and .Values.dags.gitSync.enabled 
.Values.dags.gitSync.sshKeySecret }}
+        {{- if .Values.dags.gitSync.sshKeySecret }}
         {{- include "git_sync_ssh_key_volume" . | indent 8 }}
         {{- end }}
+        {{- end }}
         {{- if .Values.triggerer.extraVolumes }}
         {{- toYaml .Values.triggerer.extraVolumes | nindent 8 }}
         {{- end }}
diff --git a/tests/charts/test_git_sync_scheduler.py 
b/tests/charts/test_git_sync_scheduler.py
index ba4ca833b7..a7dd5ad5c9 100644
--- a/tests/charts/test_git_sync_scheduler.py
+++ b/tests/charts/test_git_sync_scheduler.py
@@ -131,6 +131,24 @@ class GitSyncSchedulerTest(unittest.TestCase):
             "secret": {"secretName": "ssh-secret", "defaultMode": 288},
         } in jmespath.search("spec.template.spec.volumes", docs[0])
 
+    def test_validate_sshkeysecret_not_added_when_persistence_is_enabled(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "containerName": "git-sync-test",
+                        "sshKeySecret": "ssh-secret",
+                        "knownHosts": None,
+                        "branch": "test-branch",
+                    },
+                    "persistence": {"enabled": True},
+                }
+            },
+            show_only=["templates/scheduler/scheduler-deployment.yaml"],
+        )
+        assert "git-sync-ssh-key" not in 
jmespath.search("spec.template.spec.volumes[].name", docs[0])
+
     def test_should_set_username_and_pass_env_variables(self):
         docs = render_chart(
             values={
diff --git a/tests/charts/test_git_sync_triggerer.py 
b/tests/charts/test_git_sync_triggerer.py
new file mode 100644
index 0000000000..23f89b350f
--- /dev/null
+++ b/tests/charts/test_git_sync_triggerer.py
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import unittest
+
+import jmespath
+
+from tests.charts.helm_template_generator import render_chart
+
+
+class GitSyncTriggererTest(unittest.TestCase):
+    def test_validate_sshkeysecret_not_added_when_persistence_is_enabled(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "containerName": "git-sync-test",
+                        "sshKeySecret": "ssh-secret",
+                        "knownHosts": None,
+                        "branch": "test-branch",
+                    },
+                    "persistence": {"enabled": True},
+                }
+            },
+            show_only=["templates/triggerer/triggerer-deployment.yaml"],
+        )
+        assert "git-sync-ssh-key" not in 
jmespath.search("spec.template.spec.volumes[].name", docs[0])
diff --git a/tests/charts/test_git_sync_webserver.py 
b/tests/charts/test_git_sync_webserver.py
index 545abed9a2..3d70400b98 100644
--- a/tests/charts/test_git_sync_webserver.py
+++ b/tests/charts/test_git_sync_webserver.py
@@ -170,3 +170,21 @@ class GitSyncWebserverTest(unittest.TestCase):
             "spec.template.spec.containers[1].resources.requests.memory", 
docs[0]
         )
         assert "300m" == 
jmespath.search("spec.template.spec.containers[1].resources.requests.cpu", 
docs[0])
+
+    def test_validate_sshkeysecret_not_added_when_persistence_is_enabled(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "containerName": "git-sync-test",
+                        "sshKeySecret": "ssh-secret",
+                        "knownHosts": None,
+                        "branch": "test-branch",
+                    },
+                    "persistence": {"enabled": True},
+                }
+            },
+            show_only=["templates/webserver/webserver-deployment.yaml"],
+        )
+        assert "git-sync-ssh-key" not in 
jmespath.search("spec.template.spec.volumes[].name", docs[0])
diff --git a/tests/charts/test_git_sync_worker.py 
b/tests/charts/test_git_sync_worker.py
index 720b724747..8420797512 100644
--- a/tests/charts/test_git_sync_worker.py
+++ b/tests/charts/test_git_sync_worker.py
@@ -112,3 +112,22 @@ class GitSyncWorkerTest(unittest.TestCase):
             "spec.template.spec.containers[1].resources.requests.memory", 
docs[0]
         )
         assert "300m" == 
jmespath.search("spec.template.spec.containers[1].resources.requests.cpu", 
docs[0])
+
+    def test_validate_sshkeysecret_not_added_when_persistence_is_enabled(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "containerName": "git-sync-test",
+                        "sshKeySecret": "ssh-secret",
+                        "knownHosts": None,
+                        "branch": "test-branch",
+                    },
+                    "persistence": {"enabled": True},
+                }
+            },
+            show_only=["templates/workers/worker-deployment.yaml"],
+        )
+
+        assert "git-sync-ssh-key" not in 
jmespath.search("spec.template.spec.volumes[].name", docs[0])

Reply via email to