From 12d3a573a01549ca63c0c8e9e0c7493494fad5f7 Mon Sep 17 00:00:00 2001 From: vitalii-codefresh Date: Mon, 22 Jul 2024 16:18:01 +0300 Subject: [PATCH 1/4] updated base image to bookworm , updated kubectl --- Dockerfile | 13 +++++-------- Dockerfile.aarch64 | 28 ---------------------------- cf-deploy-kubernetes.sh | 5 +++-- service.yaml | 2 +- 4 files changed, 9 insertions(+), 39 deletions(-) delete mode 100644 Dockerfile.aarch64 diff --git a/Dockerfile b/Dockerfile index 362ef5d..091d947 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ -FROM alpine:3.6 AS builder +FROM alpine:3.20 AS builder RUN apk update && apk add curl RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd64") && \ mkdir -p /tmp/kubectl-versions && cd /tmp/kubectl-versions && \ + curl -o kubectl1.30 -L https://storage.googleapis.com/kubernetes-release/release/v1.30.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.23 -L https://storage.googleapis.com/kubernetes-release/release/v1.23.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.22 -L https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.21 -L https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/${ARCH}/kubectl && \ @@ -14,24 +15,20 @@ RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd6 curl -o kubectl1.16 -L https://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.15 -L https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.14 -L https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.13 -L https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.12 -L https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.11 -L https://storage.googleapis.com/kubernetes-release/release/v1.11.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.10 -L https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.6 -L https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/${ARCH}/kubectl -FROM debian:bullseye-slim +FROM debian:bookworm-20240701-slim RUN apt-get update -y && apt-get install busybox -y && ln -s /bin/busybox /usr/bin/[[ RUN adduser --gecos "" --disabled-password --home /home/cfu --shell /bin/bash cfu -#RUN apt update && apt upgrade && apt install bash # THIS IS NOT REQUIRED. BASH IS ALREADY INCLUDED IN BULLSEYE +#RUN apt update && apt upgrade && apt install bash # THIS IS NOT REQUIRED. BASH IS ALREADY INCLUDED IN BOOKWORM #copy all versions of kubectl to switch between them later. COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/* /usr/local/bin/ -COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/kubectl1.10 /usr/local/bin/kubectl +COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/kubectl1.30 /usr/local/bin/kubectl WORKDIR / ADD --chown=cfu --chmod=775 cf-deploy-kubernetes.sh /cf-deploy-kubernetes diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 deleted file mode 100644 index 4712ced..0000000 --- a/Dockerfile.aarch64 +++ /dev/null @@ -1,28 +0,0 @@ -FROM multiarch/alpine:aarch64-v3.6 AS builder - -RUN apk update && apk add curl - -RUN curl -o kubectl1.9 -L https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/arm64/kubectl -RUN curl -o kubectl1.6 -L https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/arm64/kubectl - - -FROM multiarch/alpine:aarch64-v3.6 - -RUN apk add --update bash - -#copy both versions of kubectl to switch between them later. -COPY --from=builder kubectl1.9 /usr/local/bin/kubectl -COPY --from=builder kubectl1.6 /usr/local/bin/ - -RUN chmod +x /usr/local/bin/kubectl /usr/local/bin/kubectl1.6 - -WORKDIR / - -ADD cf-deploy-kubernetes.sh /cf-deploy-kubernetes -ADD template.sh /template.sh - -RUN \ - chmod +x /cf-deploy-kubernetes && \ - chmod +x /template.sh - -CMD ["bash"] diff --git a/cf-deploy-kubernetes.sh b/cf-deploy-kubernetes.sh index 2e12bef..adaac05 100755 --- a/cf-deploy-kubernetes.sh +++ b/cf-deploy-kubernetes.sh @@ -59,7 +59,8 @@ else if (( "$SERVER_VERSION" == "20" )); then cp -f /usr/local/bin/kubectl1.20 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "21" )); then cp -f /usr/local/bin/kubectl1.21 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "22" )); then cp -f /usr/local/bin/kubectl1.22 /usr/local/bin/kubectl; fi 2>/dev/null - if (( "$SERVER_VERSION" >= "23" )); then cp -f /usr/local/bin/kubectl1.23 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" == "23" )); then cp -f /usr/local/bin/kubectl1.23 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "24" )); then cp -f /usr/local/bin/kubectl1.30 /usr/local/bin/kubectl; fi 2>/dev/null [ ! -f "${deployment_file}" ] && echo "Couldn't find $deployment_file file at $(pwd)" && exit 1; fi @@ -114,4 +115,4 @@ kubectl --context "${KUBECONTEXT}" --namespace "${KUBERNETES_NAMESPACE}" $KUBECT if [ -n "$DEPLOYMENT_NAME" ]; then echo "---> Waiting for a successful deployment/${DEPLOYMENT_NAME} status to namespace ${KUBERNETES_NAMESPACE} ..." timeout -s SIGTERM $KUBERNETES_DEPLOYMENT_TIMEOUT kubectl --context "${KUBECONTEXT}" --namespace "${KUBERNETES_NAMESPACE}" rollout status deployment/"${DEPLOYMENT_NAME}" || fatal "Deployment Failed" -fi \ No newline at end of file +fi diff --git a/service.yaml b/service.yaml index 2302fd9..2d137bc 100644 --- a/service.yaml +++ b/service.yaml @@ -1 +1 @@ -version: 16.2.6 +version: 16.2.7 From 350d24b17b5ea09db1a1961f0612a0db244aae6c Mon Sep 17 00:00:00 2001 From: vitaliichyrka Date: Tue, 13 Aug 2024 14:16:57 +0300 Subject: [PATCH 2/4] added lost versions --- Dockerfile | 22 +++++++++++++++++----- cf-deploy-kubernetes.sh | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 091d947..97f52d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,12 @@ RUN apk update && apk add curl RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd64") && \ mkdir -p /tmp/kubectl-versions && cd /tmp/kubectl-versions && \ curl -o kubectl1.30 -L https://storage.googleapis.com/kubernetes-release/release/v1.30.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.29 -L https://storage.googleapis.com/kubernetes-release/release/v1.29.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.28 -L https://storage.googleapis.com/kubernetes-release/release/v1.28.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.27 -L https://storage.googleapis.com/kubernetes-release/release/v1.27.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.26 -L https://storage.googleapis.com/kubernetes-release/release/v1.26.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.25 -L https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.24 -L https://storage.googleapis.com/kubernetes-release/release/v1.24.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.23 -L https://storage.googleapis.com/kubernetes-release/release/v1.23.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.22 -L https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.21 -L https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/${ARCH}/kubectl && \ @@ -18,17 +24,23 @@ RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd6 curl -o kubectl1.6 -L https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/${ARCH}/kubectl -FROM debian:bookworm-20240701-slim +FROM debian:bookworm-20240812-slim -RUN apt-get update -y && apt-get install busybox -y && ln -s /bin/busybox /usr/bin/[[ +RUN apt-get update -y +# install busybox by building source until it's unavailable by apt-get for v1.36.1 ad no need to link [[ +RUN apt-get install --no-install-recommends wget build-essential -y && \ + wget --no-check-certificate https://busybox.net/downloads/busybox-1.36.1.tar.bz2 && \ + tar -xvjf busybox-1.36.1.tar.bz2 && \ + cd busybox-1.36.1 && \ + make defconfig && \ + make && \ + make CONFIG_PREFIX="/" install RUN adduser --gecos "" --disabled-password --home /home/cfu --shell /bin/bash cfu -#RUN apt update && apt upgrade && apt install bash # THIS IS NOT REQUIRED. BASH IS ALREADY INCLUDED IN BOOKWORM - #copy all versions of kubectl to switch between them later. COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/* /usr/local/bin/ -COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/kubectl1.30 /usr/local/bin/kubectl +COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/kubectl1.10 /usr/local/bin/kubectl WORKDIR / ADD --chown=cfu --chmod=775 cf-deploy-kubernetes.sh /cf-deploy-kubernetes diff --git a/cf-deploy-kubernetes.sh b/cf-deploy-kubernetes.sh index adaac05..0507c6e 100755 --- a/cf-deploy-kubernetes.sh +++ b/cf-deploy-kubernetes.sh @@ -50,6 +50,13 @@ else SERVER_VERSION=$(kubectl version --short=true --context "${KUBECONTEXT}" | grep -i server | cut -d ':' -f2 | cut -d '.' -f2 | sed 's/[^0-9]*//g') echo "Server minor version: $SERVER_VERSION" if (( "$SERVER_VERSION" <= "6" )); then cp -f /usr/local/bin/kubectl1.6 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "7" )); then cp -f /usr/local/bin/kubectl1.7 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "8" )); then cp -f /usr/local/bin/kubectl1.8 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "9" )); then cp -f /usr/local/bin/kubectl1.9 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "10" )); then cp -f /usr/local/bin/kubectl1.10 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "11" )); then cp -f /usr/local/bin/kubectl1.11 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "12" )); then cp -f /usr/local/bin/kubectl1.12 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" <= "13" )); then cp -f /usr/local/bin/kubectl1.13 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "14" )); then cp -f /usr/local/bin/kubectl1.14 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "15" )); then cp -f /usr/local/bin/kubectl1.15 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "16" )); then cp -f /usr/local/bin/kubectl1.16 /usr/local/bin/kubectl; fi 2>/dev/null @@ -60,7 +67,13 @@ else if (( "$SERVER_VERSION" == "21" )); then cp -f /usr/local/bin/kubectl1.21 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "22" )); then cp -f /usr/local/bin/kubectl1.22 /usr/local/bin/kubectl; fi 2>/dev/null if (( "$SERVER_VERSION" == "23" )); then cp -f /usr/local/bin/kubectl1.23 /usr/local/bin/kubectl; fi 2>/dev/null - if (( "$SERVER_VERSION" >= "24" )); then cp -f /usr/local/bin/kubectl1.30 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "24" )); then cp -f /usr/local/bin/kubectl1.24 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "25" )); then cp -f /usr/local/bin/kubectl1.25 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "26" )); then cp -f /usr/local/bin/kubectl1.26 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "27" )); then cp -f /usr/local/bin/kubectl1.27 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "28" )); then cp -f /usr/local/bin/kubectl1.28 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "29" )); then cp -f /usr/local/bin/kubectl1.29 /usr/local/bin/kubectl; fi 2>/dev/null + if (( "$SERVER_VERSION" >= "30" )); then cp -f /usr/local/bin/kubectl1.30 /usr/local/bin/kubectl; fi 2>/dev/null [ ! -f "${deployment_file}" ] && echo "Couldn't find $deployment_file file at $(pwd)" && exit 1; fi From d6517a2fe5723c5fb81e8a8030fa97690e3fcae7 Mon Sep 17 00:00:00 2001 From: vitaliichyrka Date: Tue, 13 Aug 2024 14:22:29 +0300 Subject: [PATCH 3/4] added more versions --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index 97f52d3..fcc35e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,13 @@ RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd6 curl -o kubectl1.16 -L https://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.15 -L https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.14 -L https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.13 -L https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.12 -L https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.11 -L https://storage.googleapis.com/kubernetes-release/release/v1.11.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.10 -L https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.9 -L https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.8 -L https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/${ARCH}/kubectl && \ + curl -o kubectl1.7 -L https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.6 -L https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/${ARCH}/kubectl From 6fc235c6835cd253ed4503c007ea29a381ec9a73 Mon Sep 17 00:00:00 2001 From: vitaliichyrka Date: Fri, 16 Aug 2024 21:46:34 +0300 Subject: [PATCH 4/4] removed old versions --- Dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index fcc35e0..a9bf2c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,9 +25,6 @@ RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd6 curl -o kubectl1.12 -L https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.11 -L https://storage.googleapis.com/kubernetes-release/release/v1.11.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.10 -L https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.9 -L https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.8 -L https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/${ARCH}/kubectl && \ - curl -o kubectl1.7 -L https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/linux/${ARCH}/kubectl && \ curl -o kubectl1.6 -L https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/${ARCH}/kubectl