Merge pull request #115043 from bobbypage/image-family
cluster/gce: Fetch image from image family
This commit is contained in:
		@@ -86,10 +86,16 @@ fi
 | 
				
			|||||||
# you are updating the os image versions, update this variable.
 | 
					# you are updating the os image versions, update this variable.
 | 
				
			||||||
# Also please update corresponding image for node e2e at:
 | 
					# Also please update corresponding image for node e2e at:
 | 
				
			||||||
# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
 | 
					# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
 | 
				
			||||||
GCI_VERSION=${KUBE_GCI_VERSION:-cos-97-16919-103-16}
 | 
					#
 | 
				
			||||||
 | 
					# By default, the latest image from the image family will be used unless an
 | 
				
			||||||
 | 
					# explicit image will be set.
 | 
				
			||||||
 | 
					GCI_VERSION=${KUBE_GCI_VERSION:-}
 | 
				
			||||||
 | 
					IMAGE_FAMILY=${KUBE_IMAGE_FAMILY:-cos-97-lts}
 | 
				
			||||||
export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
 | 
					export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
 | 
				
			||||||
 | 
					export MASTER_IMAGE_FAMILY=${KUBE_GCE_MASTER_IMAGE_FAMILY:-${IMAGE_FAMILY}}
 | 
				
			||||||
export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud}
 | 
					export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud}
 | 
				
			||||||
export NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}
 | 
					export NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}
 | 
				
			||||||
 | 
					export NODE_IMAGE_FAMILY=${KUBE_GCE_NODE_IMAGE_FAMILY:-${IMAGE_FAMILY}}
 | 
				
			||||||
export NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud}
 | 
					export NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud}
 | 
				
			||||||
export NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default}
 | 
					export NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -99,10 +99,16 @@ ALLOWED_NOTREADY_NODES=${ALLOWED_NOTREADY_NODES:-$(($(get-num-nodes) / 100))}
 | 
				
			|||||||
# you are updating the os image versions, update this variable.
 | 
					# you are updating the os image versions, update this variable.
 | 
				
			||||||
# Also please update corresponding image for node e2e at:
 | 
					# Also please update corresponding image for node e2e at:
 | 
				
			||||||
# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
 | 
					# https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/jenkins/image-config.yaml
 | 
				
			||||||
GCI_VERSION=${KUBE_GCI_VERSION:-cos-97-16919-103-16}
 | 
					#
 | 
				
			||||||
 | 
					# By default, the latest image from the image family will be used unless an
 | 
				
			||||||
 | 
					# explicit image will be set.
 | 
				
			||||||
 | 
					GCI_VERSION=${KUBE_GCI_VERSION:-}
 | 
				
			||||||
 | 
					IMAGE_FAMILY=${KUBE_IMAGE_FAMILY:-cos-97-lts}
 | 
				
			||||||
export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
 | 
					export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-}
 | 
				
			||||||
 | 
					export MASTER_IMAGE_FAMILY=${KUBE_GCE_MASTER_IMAGE_FAMILY:-${IMAGE_FAMILY}}
 | 
				
			||||||
export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud}
 | 
					export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud}
 | 
				
			||||||
export NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}
 | 
					export NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}
 | 
				
			||||||
 | 
					export NODE_IMAGE_FAMILY=${KUBE_GCE_NODE_IMAGE_FAMILY:-${IMAGE_FAMILY}}
 | 
				
			||||||
export NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud}
 | 
					export NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud}
 | 
				
			||||||
export NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default}
 | 
					export NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,13 +48,20 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]]; then
 | 
					if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]]; then
 | 
				
			||||||
    DEFAULT_GCI_PROJECT=google-containers
 | 
					    DEFAULT_GCI_PROJECT=google-containers
 | 
				
			||||||
    if [[ "${GCI_VERSION}" == "cos"* ]]; then
 | 
					    if [[ "${GCI_VERSION}" == "cos"* ]] || [[ "${MASTER_IMAGE_FAMILY}" == "cos"* ]]; then
 | 
				
			||||||
        DEFAULT_GCI_PROJECT=cos-cloud
 | 
					        DEFAULT_GCI_PROJECT=cos-cloud
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-${DEFAULT_GCI_PROJECT}}
 | 
					    export MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-${DEFAULT_GCI_PROJECT}}
 | 
				
			||||||
    # If the master image is not set, we use the latest GCI image.
 | 
					
 | 
				
			||||||
    # Otherwise, we respect whatever is set by the user.
 | 
					    # If the master image is not set, we use the latest image based on image
 | 
				
			||||||
    export MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-${GCI_VERSION}}
 | 
					    # family.
 | 
				
			||||||
 | 
					    kube_master_image="${KUBE_GCE_MASTER_IMAGE:-${GCI_VERSION}}"
 | 
				
			||||||
 | 
					    if [[ -z "${kube_master_image}" ]]; then
 | 
				
			||||||
 | 
					      kube_master_image=$(gcloud compute images list --project="${MASTER_IMAGE_PROJECT}" --no-standard-images --filter="family:${MASTER_IMAGE_FAMILY}" --format 'value(name)')
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "Using image: ${kube_master_image} from project: ${MASTER_IMAGE_PROJECT} as master image" >&2
 | 
				
			||||||
 | 
					    export MASTER_IMAGE="${kube_master_image}"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Sets node image based on the specified os distro. Currently this function only
 | 
					# Sets node image based on the specified os distro. Currently this function only
 | 
				
			||||||
@@ -69,14 +76,23 @@ fi
 | 
				
			|||||||
function set-linux-node-image() {
 | 
					function set-linux-node-image() {
 | 
				
			||||||
  if [[ "${NODE_OS_DISTRIBUTION}" == "gci" ]]; then
 | 
					  if [[ "${NODE_OS_DISTRIBUTION}" == "gci" ]]; then
 | 
				
			||||||
    DEFAULT_GCI_PROJECT=google-containers
 | 
					    DEFAULT_GCI_PROJECT=google-containers
 | 
				
			||||||
    if [[ "${GCI_VERSION}" == "cos"* ]]; then
 | 
					    if [[ "${GCI_VERSION}" == "cos"* ]] || [[ "${NODE_IMAGE_FAMILY}" == "cos"* ]]; then
 | 
				
			||||||
      DEFAULT_GCI_PROJECT=cos-cloud
 | 
					      DEFAULT_GCI_PROJECT=cos-cloud
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # If the node image is not set, we use the latest GCI image.
 | 
					    # If the node image is not set, we use the latest image based on image
 | 
				
			||||||
 | 
					    # family.
 | 
				
			||||||
    # Otherwise, we respect whatever is set by the user.
 | 
					    # Otherwise, we respect whatever is set by the user.
 | 
				
			||||||
    NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}
 | 
					 | 
				
			||||||
    NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-${DEFAULT_GCI_PROJECT}}
 | 
					    NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-${DEFAULT_GCI_PROJECT}}
 | 
				
			||||||
 | 
					    local kube_node_image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    kube_node_image="${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}}"
 | 
				
			||||||
 | 
					    if [[ -z "${kube_node_image}" ]]; then
 | 
				
			||||||
 | 
					      kube_node_image=$(gcloud compute images list --project="${NODE_IMAGE_PROJECT}" --no-standard-images --filter="family:${NODE_IMAGE_FAMILY}" --format 'value(name)')
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "Using image: ${kube_node_image} from project: ${NODE_IMAGE_PROJECT} as node image" >&2
 | 
				
			||||||
 | 
					    export NODE_IMAGE="${kube_node_image}"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user