Last active
January 21, 2024 23:57
-
-
Save kriipke/e9e5b6c456302cc098688d5086d3a0da to your computer and use it in GitHub Desktop.
Docker container with a portable toolkit of Kubernetes related cli commands
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:jammy as base | |
ENV KUBE_VERSION=v1.27.4 | |
ENV KUBECTL_VERSION=${KUBE_VERSION} | |
ENV KREW_VERSION=v0.4.4 | |
ENV HELM_VERSION=v3.14.0 | |
ARG DEBIAN_FRONTEND=noninteractive | |
FROM base as base-install-depends | |
RUN apt update -y && apt install -y curl git tar | |
FROM base-install-depends as kubectl | |
WORKDIR /tmp | |
RUN mkdir -p /tmp/kubectl && mkdir -p /tmp/bin | |
WORKDIR /tmp/kubectl | |
RUN curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION:?}/bin/linux/amd64/kubectl" \ | |
&& install ./kubectl /tmp/bin/kubectl | |
FROM base-install-depends as krew | |
WORKDIR /tmp | |
RUN mkdir -p /tmp/krew && mkdir -p /tmp/bin | |
WORKDIR /tmp/krew | |
RUN curl -sSLo krew.tar.gz "https://github.com/kubernetes-sigs/krew/releases/download/${KREW_VERSION}/krew-linux_amd64.tar.gz" \ | |
&& tar -xzf krew.tar.gz \ | |
&& install ./krew-linux_amd64 /tmp/bin/krew | |
FROM base-install-depends as helm | |
WORKDIR /tmp | |
RUN mkdir -p /tmp/helm && mkdir -p /tmp/bin | |
WORKDIR /tmp/helm | |
RUN curl -sSLo helm.tar.gz "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" \ | |
&& tar -xzf helm.tar.gz \ | |
&& install ./linux-amd64/helm /tmp/bin/helm | |
FROM base as final | |
RUN mkdir -p /usr/local/bin/ && echo 'export PATH=/usr/local/bin:$PATH' >> /etc/profile.d/sh.local | |
USER kube-admin | |
COPY --from=kubectl /tmp/bin/kubectl /usr/local/bin/kubectl | |
COPY --from=krew /tmp/bin/krew /usr/local/bin/krew | |
COPY --from=helm /tmp/bin/helm /usr/local/bin/helm | |
WORKDIR /app | |
CMD ["/bin/bash"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment