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

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


The following commit(s) were added to refs/heads/master by this push:
     new c90284d  Configurable resources for git-sync sidecar (#16080)
c90284d is described below

commit c90284d84e42993204d84cccaf5c03359ca0cdbd
Author: Hippolyte Vergnol <[email protected]>
AuthorDate: Wed May 26 16:08:37 2021 +0200

    Configurable resources for git-sync sidecar (#16080)
---
 chart/templates/_helpers.yaml          |  1 +
 chart/tests/test_git_sync_scheduler.py | 22 ++++++++++++++++++++++
 chart/tests/test_git_sync_webserver.py | 22 ++++++++++++++++++++++
 chart/tests/test_git_sync_worker.py    | 21 +++++++++++++++++++++
 chart/tests/test_pod_template_file.py  |  1 +
 chart/values.schema.json               | 17 +++++++++++++++++
 chart/values.yaml                      |  7 +++++++
 7 files changed, 91 insertions(+)

diff --git a/chart/templates/_helpers.yaml b/chart/templates/_helpers.yaml
index d8bae0b..ab1553d 100644
--- a/chart/templates/_helpers.yaml
+++ b/chart/templates/_helpers.yaml
@@ -193,6 +193,7 @@ If release name contains chart name it will be used as a 
full name.
     - name: {{ $config.name }}
       value: {{ $config.value | quote }}
     {{- end }}
+  resources: {{ toYaml .Values.dags.gitSync.resources | nindent 6 }}
   volumeMounts:
   - name: dags
     mountPath: /git
diff --git a/chart/tests/test_git_sync_scheduler.py 
b/chart/tests/test_git_sync_scheduler.py
index 9911946..8079571 100644
--- a/chart/tests/test_git_sync_scheduler.py
+++ b/chart/tests/test_git_sync_scheduler.py
@@ -98,6 +98,7 @@ class GitSyncSchedulerTest(unittest.TestCase):
                 {"name": "GIT_SYNC_MAX_SYNC_FAILURES", "value": "70"},
             ],
             "volumeMounts": [{"mountPath": "/git", "name": "dags"}],
+            "resources": {},
         } == jmespath.search("spec.template.spec.containers[1]", docs[0])
 
     def test_validate_if_ssh_params_are_added(self):
@@ -230,3 +231,24 @@ class GitSyncSchedulerTest(unittest.TestCase):
         assert {"name": "FOO", "value": "bar"} in jmespath.search(
             "spec.template.spec.containers[1].env", docs[0]
         )
+
+    def test_resources_are_configurable(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "resources": {
+                            "limits": {"cpu": "200m", 'memory': "128Mi"},
+                            "requests": {"cpu": "300m", 'memory': "169Mi"},
+                        },
+                    },
+                },
+            },
+            show_only=["templates/scheduler/scheduler-deployment.yaml"],
+        )
+        assert "128Mi" == 
jmespath.search("spec.template.spec.containers[1].resources.limits.memory", 
docs[0])
+        assert "169Mi" == jmespath.search(
+            "spec.template.spec.containers[1].resources.requests.memory", 
docs[0]
+        )
+        assert "300m" == 
jmespath.search("spec.template.spec.containers[1].resources.requests.cpu", 
docs[0])
diff --git a/chart/tests/test_git_sync_webserver.py 
b/chart/tests/test_git_sync_webserver.py
index 4c6f544..506452f 100644
--- a/chart/tests/test_git_sync_webserver.py
+++ b/chart/tests/test_git_sync_webserver.py
@@ -148,3 +148,25 @@ class GitSyncWebserverTest(unittest.TestCase):
         assert {"name": "FOO", "value": "bar"} in jmespath.search(
             "spec.template.spec.containers[1].env", docs[0]
         )
+
+    def test_resources_are_configurable(self):
+        docs = render_chart(
+            values={
+                "airflowVersion": "1.10.14",
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "resources": {
+                            "limits": {"cpu": "200m", 'memory': "128Mi"},
+                            "requests": {"cpu": "300m", 'memory': "169Mi"},
+                        },
+                    },
+                },
+            },
+            show_only=["templates/webserver/webserver-deployment.yaml"],
+        )
+        assert "128Mi" == 
jmespath.search("spec.template.spec.containers[1].resources.limits.memory", 
docs[0])
+        assert "169Mi" == jmespath.search(
+            "spec.template.spec.containers[1].resources.requests.memory", 
docs[0]
+        )
+        assert "300m" == 
jmespath.search("spec.template.spec.containers[1].resources.requests.cpu", 
docs[0])
diff --git a/chart/tests/test_git_sync_worker.py 
b/chart/tests/test_git_sync_worker.py
index d7e9b44..9ab1ef2 100644
--- a/chart/tests/test_git_sync_worker.py
+++ b/chart/tests/test_git_sync_worker.py
@@ -91,3 +91,24 @@ class GitSyncWorkerTest(unittest.TestCase):
         assert {"name": "FOO", "value": "bar"} in jmespath.search(
             "spec.template.spec.containers[1].env", docs[0]
         )
+
+    def test_resources_are_configurable(self):
+        docs = render_chart(
+            values={
+                "dags": {
+                    "gitSync": {
+                        "enabled": True,
+                        "resources": {
+                            "limits": {"cpu": "200m", 'memory': "128Mi"},
+                            "requests": {"cpu": "300m", 'memory': "169Mi"},
+                        },
+                    },
+                },
+            },
+            show_only=["templates/workers/worker-deployment.yaml"],
+        )
+        assert "128Mi" == 
jmespath.search("spec.template.spec.containers[1].resources.limits.memory", 
docs[0])
+        assert "169Mi" == jmespath.search(
+            "spec.template.spec.containers[1].resources.requests.memory", 
docs[0]
+        )
+        assert "300m" == 
jmespath.search("spec.template.spec.containers[1].resources.requests.cpu", 
docs[0])
diff --git a/chart/tests/test_pod_template_file.py 
b/chart/tests/test_pod_template_file.py
index 44b4fa8..c6d57bf 100644
--- a/chart/tests/test_pod_template_file.py
+++ b/chart/tests/test_pod_template_file.py
@@ -102,6 +102,7 @@ class PodTemplateFileTest(unittest.TestCase):
                 {"name": "GIT_SYNC_ONE_TIME", "value": "true"},
             ],
             "volumeMounts": [{"mountPath": "/git", "name": "dags"}],
+            "resources": {},
         } == jmespath.search("spec.initContainers[0]", docs[0])
 
     def test_should_not_add_init_container_if_dag_persistence_is_true(self):
diff --git a/chart/values.schema.json b/chart/values.schema.json
index 0fde8eb..9f94ae0 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -2475,6 +2475,23 @@
                                     "value": "60"
                                 }
                             ]
+                        },
+                        "resources": {
+                            "description": "Resources on workers git-sync 
sidecar",
+                            "type": "object",
+                            "default": {},
+                            "examples": [
+                                {
+                                    "limits": {
+                                        "cpu": "100m",
+                                        "memory": "128Mi"
+                                    },
+                                    "requests": {
+                                        "cpu": "100m",
+                                        "memory": "128Mi"
+                                    }
+                                }
+                            ]
                         }
                     }
                 }
diff --git a/chart/values.yaml b/chart/values.yaml
index 3b8592f..d498b5d 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1025,6 +1025,13 @@ dags:
     uid: 65533
     extraVolumeMounts: []
     env: []
+    resources: {}
+    #  limits:
+    #   cpu: 100m
+    #   memory: 128Mi
+    #  requests:
+    #   cpu: 100m
+    #   memory: 128Mi
 
 logs:
   persistence:

Reply via email to