From 2e362ea1421c6f777fa0bf9f6a9b8e6cf3d2f54a Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Thu, 14 Sep 2017 15:55:09 -0700 Subject: [PATCH] Add 'ETCD_DOCKER_REPOSITORY' environment variable override to 'cluster/' scripts. This allows the etcd docker registry that is currently hard coded to `gcr.io/google_containers/etcd` in the `etcd.manifest` template to be overridden. This can be used to test new versions of etcd with kubernetes that have not yet been published to `gcr.io/google_containers/etcd` and also enables cluster operators to manage the etcd images used by their cluster in an internal repository. --- cluster/common.sh | 6 ++++++ cluster/gce/config-test.sh | 1 + cluster/gce/configure-vm.sh | 5 +++++ cluster/gce/container-linux/configure-helper.sh | 5 +++++ cluster/gce/gci/configure-helper.sh | 5 +++++ cluster/saltbase/salt/etcd/etcd.manifest | 2 +- 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/cluster/common.sh b/cluster/common.sh index f467d89d1f..23208b453b 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -828,6 +828,12 @@ EOF if [ -n "${ETCD_IMAGE:-}" ]; then cat >>$file <>$file <>/srv/salt-overlay/pillar/cluster-params.sls etcd_docker_tag: '$(echo "$ETCD_IMAGE" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${ETCD_DOCKER_REPOSITORY:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +etcd_docker_repository: '$(echo "$ETCD_DOCKER_REPOSITORY" | sed -e "s/'/''/g")' EOF fi if [ -n "${ETCD_VERSION:-}" ]; then diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index 09afb2c553..1c50402e21 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -803,6 +803,11 @@ function prepare-etcd-manifest { else sed -i -e "s@{{ *pillar\.get('etcd_docker_tag', '\(.*\)') *}}@\1@g" "${temp_file}" fi + if [[ -n "${ETCD_DOCKER_REPOSITORY:-}" ]]; then + sed -i -e "s@{{ *pillar\.get('etcd_docker_repository', '\(.*\)') *}}@${ETCD_DOCKER_REPOSITORY}@g" "${temp_file}" + else + sed -i -e "s@{{ *pillar\.get('etcd_docker_repository', '\(.*\)') *}}@\1@g" "${temp_file}" + fi sed -i -e "s@{{ *etcd_protocol *}}@$etcd_protocol@g" "${temp_file}" sed -i -e "s@{{ *etcd_creds *}}@$etcd_creds@g" "${temp_file}" diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 03dab163ef..74903ab62c 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1194,6 +1194,11 @@ function prepare-etcd-manifest { else sed -i -e "s@{{ *pillar\.get('etcd_docker_tag', '\(.*\)') *}}@\1@g" "${temp_file}" fi + if [[ -n "${ETCD_DOCKER_REPOSITORY:-}" ]]; then + sed -i -e "s@{{ *pillar\.get('etcd_docker_repository', '\(.*\)') *}}@${ETCD_DOCKER_REPOSITORY}@g" "${temp_file}" + else + sed -i -e "s@{{ *pillar\.get('etcd_docker_repository', '\(.*\)') *}}@\1@g" "${temp_file}" + fi sed -i -e "s@{{ *etcd_protocol *}}@$etcd_protocol@g" "${temp_file}" sed -i -e "s@{{ *etcd_creds *}}@$etcd_creds@g" "${temp_file}" if [[ -n "${ETCD_VERSION:-}" ]]; then diff --git a/cluster/saltbase/salt/etcd/etcd.manifest b/cluster/saltbase/salt/etcd/etcd.manifest index 3b4786f80b..44419aa744 100644 --- a/cluster/saltbase/salt/etcd/etcd.manifest +++ b/cluster/saltbase/salt/etcd/etcd.manifest @@ -39,7 +39,7 @@ "containers":[ { "name": "etcd-container", - "image": "gcr.io/google_containers/etcd:{{ pillar.get('etcd_docker_tag', '3.1.10') }}", + "image": "{{ pillar.get('etcd_docker_repository', 'gcr.io/google_containers/etcd') }}:{{ pillar.get('etcd_docker_tag', '3.1.10') }}", "resources": { "requests": { "cpu": {{ cpulimit }}