From 2034d9209042c729f7e166c36d20e77d7e76e3a4 Mon Sep 17 00:00:00 2001 From: James Brumond Date: Sat, 3 Dec 2022 20:29:21 -0800 Subject: [PATCH] first commit --- .drone.yml | 14 ++++++++++++++ Dockerfile | 19 +++++++++++++++++++ readme.md | 27 +++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 readme.md diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..74d74af --- /dev/null +++ b/.drone.yml @@ -0,0 +1,14 @@ +--- +kind: template +load: multiarch-container.yaml +data: + repo: examples/kubectl + build_args: + - KUBERNETES_RELEASE=v1.24.2 + tags: + - "1.24.2" + - "1.24" + - "1" + platforms: + - os: linux + arch: arm64 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..58f346c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ + +FROM alpine:3.17 + +ARG OS +ARG ARCH +ARG KUBERNETES_RELEASE + +RUN apk --no-cache add --update curl ca-certificates bash + +RUN curl -Lo /usr/local/bin/kubectl \ + https://storage.googleapis.com/kubernetes-release/release/${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl + +RUN chmod +x /usr/local/bin/kubectl + +COPY kubectl-setup /bin/ +RUN chmod +x /bin/kubectl-setup + +CMD [ "/bin/kubectl-setup" ] +ENTRYPOINT [ "/bin/bash", "-l", "-c" ] diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..7e76993 --- /dev/null +++ b/readme.md @@ -0,0 +1,27 @@ + +## `kubectl` image + +An `alpine` image with `kubectl` installed + +See https://blog.jbrumond.me/post/raspberry-pi-cluster-part-4:-gitea-and-drone for more info + + + +### Drone CI Usage + +```yaml +steps: +- name: deploy + image: gitea.internal.example.com/examples/kubectl:1.24 + environment: + KUBERNETES_SERVER: https://k8s-cluster-api.example:6443 + KUBERNETES_TOKEN: + from_secret: kubernetes-service-account-token + KUBERNETES_CERT: + from_secret: kubernetes-service-account-cert + commands: + - /bin/kubectl-setup + - kubectl set image "deployment/example-deployment" "example-container=gitea.internal.example.com/images/example-image" + - kubectl rollout restart "deployment/example-deployment" + - kubectl rollout status "deployment/example-deployment" +```