Skip to content

Commit

Permalink
Merge pull request #2259 from replicatedhq/emosbaugh/sc-38490/kotsadm…
Browse files Browse the repository at this point in the history
…-kotsadm-kubelet-binaries

Update bin kubectl patch versions
  • Loading branch information
emosbaugh committed Oct 20, 2021
2 parents 728cab6 + 5a0ad9a commit 91e454b
Show file tree
Hide file tree
Showing 9 changed files with 407 additions and 194 deletions.
69 changes: 40 additions & 29 deletions deploy/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,64 +10,75 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/share/man/man*

# KOTS can be configured to use a specific version of kubectl by setting kubectlVersion in the
# kots.io/v1beta1.Application spec. The github.com/replicatedhq/kots/pkg/binaries package will
# discover all kubectl binaries in the KOTS_KUBECTL_BIN_DIR directory for use by KOTS.

ENV KOTS_KUBECTL_BIN_DIR=/usr/local/bin

# Install Kubectl 1.14
ENV KUBECTL_1_14_VERSION=v1.14.9
ENV KUBECTL_1_14_VERSION=v1.14.10
ENV KUBECTL_1_14_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_14_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_14_SHA256SUM=d2a31e87c5f6deced4ba8899f9c465e54822f0cd146f32ea83cb1daafa5d9c4f
ENV KUBECTL_1_14_SHA256SUM=7729c6612bec76badc7926a79b26e0d9b06cc312af46dbb80ea7416d1fce0b36
RUN curl -fsSLO "${KUBECTL_1_14_URL}" \
&& echo "${KUBECTL_1_14_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_14_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_14_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.14"

# Install Kubectl 1.16
ENV KUBECTL_1_16_VERSION=v1.16.3
ENV KUBECTL_1_16_VERSION=v1.16.15
ENV KUBECTL_1_16_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_16_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_16_SHA256SUM=cded1b46405741575f31024b757fd967645e815bb0ab1c5f5fcd029f25cc0f2d
ENV KUBECTL_1_16_SHA256SUM=e8913069293156ddf55f243814a22d2384fc18b165efb6200606fdeaad146605
RUN curl -fsSLO "${KUBECTL_1_16_URL}" \
&& echo "${KUBECTL_1_16_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_16_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_16_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.16"

ENV KUBECTL_1_17_VERSION=v1.17.13
# Install Kubectl 1.17
ENV KUBECTL_1_17_VERSION=v1.17.17
ENV KUBECTL_1_17_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_17_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_17_SHA256SUM=25824bf20d8d9501e9b6cabdd6bd25ec10cc649d4e3155dba86037f57bba842e
ENV KUBECTL_1_17_SHA256SUM=8329fac94c66bf7a475b630972a8c0b036bab1f28a5584115e8dd26483de8349
RUN curl -fsSLO "${KUBECTL_1_17_URL}" \
&& echo "${KUBECTL_1_17_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_17_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_17_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.17"

ENV KUBECTL_1_18_VERSION=v1.18.10
# Install Kubectl 1.18
ENV KUBECTL_1_18_VERSION=v1.18.20
ENV KUBECTL_1_18_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_18_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_18_SHA256SUM=b25c445cb36ab168de590c13b50bced4e7877ed15ca899a261053b4ba3ba1456
ENV KUBECTL_1_18_SHA256SUM=66a9bb8e9843050340844ca6e72e67632b75b9ebb651559c49db22f35450ed2f
RUN curl -fsSLO "${KUBECTL_1_18_URL}" \
&& echo "${KUBECTL_1_18_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_18_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_18_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.18"

ENV KUBECTL_1_19_VERSION=v1.19.3
# Install Kubectl 1.19
ENV KUBECTL_1_19_VERSION=v1.19.15
ENV KUBECTL_1_19_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_19_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_19_SHA256SUM=84eeb8237448e4f431fef0f0ec0ba8b07558d8e52d5a7e89b4ae64dadcffbe66
ENV KUBECTL_1_19_SHA256SUM=6f2ac7db8cfd59f660abc9891c1bb7da2dabd1cf5e114d836f2ffd39ee677d04
RUN curl -fsSLO "${KUBECTL_1_19_URL}" \
&& echo "${KUBECTL_1_19_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_19_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_19_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.19"

ENV KUBECTL_1_20_VERSION=v1.20.4
# Install Kubectl 1.20
ENV KUBECTL_1_20_VERSION=v1.20.11
ENV KUBECTL_1_20_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_20_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_20_SHA256SUM=98e8aea149b00f653beeb53d4bd27edda9e73b48fed156c4a0aa1dabe4b1794c
ENV KUBECTL_1_20_SHA256SUM=3a2bf981939df89f807858a481f6f5f2e33a7b9708bd029c8bece434db228efe
RUN curl -fsSLO "${KUBECTL_1_20_URL}" \
&& echo "${KUBECTL_1_20_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_20_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_20_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.20"

ENV KUBECTL_1_21_VERSION=v1.21.2
# Install Kubectl 1.21
ENV KUBECTL_1_21_VERSION=v1.21.5
ENV KUBECTL_1_21_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_21_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_21_SHA256SUM=55b982527d76934c2f119e70bf0d69831d3af4985f72bb87cd4924b1c7d528da
ENV KUBECTL_1_21_SHA256SUM=060ede75550c63bdc84e14fcc4c8ab3017f7ffc032fc4cac3bf20d274fab1be4
RUN curl -fsSLO "${KUBECTL_1_21_URL}" \
&& echo "${KUBECTL_1_21_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_21_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_21_VERSION}" \
&& ln -s "/usr/local/bin/kubectl-${KUBECTL_1_21_VERSION}" /usr/local/bin/kubectl
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.21" \
&& ln -s "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.21" "${KOTS_KUBECTL_BIN_DIR}/kubectl"

# Install helm v3.4.2
RUN curl -L "https://get.helm.sh/helm-v3.4.2-linux-amd64.tar.gz" -o /tmp/helm.tar.gz && \
Expand Down
70 changes: 41 additions & 29 deletions hack/dev/Dockerfile.skaffold
Original file line number Diff line number Diff line change
Expand Up @@ -26,64 +26,76 @@ RUN apt-get update && apt-get install -y --no-install-recommends curl gnupg2 \
ENV GO111MODULE=on
ENV PATH="/usr/local/bin:$PATH"

# KOTS can be configured to use a specific version of kubectl by setting kubectlVersion in the
# kots.io/v1beta1.Application spec. The github.com/replicatedhq/kots/pkg/binaries package will
# discover all kubectl binaries in the KOTS_KUBECTL_BIN_DIR directory for use by KOTS.

ENV KOTS_KUBECTL_BIN_DIR=/usr/local/bin

# Install Kubectl 1.14
ENV KUBECTL_1_14_VERSION=v1.14.9
ENV Install Kubectl 1.14
ENV KUBECTL_1_14_VERSION=v1.14.10
ENV KUBECTL_1_14_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_14_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_14_SHA256SUM=d2a31e87c5f6deced4ba8899f9c465e54822f0cd146f32ea83cb1daafa5d9c4f
ENV KUBECTL_1_14_SHA256SUM=7729c6612bec76badc7926a79b26e0d9b06cc312af46dbb80ea7416d1fce0b36
RUN curl -fsSLO "${KUBECTL_1_14_URL}" \
&& echo "${KUBECTL_1_14_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_14_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_14_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.14"

# Install Kubectl 1.16
ENV KUBECTL_1_16_VERSION=v1.16.3
ENV KUBECTL_1_16_VERSION=v1.16.15
ENV KUBECTL_1_16_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_16_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_16_SHA256SUM=cded1b46405741575f31024b757fd967645e815bb0ab1c5f5fcd029f25cc0f2d
ENV KUBECTL_1_16_SHA256SUM=e8913069293156ddf55f243814a22d2384fc18b165efb6200606fdeaad146605
RUN curl -fsSLO "${KUBECTL_1_16_URL}" \
&& echo "${KUBECTL_1_16_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_16_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_16_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.16"

ENV KUBECTL_1_17_VERSION=v1.17.13
# Install Kubectl 1.17
ENV KUBECTL_1_17_VERSION=v1.17.17
ENV KUBECTL_1_17_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_17_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_17_SHA256SUM=25824bf20d8d9501e9b6cabdd6bd25ec10cc649d4e3155dba86037f57bba842e
ENV KUBECTL_1_17_SHA256SUM=8329fac94c66bf7a475b630972a8c0b036bab1f28a5584115e8dd26483de8349
RUN curl -fsSLO "${KUBECTL_1_17_URL}" \
&& echo "${KUBECTL_1_17_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_17_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_17_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.17"

ENV KUBECTL_1_18_VERSION=v1.18.10
# Install Kubectl 1.18
ENV KUBECTL_1_18_VERSION=v1.18.20
ENV KUBECTL_1_18_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_18_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_18_SHA256SUM=b25c445cb36ab168de590c13b50bced4e7877ed15ca899a261053b4ba3ba1456
ENV KUBECTL_1_18_SHA256SUM=66a9bb8e9843050340844ca6e72e67632b75b9ebb651559c49db22f35450ed2f
RUN curl -fsSLO "${KUBECTL_1_18_URL}" \
&& echo "${KUBECTL_1_18_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_18_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_18_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.18"

ENV KUBECTL_1_19_VERSION=v1.19.3
# Install Kubectl 1.19
ENV KUBECTL_1_19_VERSION=v1.19.15
ENV KUBECTL_1_19_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_19_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_19_SHA256SUM=84eeb8237448e4f431fef0f0ec0ba8b07558d8e52d5a7e89b4ae64dadcffbe66
ENV KUBECTL_1_19_SHA256SUM=6f2ac7db8cfd59f660abc9891c1bb7da2dabd1cf5e114d836f2ffd39ee677d04
RUN curl -fsSLO "${KUBECTL_1_19_URL}" \
&& echo "${KUBECTL_1_19_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_19_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_19_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.19"

ENV KUBECTL_1_20_VERSION=v1.20.4
# Install Kubectl 1.20
ENV KUBECTL_1_20_VERSION=v1.20.11
ENV KUBECTL_1_20_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_20_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_20_SHA256SUM=98e8aea149b00f653beeb53d4bd27edda9e73b48fed156c4a0aa1dabe4b1794c
ENV KUBECTL_1_20_SHA256SUM=3a2bf981939df89f807858a481f6f5f2e33a7b9708bd029c8bece434db228efe
RUN curl -fsSLO "${KUBECTL_1_20_URL}" \
&& echo "${KUBECTL_1_20_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_20_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_20_VERSION}"
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.20"

ENV KUBECTL_1_21_VERSION=v1.21.2
# Install Kubectl 1.21
ENV KUBECTL_1_21_VERSION=v1.21.5
ENV KUBECTL_1_21_URL=https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_1_21_VERSION}/bin/linux/amd64/kubectl
ENV KUBECTL_1_21_SHA256SUM=55b982527d76934c2f119e70bf0d69831d3af4985f72bb87cd4924b1c7d528da
ENV KUBECTL_1_21_SHA256SUM=060ede75550c63bdc84e14fcc4c8ab3017f7ffc032fc4cac3bf20d274fab1be4
RUN curl -fsSLO "${KUBECTL_1_21_URL}" \
&& echo "${KUBECTL_1_21_SHA256SUM} kubectl" | sha256sum -c - \
&& echo "${KUBECTL_1_21_SHA256SUM} kubectl" | sha256sum -c - \
&& chmod +x kubectl \
&& mv kubectl "/usr/local/bin/kubectl-${KUBECTL_1_21_VERSION}" \
&& ln -s "/usr/local/bin/kubectl-${KUBECTL_1_21_VERSION}" /usr/local/bin/kubectl
&& mv kubectl "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.21" \
&& ln -s "${KOTS_KUBECTL_BIN_DIR}/kubectl-v1.21" "${KOTS_KUBECTL_BIN_DIR}/kubectl"

# Install kustomize 3
RUN curl -L "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv3.5.4/kustomize_v3.5.4_linux_amd64.tar.gz" > /tmp/kustomize.tar.gz && \
Expand Down
6 changes: 6 additions & 0 deletions pkg/apiserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/gorilla/mux"
"github.com/pkg/errors"
"github.com/replicatedhq/kots/pkg/automation"
"github.com/replicatedhq/kots/pkg/binaries"
"github.com/replicatedhq/kots/pkg/handlers"
"github.com/replicatedhq/kots/pkg/informers"
"github.com/replicatedhq/kots/pkg/k8sutil"
Expand Down Expand Up @@ -72,6 +73,11 @@ func Start(params *APIServerParams) {

store.GetStore().RunMigrations()

if err := binaries.InitKubectl(); err != nil {
log.Println("error initializing kubectl binaries package")
panic(err)
}

if err := operator.Start(params.AutocreateClusterToken); err != nil {
log.Println("error starting the operator")
panic(err)
Expand Down

0 comments on commit 91e454b

Please sign in to comment.