mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Confirm pull of golang:cross as it is huge (1.8G)
This commit is contained in:
parent
96c1bc17ca
commit
b00f045bd3
@ -48,6 +48,7 @@ The release utilities grab a set of environment variables to modify behavior. A
|
|||||||
|
|
||||||
Env Variable | Default | Description
|
Env Variable | Default | Description
|
||||||
-------------|---------|------------
|
-------------|---------|------------
|
||||||
|
`KUBE_SKIP_CONFIRMATIONS` | `n` | If `y` then no questions are asked and the scripts just continue.
|
||||||
`KUBE_GCS_UPLOAD_RELEASE` | `n` | Upload release artifacts to GCS
|
`KUBE_GCS_UPLOAD_RELEASE` | `n` | Upload release artifacts to GCS
|
||||||
`KUBE_GCS_RELEASE_BUCKET` | `kubernetes-releases-${project_hash}` | The bucket to upload releases to
|
`KUBE_GCS_RELEASE_BUCKET` | `kubernetes-releases-${project_hash}` | The bucket to upload releases to
|
||||||
`KUBE_GCS_RELEASE_PREFIX` | `devel/` | The path under the release bucket to put releases
|
`KUBE_GCS_RELEASE_PREFIX` | `devel/` | The path under the release bucket to put releases
|
||||||
|
@ -26,6 +26,7 @@ source hack/config-go.sh
|
|||||||
|
|
||||||
# Incoming options
|
# Incoming options
|
||||||
#
|
#
|
||||||
|
readonly KUBE_SKIP_CONFIRMATIONS="${KUBE_SKIP_CONFIRMATIONS:-n}"
|
||||||
readonly KUBE_BUILD_RUN_IMAGES="${KUBE_BUILD_RUN_IMAGES:-n}"
|
readonly KUBE_BUILD_RUN_IMAGES="${KUBE_BUILD_RUN_IMAGES:-n}"
|
||||||
readonly KUBE_GCS_UPLOAD_RELEASE="${KUBE_GCS_UPLOAD_RELEASE:-n}"
|
readonly KUBE_GCS_UPLOAD_RELEASE="${KUBE_GCS_UPLOAD_RELEASE:-n}"
|
||||||
readonly KUBE_GCS_NO_CACHING="${KUBE_GCS_NO_CACHING:-y}"
|
readonly KUBE_GCS_NO_CACHING="${KUBE_GCS_NO_CACHING:-y}"
|
||||||
@ -142,14 +143,43 @@ function kube::build::clean_output() {
|
|||||||
rm -rf "${LOCAL_OUTPUT_ROOT}"
|
rm -rf "${LOCAL_OUTPUT_ROOT}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Detect if a specific image exists
|
||||||
|
#
|
||||||
|
# $1 - image repo name
|
||||||
|
# #2 - image tag
|
||||||
|
function kube::build::docker_image_exists() {
|
||||||
|
[[ -n $1 && -n $2 ]] || {
|
||||||
|
echo "!!! Internal error. Image not specified in docker_image_exists." >&2
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
|
# We cannot just specify the IMAGE here as `docker images` doesn't behave as
|
||||||
|
# expected. See: https://github.com/docker/docker/issues/8048
|
||||||
|
docker images | grep -Eq "^${1}\s+${2}\s+"
|
||||||
|
}
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Building
|
# Building
|
||||||
|
|
||||||
# Returns 0 if the image is already built. Otherwise 1
|
|
||||||
function kube::build::build_image_built() {
|
function kube::build::build_image_built() {
|
||||||
# We cannot just specify the IMAGE here as `docker images` doesn't behave as
|
kube::build::docker_image_exists "${KUBE_BUILD_IMAGE_REPO}" "${KUBE_BUILD_IMAGE_TAG}"
|
||||||
# expected. See: https://github.com/docker/docker/issues/8048
|
}
|
||||||
docker images | grep -q "${KUBE_BUILD_IMAGE_REPO}\s*${KUBE_BUILD_IMAGE_TAG}"
|
|
||||||
|
function kube::build::ensure_golang_cross() {
|
||||||
|
kube::build::docker_image_exists golang cross || {
|
||||||
|
[[ ${KUBE_SKIP_CONFIRMATIONS} =~ ^[yY]$ ]] || {
|
||||||
|
echo "You don't have a local copy of the golang:cross docker image. This image is 1.8GB."
|
||||||
|
read -p "Download it now? [y/n] " -n 1 -r
|
||||||
|
echo
|
||||||
|
[[ $REPLY =~ ^[yY]$ ]] || {
|
||||||
|
echo "Aborting." >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "+++ Pulling docker image: golang:cross"
|
||||||
|
docker pull golang:cross
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set up the context directory for the kube-build image and build it.
|
# Set up the context directory for the kube-build image and build it.
|
||||||
@ -169,6 +199,9 @@ function kube::build::build_image() {
|
|||||||
README.md
|
README.md
|
||||||
third_party
|
third_party
|
||||||
)
|
)
|
||||||
|
|
||||||
|
kube::build::ensure_golang_cross
|
||||||
|
|
||||||
mkdir -p "${build_context_dir}"
|
mkdir -p "${build_context_dir}"
|
||||||
tar czf "${build_context_dir}/kube-source.tar.gz" "${source[@]}"
|
tar czf "${build_context_dir}/kube-source.tar.gz" "${source[@]}"
|
||||||
cat >"${build_context_dir}/kube-version-defs" <<EOF
|
cat >"${build_context_dir}/kube-version-defs" <<EOF
|
||||||
@ -181,7 +214,7 @@ EOF
|
|||||||
# Builds the runtime image. Assumes that the appropriate binaries are already
|
# Builds the runtime image. Assumes that the appropriate binaries are already
|
||||||
# built and in _output/build/.
|
# built and in _output/build/.
|
||||||
function kube::build::run_image() {
|
function kube::build::run_image() {
|
||||||
[[ "${KUBE_BUILD_RUN_IMAGES}" == "y" ]] || return 0
|
[[ ${KUBE_BUILD_RUN_IMAGES} =~ ^[yY]$ ]] || return 0
|
||||||
|
|
||||||
local -r build_context_base="${LOCAL_OUTPUT_ROOT}/images/${KUBE_RUN_IMAGE_BASE}"
|
local -r build_context_base="${LOCAL_OUTPUT_ROOT}/images/${KUBE_RUN_IMAGE_BASE}"
|
||||||
|
|
||||||
@ -210,7 +243,7 @@ function kube::build::docker_build() {
|
|||||||
local -r context_dir=$2
|
local -r context_dir=$2
|
||||||
local -ra build_cmd=(docker build -t "${image}" "${context_dir}")
|
local -ra build_cmd=(docker build -t "${image}" "${context_dir}")
|
||||||
|
|
||||||
echo "+++ Building Docker image ${image}. This can take a while."
|
echo "+++ Building Docker image ${image}."
|
||||||
local docker_output
|
local docker_output
|
||||||
docker_output=$("${build_cmd[@]}" 2>&1) || {
|
docker_output=$("${build_cmd[@]}" 2>&1) || {
|
||||||
cat <<EOF >&2
|
cat <<EOF >&2
|
||||||
@ -423,7 +456,7 @@ function kube::release::package_full_tarball() {
|
|||||||
# GCS Release
|
# GCS Release
|
||||||
|
|
||||||
function kube::release::gcs::release() {
|
function kube::release::gcs::release() {
|
||||||
[[ "${KUBE_GCS_UPLOAD_RELEASE}" == "y" ]] || return 0
|
[[ ${KUBE_GCS_UPLOAD_RELEASE} =~ ^[yY]$ ]] || return 0
|
||||||
|
|
||||||
kube::release::gcs::verify_prereqs
|
kube::release::gcs::verify_prereqs
|
||||||
kube::release::gcs::ensure_release_bucket
|
kube::release::gcs::ensure_release_bucket
|
||||||
@ -519,7 +552,7 @@ function kube::release::gcs::ensure_docker_registry() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function kube::release::gcs::push_images() {
|
function kube::release::gcs::push_images() {
|
||||||
[[ "${KUBE_BUILD_RUN_IMAGES}" == "y" ]] || return 0
|
[[ ${KUBE_BUILD_RUN_IMAGES} =~ ^[yY]$ ]] || return 0
|
||||||
|
|
||||||
kube::release::gcs::ensure_docker_registry
|
kube::release::gcs::ensure_docker_registry
|
||||||
|
|
||||||
@ -542,7 +575,7 @@ function kube::release::gcs::copy_release_tarballs() {
|
|||||||
local -r gcs_destination="gs://${KUBE_GCS_RELEASE_BUCKET}/${KUBE_GCS_RELEASE_PREFIX}"
|
local -r gcs_destination="gs://${KUBE_GCS_RELEASE_BUCKET}/${KUBE_GCS_RELEASE_PREFIX}"
|
||||||
local gcs_options=()
|
local gcs_options=()
|
||||||
|
|
||||||
if [[ ${KUBE_GCS_NO_CACHING} == "y" ]]; then
|
if [[ ${KUBE_GCS_NO_CACHING} =~ ^[yY]$ ]]; then
|
||||||
gcs_options=("-h" "Cache-Control:private, max-age=0")
|
gcs_options=("-h" "Cache-Control:private, max-age=0")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -554,7 +587,7 @@ function kube::release::gcs::copy_release_tarballs() {
|
|||||||
# Now upload everything in release directory
|
# Now upload everything in release directory
|
||||||
gsutil -m "${gcs_options[@]-}" cp -r "${RELEASE_DIR}"/* "${gcs_destination}" >/dev/null 2>&1
|
gsutil -m "${gcs_options[@]-}" cp -r "${RELEASE_DIR}"/* "${gcs_destination}" >/dev/null 2>&1
|
||||||
|
|
||||||
if [[ ${KUBE_GCS_MAKE_PUBLIC} == "y" ]]; then
|
if [[ ${KUBE_GCS_MAKE_PUBLIC} =~ ^[yY]$ ]]; then
|
||||||
gsutil acl ch -R -g all:R "${gcs_destination}" >/dev/null 2>&1
|
gsutil acl ch -R -g all:R "${gcs_destination}" >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user