mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-08 12:41:58 +00:00
Merge pull request #25105 from andyzheng0831/metadata
Automatic merge from submit-queue GCI: Add two GCI specific metadata pairs This PR adds two GCI specific metadata pairs when using GCI image. (1) "gci-update-strategy": by default the GCI in-place updater is enabled. It means that when a new image is released, the instance on the old image will be upgraded to the new image. In this change, we turn it off; (2) "gci-ensure-gke-docker": GCI is built with two versions of docker. When this metadata is set to "true", the version satisfying kubernetes qualification will be used. Setting this metadata prevents from using incorrect docker version.
This commit is contained in:
@@ -18,17 +18,45 @@
|
||||
|
||||
# The configuration is based on upstart, which is in Ubuntu up to 14.04 LTS (Trusty).
|
||||
# Ubuntu 15.04 and above replaced upstart with systemd as the init system.
|
||||
# Consequently, the configuration cannot work on these images.
|
||||
# Consequently, the configuration cannot work on these images. In release-1.2 branch,
|
||||
# GCI and Trusty share the configuration code. We have to keep the GCI specific code
|
||||
# here as long as the release-1.2 branch has not been deprecated.
|
||||
|
||||
# Creates the GCI specific metadata files if they do not exit.
|
||||
# Assumed var
|
||||
# KUBE_TEMP
|
||||
function ensure-gci-metadata-files {
|
||||
if [[ ! -f "${KUBE_TEMP}/gci-update.txt" ]]; then
|
||||
cat >"${KUBE_TEMP}/gci-update.txt" << EOF
|
||||
update_disabled
|
||||
EOF
|
||||
fi
|
||||
if [[ ! -f "${KUBE_TEMP}/gci-docker.txt" ]]; then
|
||||
cat >"${KUBE_TEMP}/gci-docker.txt" << EOF
|
||||
true
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# $1: template name (required)
|
||||
function create-node-instance-template {
|
||||
local template_name="$1"
|
||||
create-node-template "$template_name" "${scope_flags[*]}" \
|
||||
"kube-env=${KUBE_TEMP}/node-kube-env.yaml" \
|
||||
"user-data=${KUBE_ROOT}/cluster/gce/trusty/node.yaml" \
|
||||
"configure-sh=${KUBE_ROOT}/cluster/gce/trusty/configure.sh" \
|
||||
"cluster-name=${KUBE_TEMP}/cluster-name.txt"
|
||||
if [[ "${OS_DISTRIBUTION}" == "gci" && "${NODE_IMAGE}" == gci* ]]; then
|
||||
ensure-gci-metadata-files
|
||||
create-node-template "$template_name" "${scope_flags[*]}" \
|
||||
"kube-env=${KUBE_TEMP}/node-kube-env.yaml" \
|
||||
"user-data=${KUBE_ROOT}/cluster/gce/trusty/node.yaml" \
|
||||
"configure-sh=${KUBE_ROOT}/cluster/gce/trusty/configure.sh" \
|
||||
"cluster-name=${KUBE_TEMP}/cluster-name.txt" \
|
||||
"gci-update-strategy=${KUBE_TEMP}/gci-update.txt" \
|
||||
"gci-ensure-gke-docker=${KUBE_TEMP}/gci-docker.txt"
|
||||
else
|
||||
create-node-template "$template_name" "${scope_flags[*]}" \
|
||||
"kube-env=${KUBE_TEMP}/node-kube-env.yaml" \
|
||||
"user-data=${KUBE_ROOT}/cluster/gce/trusty/node.yaml" \
|
||||
"configure-sh=${KUBE_ROOT}/cluster/gce/trusty/configure.sh" \
|
||||
"cluster-name=${KUBE_TEMP}/cluster-name.txt"
|
||||
fi
|
||||
}
|
||||
|
||||
# create-master-instance creates the master instance. If called with
|
||||
@@ -47,6 +75,11 @@ function create-node-instance-template {
|
||||
function create-master-instance {
|
||||
local address_opt=""
|
||||
[[ -n ${1:-} ]] && address_opt="--address ${1}"
|
||||
local image_metadata=""
|
||||
if [[ "${OS_DISTRIBUTION}" == "gci" && "${MASTER_IMAGE}" == gci* ]]; then
|
||||
ensure-gci-metadata-files
|
||||
image_metadata=",gci-update-strategy=${KUBE_TEMP}/gci-update.txt,gci-ensure-gke-docker=${KUBE_TEMP}/gci-docker.txt"
|
||||
fi
|
||||
|
||||
write-master-env
|
||||
gcloud compute instances create "${MASTER_NAME}" \
|
||||
@@ -61,6 +94,6 @@ function create-master-instance {
|
||||
--scopes "storage-ro,compute-rw,monitoring,logging-write" \
|
||||
--can-ip-forward \
|
||||
--metadata-from-file \
|
||||
"kube-env=${KUBE_TEMP}/master-kube-env.yaml,user-data=${KUBE_ROOT}/cluster/gce/trusty/master.yaml,configure-sh=${KUBE_ROOT}/cluster/gce/trusty/configure.sh,cluster-name=${KUBE_TEMP}/cluster-name.txt" \
|
||||
"kube-env=${KUBE_TEMP}/master-kube-env.yaml,user-data=${KUBE_ROOT}/cluster/gce/trusty/master.yaml,configure-sh=${KUBE_ROOT}/cluster/gce/trusty/configure.sh,cluster-name=${KUBE_TEMP}/cluster-name.txt${image_metadata}" \
|
||||
--disk "name=${MASTER_NAME}-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no"
|
||||
}
|
||||
|
Reference in New Issue
Block a user