diff --git a/cluster/common.sh b/cluster/common.sh index 1ca2736afd..00a4a8e937 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -495,6 +495,7 @@ SERVICE_CLUSTER_IP_RANGE: $(yaml-quote ${SERVICE_CLUSTER_IP_RANGE}) KUBERNETES_MASTER_NAME: $(yaml-quote ${MASTER_NAME}) ALLOCATE_NODE_CIDRS: $(yaml-quote ${ALLOCATE_NODE_CIDRS:-false}) ENABLE_CLUSTER_MONITORING: $(yaml-quote ${ENABLE_CLUSTER_MONITORING:-none}) +DOCKER_REGISTRY_MIRROR_URL: $(yaml-quote ${DOCKER_REGISTRY_MIRROR_URL:-}) ENABLE_L7_LOADBALANCING: $(yaml-quote ${ENABLE_L7_LOADBALANCING:-none}) ENABLE_CLUSTER_LOGGING: $(yaml-quote ${ENABLE_CLUSTER_LOGGING:-false}) ENABLE_CLUSTER_UI: $(yaml-quote ${ENABLE_CLUSTER_UI:-false}) diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index c53995d2b7..3a043612b5 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -64,6 +64,9 @@ EXTRA_DOCKER_OPTS="${EXTRA_DOCKER_OPTS:-}" SERVICE_CLUSTER_IP_RANGE="${SERVICE_CLUSTER_IP_RANGE:-10.0.0.0/16}" # formerly PORTAL_NET ALLOCATE_NODE_CIDRS=true +# When set to true, Docker Cache is enabled by default as part of the cluster bring up. +ENABLE_DOCKER_REGISTRY_CACHE=true + # Optional: Deploy a L7 loadbalancer controller to fulfill Ingress requests: # glbc - CE L7 Load Balancer Controller ENABLE_L7_LOADBALANCING="${KUBE_ENABLE_L7_LOADBALANCING:-glbc}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index d63ae0605d..8d15479c53 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -66,6 +66,9 @@ EXTRA_DOCKER_OPTS="${EXTRA_DOCKER_OPTS:-}" SERVICE_CLUSTER_IP_RANGE="10.0.0.0/16" # formerly PORTAL_NET +# When set to true, Docker Cache is enabled by default as part of the cluster bring up. +ENABLE_DOCKER_REGISTRY_CACHE=true + # Optional: Deploy a L7 loadbalancer controller to fulfill Ingress requests: # glbc - CE L7 Load Balancer Controller ENABLE_L7_LOADBALANCING="${KUBE_ENABLE_L7_LOADBALANCING:-glbc}" diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index 93bb7a1698..fe5ea72d02 100755 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -899,6 +899,13 @@ function node-docker-opts() { if [[ -n "${EXTRA_DOCKER_OPTS-}" ]]; then DOCKER_OPTS="${DOCKER_OPTS:-} ${EXTRA_DOCKER_OPTS}" fi + + # Decide whether to enable a docker registry mirror. This is taken from + # the "kube-env" metadata value. + if [[ -n "${DOCKER_REGISTRY_MIRROR_URL:-}" ]]; then + echo "Enable docker registry mirror at: ${DOCKER_REGISTRY_MIRROR_URL}" + DOCKER_OPTS="${DOCKER_OPTS:-} --registry-mirror=${DOCKER_REGISTRY_MIRROR_URL}" + fi } function salt-grains() { diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 28c491073e..d8d3972515 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -191,6 +191,10 @@ function set-preferred-region() { else KUBE_ADDON_REGISTRY="gcr.io/google_containers" fi + + if [[ "${ENABLE_DOCKER_REGISTRY_CACHE:-}" == "true" ]]; then + DOCKER_REGISTRY_MIRROR_URL="https://${preferred}-mirror.gcr.io" + fi } # Take the local tar files and upload them to Google Storage. They will then be