From 22707fc2389a0b6a3a2621609a2a08b4584e301f Mon Sep 17 00:00:00 2001 From: Carter Date: Sun, 3 Dec 2023 14:57:38 -0800 Subject: [PATCH] Refactor kube binary download (#393) --- .github/workflows/ci.yaml | 7 +---- Dockerfile.kubetest2 | 11 +++----- hack/download-kubernetes-binaries.sh | 39 ++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) create mode 100755 hack/download-kubernetes-binaries.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e6f65ed8e..5cb903d30 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,11 +13,6 @@ jobs: - run: make build build-kubetest2: runs-on: ubuntu-latest - strategy: - # don't bail out of all sub-tasks if one fails - fail-fast: false - matrix: - k8s_version: ["1.23", "1.24", "1.25", "1.26", "1.27", "1.28"] steps: - uses: actions/checkout@v3 - - run: docker build --build-arg=KUBERNETES_MINOR_VERSION=${{ matrix.k8s_version }} --file Dockerfile.kubetest2 . \ No newline at end of file + - run: docker build --build-arg=KUBERNETES_MINOR_VERSION=latest --file Dockerfile.kubetest2 . \ No newline at end of file diff --git a/Dockerfile.kubetest2 b/Dockerfile.kubetest2 index b38951f66..c25dff524 100644 --- a/Dockerfile.kubetest2 +++ b/Dockerfile.kubetest2 @@ -44,16 +44,11 @@ RUN wget -O eksctl.tar.gz "https://github.com/eksctl-io/eksctl/releases/${EKSCTL tar xzf eksctl.tar.gz -C /bin/ && \ rm eksctl.tar.gz ARG KUBERNETES_MINOR_VERSION -RUN wget -O kubernetes-version.txt https://storage.googleapis.com/kubernetes-release/release/stable-${KUBERNETES_MINOR_VERSION}.txt +COPY hack/download-kubernetes-binaries.sh . +RUN ./download-kubernetes-binaries.sh "${KUBERNETES_MINOR_VERSION}" "${TARGETOS}" "${TARGETARCH}" RUN mkdir /info ENV PATH=$PATH:/info RUN cp kubernetes-version.txt /info/ -RUN wget -O kubernetes-client.tar.gz https://storage.googleapis.com/kubernetes-release/release/$(cat kubernetes-version.txt)/kubernetes-client-${TARGETOS}-${TARGETARCH}.tar.gz && \ - tar xzf kubernetes-client.tar.gz -C / && \ - rm kubernetes-client.tar.gz -RUN wget -O kubernetes-test.tar.gz https://storage.googleapis.com/kubernetes-release/release/$(cat kubernetes-version.txt)/kubernetes-test-${TARGETOS}-${TARGETARCH}.tar.gz && \ - tar xzf kubernetes-test.tar.gz -C / && \ - rm kubernetes-test.tar.gz -RUN mv /kubernetes/*/bin/* /bin/ +RUN mv kubernetes/*/bin/* /bin/ RUN rm -rf /workdir COPY --from=builder /usr/local/go/bin/* /bin/ diff --git a/hack/download-kubernetes-binaries.sh b/hack/download-kubernetes-binaries.sh new file mode 100755 index 000000000..0eeb4f86d --- /dev/null +++ b/hack/download-kubernetes-binaries.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -o errexit +set -o nounset + +BUNDLES=( + "kubernetes-client" + "kubernetes-test" +) + +if [ "$#" -ne 3 ]; then + echo >&2 "usage: $0 (KUBERNETES_MINOR_VERSION|latest) OS ARCH" + exit 1 +fi + +if [ "$1" = "latest" ]; then + RELEASE_MARKER="latest.txt" +else + RELEASE_MARKER="latest-$1.txt" +fi + +echo >&2 "Release marker: ${RELEASE_MARKER}" + +OS="$2" +ARCH="$3" + +KUBERNETES_VERSION=$(curl --silent "https://storage.googleapis.com/kubernetes-release/release/${RELEASE_MARKER}") + +echo "Kubernetes version: ${KUBERNETES_VERSION}" +echo "${KUBERNETES_VERSION}" > kubernetes-version.txt + +for BUNDLE in ${BUNDLES[@]}; do + echo >&2 "Downloading bundle: ${BUNDLE}" + TARBALL="${BUNDLE}.tar.gz" + wget --quiet --output-document=${TARBALL} https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_VERSION}/${BUNDLE}-${OS}-${ARCH}.tar.gz + tar xzf ${TARBALL} + rm ${TARBALL} +done +