From 6f25340851f9219098c2c31e10315d715195597a Mon Sep 17 00:00:00 2001 From: Yuriy Taraday Date: Wed, 30 Nov 2016 19:39:21 +0300 Subject: [PATCH] Make imagePullPolicy configurable 'Always' is not the best option as it adds round-trip to registry for every node even if image has already been pulled. Keeping default to be the same as in Kubernetes would make it conmfortable to use 'latest' tag during development and proper versioned tag for production-like environments. Change-Id: Ifa628e00959bae062bb5bb7e95e071af8babee32 --- fuel_ccp/config/kubernetes.py | 5 +++++ fuel_ccp/templates.py | 4 ++-- fuel_ccp/tests/test_templates.py | 3 +-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fuel_ccp/config/kubernetes.py b/fuel_ccp/config/kubernetes.py index d1e5f726..7eaaa8ac 100644 --- a/fuel_ccp/config/kubernetes.py +++ b/fuel_ccp/config/kubernetes.py @@ -7,6 +7,7 @@ DEFAULTS = { 'cert_file': None, 'insecure': None, 'cluster_domain': 'cluster.local', + 'image_pull_policy': None, }, } @@ -22,6 +23,10 @@ SCHEMA = { 'cert_file': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'insecure': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'cluster_domain': {'type': 'string'}, + 'image_pull_policy': {'oneOf': [ + {'type': 'null'}, + {'enum': ['Always', 'IfNotPresent', 'Never']}, + ]}, }, }, } diff --git a/fuel_ccp/templates.py b/fuel_ccp/templates.py index 8d5a25b4..b42781a2 100644 --- a/fuel_ccp/templates.py +++ b/fuel_ccp/templates.py @@ -123,7 +123,7 @@ def serialize_daemon_container_spec(container): cont_spec = { "name": container["name"], "image": images.image_spec(container["image"]), - "imagePullPolicy": "Always", + "imagePullPolicy": CONF.kubernetes.image_pull_policy, "command": _get_start_cmd(container["name"]), "volumeMounts": serialize_volume_mounts(container), "readinessProbe": { @@ -152,7 +152,7 @@ def serialize_job_container_spec(container, job): return { "name": job["name"], "image": images.image_spec(container["image"]), - "imagePullPolicy": "Always", + "imagePullPolicy": CONF.kubernetes.image_pull_policy, "command": _get_start_cmd(job["name"]), "volumeMounts": serialize_volume_mounts(container, job), "env": serialize_env_variables(container) diff --git a/fuel_ccp/tests/test_templates.py b/fuel_ccp/tests/test_templates.py index 7f536a93..7e502ecb 100644 --- a/fuel_ccp/tests/test_templates.py +++ b/fuel_ccp/tests/test_templates.py @@ -8,7 +8,6 @@ class TestDeploy(base.TestCase): container = { "name": "name_foo", "image": "image_foo", - "imagePullPolicy": "Always", "command": "command_foo", "cm_version": 1, "env": [{ @@ -30,7 +29,7 @@ class TestDeploy(base.TestCase): expected = { "name": "name_foo", "image": "ccp/image_foo:latest", - "imagePullPolicy": "Always", + "imagePullPolicy": None, "command": [ "dumb-init", "/usr/bin/python",