Created
June 20, 2022 05:16
-
-
Save Reizinixc/fc5e2c2a036aac127ffd7d1a052847bb to your computer and use it in GitHub Desktop.
kubectl-kustomize for manifest build
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
# syntax=docker/dockerfile:1.4 | |
ARG BASE_IMAGE_REPO=docker.io | |
ARG USER_ID=1000 | |
ARG USER=runtime | |
ARG CURL_IMAGE=${BASE_IMAGE_REPO}/curlimages/curl:7.83.1 | |
ARG RUNTIME_IMAGE=${BASE_IMAGE_REPO}/busybox:1.34.1 | |
ARG KUBECTL_VERSION=1.24.0 | |
ARG KUSTOMIZE_VERSION=4.5.5 | |
ARG KUBECTL_NEAT_VERSION=2.0.3 | |
ARG KUBECTL_NEAT_DIFF_VERSION=0.1.0 | |
#ARG SOPS_VERSION=3.7.3 | |
ARG DOWNLOAD_PATH=/downloads | |
ARG RUNTIME_PATH=/usr/local/bin | |
FROM ${CURL_IMAGE} AS downloader | |
ARG DOWNLOAD_PATH | |
WORKDIR ${DOWNLOAD_PATH} | |
FROM downloader AS kubectl | |
ARG KUBECTL_VERSION | |
RUN set -eux && \ | |
curl -LO https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl && \ | |
chmod +x kubectl | |
FROM downloader AS kustomize | |
ARG KUSTOMIZE_VERSION | |
RUN set -eux && \ | |
curl -fL https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_amd64.tar.gz | tar xz && \ | |
chmod +x kustomize | |
FROM downloader AS kubectl-neat | |
ARG KUBECTL_NEAT_VERSION | |
RUN set -eux && \ | |
curl -fL https://github.com/itaysk/kubectl-neat/releases/download/v${KUBECTL_NEAT_VERSION}/kubectl-neat_linux_amd64.tar.gz | tar xz && \ | |
chmod +x kubectl-neat | |
FROM downloader AS kubectl-neat-diff | |
ARG KUBECTL_NEAT_DIFF_VERSION | |
RUN set -eux && \ | |
curl -L -o kubectl-neat-diff https://github.com/sh0rez/kubectl-neat-diff/releases/download/v${KUBECTL_NEAT_DIFF_VERSION}/kubectl-neat-diff-linux-amd64 && \ | |
chmod +x kubectl-neat-diff | |
#FROM downloader AS sops | |
#ARG SOPS_VERSION | |
# | |
#RUN set -eux && \ | |
# curl -L -o sops https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux.amd64 && \ | |
# chmod +x sops | |
FROM ${RUNTIME_IMAGE} AS runtime | |
ARG DOWNLOAD_PATH | |
ARG RUNTIME_PATH | |
ARG USER_ID | |
ARG USER | |
RUN set -eux && \ | |
adduser -D -u $USER_ID $USER $USER | |
USER 1000 | |
COPY --from=kubectl --chown=$USER_ID:$USER_ID --link ${DOWNLOAD_PATH}/kubectl ${RUNTIME_PATH}/kubectl | |
COPY --from=kustomize --chown=$USER_ID:$USER_ID --link ${DOWNLOAD_PATH}/kustomize ${RUNTIME_PATH}/kustomize | |
COPY --from=kubectl-neat --chown=$USER_ID:$USER_ID --link ${DOWNLOAD_PATH}/kubectl-neat ${RUNTIME_PATH}/kubectl-neat | |
COPY --from=kubectl-neat-diff --chown=$USER_ID:$USER_ID --link ${DOWNLOAD_PATH}/kubectl-neat-diff ${RUNTIME_PATH}/kubectl-neat-diff | |
COPY --from=sops --chown=$USER_ID:$USER_ID --link ${DOWNLOAD_PATH}/sops ${RUNTIME_PATH}/sops | |
FROM runtime AS test | |
USER 1000 | |
RUN set -eux && \ | |
kubectl --help && \ | |
kustomize --help && \ | |
kubectl-neat --help && \ | |
kubectl-neat-diff --help && \ | |
# sops --help && \ | |
kubectl config set-cluster test --server=http://localhost --insecure-skip-tls-verify=true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment