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: