From 3c530eea2dab0b7ed40c01c1eedab87958264329 Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Tue, 24 Oct 2023 14:10:06 -0700 Subject: [PATCH] automatically setup etcd when running verify/update openapi-spec.sh 1. automatically add etcd to current PATH when calling kube::etcd::install 2. call kube::etcd::install from update-openapi-spec 3. don't call kube::golang::setup_env twice --- hack/lib/etcd.sh | 66 ++++++++++++++++++++----------------- hack/update-openapi-spec.sh | 3 +- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/hack/lib/etcd.sh b/hack/lib/etcd.sh index 9941a838459..79e0bddea6f 100755 --- a/hack/lib/etcd.sh +++ b/hack/lib/etcd.sh @@ -144,38 +144,42 @@ kube::etcd::cleanup() { } kube::etcd::install() { - ( - local os - local arch + local os + local arch - os=$(kube::util::host_os) - arch=$(kube::util::host_arch) + os=$(kube::util::host_os) + arch=$(kube::util::host_arch) - cd "${KUBE_ROOT}/third_party" || return 1 - if [[ $(readlink etcd) == etcd-v${ETCD_VERSION}-${os}-* ]]; then - kube::log::info "etcd v${ETCD_VERSION} already installed. To use:" - kube::log::info "export PATH=\"$(pwd)/etcd:\${PATH}\"" - return #already installed - fi - - if [[ ${os} == "darwin" ]]; then - download_file="etcd-v${ETCD_VERSION}-${os}-${arch}.zip" - url="https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/${download_file}" - kube::util::download_file "${url}" "${download_file}" - unzip -o "${download_file}" - ln -fns "etcd-v${ETCD_VERSION}-${os}-${arch}" etcd - rm "${download_file}" - elif [[ ${os} == "linux" ]]; then - url="https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-${os}-${arch}.tar.gz" - download_file="etcd-v${ETCD_VERSION}-${os}-${arch}.tar.gz" - kube::util::download_file "${url}" "${download_file}" - tar xzf "${download_file}" - ln -fns "etcd-v${ETCD_VERSION}-${os}-${arch}" etcd - rm "${download_file}" - else - kube::log::info "${os} is NOT supported." - fi - kube::log::info "etcd v${ETCD_VERSION} installed. To use:" + cd "${KUBE_ROOT}/third_party" || return 1 + if [[ $(readlink etcd) == etcd-v${ETCD_VERSION}-${os}-* ]]; then + kube::log::info "etcd v${ETCD_VERSION} already installed. To use:" kube::log::info "export PATH=\"$(pwd)/etcd:\${PATH}\"" - ) + # export into current process + PATH="$(pwd)/etcd:${PATH}" + export PATH + return #already installed + fi + + if [[ ${os} == "darwin" ]]; then + download_file="etcd-v${ETCD_VERSION}-${os}-${arch}.zip" + url="https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/${download_file}" + kube::util::download_file "${url}" "${download_file}" + unzip -o "${download_file}" + ln -fns "etcd-v${ETCD_VERSION}-${os}-${arch}" etcd + rm "${download_file}" + elif [[ ${os} == "linux" ]]; then + url="https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-${os}-${arch}.tar.gz" + download_file="etcd-v${ETCD_VERSION}-${os}-${arch}.tar.gz" + kube::util::download_file "${url}" "${download_file}" + tar xzf "${download_file}" + ln -fns "etcd-v${ETCD_VERSION}-${os}-${arch}" etcd + rm "${download_file}" + else + kube::log::info "${os} is NOT supported." + fi + kube::log::info "etcd v${ETCD_VERSION} installed. To use:" + kube::log::info "export PATH=\"$(pwd)/etcd:\${PATH}\"" + # export into current process + PATH="$(pwd)/etcd:${PATH}" + export PATH } diff --git a/hack/update-openapi-spec.sh b/hack/update-openapi-spec.sh index 5bd7c182efb..5d54f1acd18 100755 --- a/hack/update-openapi-spec.sh +++ b/hack/update-openapi-spec.sh @@ -28,6 +28,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh" kube::util::require-jq kube::golang::setup_env +kube::etcd::install make -C "${KUBE_ROOT}" WHAT=cmd/kube-apiserver @@ -46,8 +47,6 @@ function cleanup() trap cleanup EXIT SIGINT -kube::golang::setup_env - TMP_DIR=${TMP_DIR:-$(kube::realpath "$(mktemp -d -t "$(basename "$0").XXXXXX")")} ETCD_HOST=${ETCD_HOST:-127.0.0.1} ETCD_PORT=${ETCD_PORT:-2379}