From 1ab07bf72166742b1460edacbc6db3664cd84921 Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Thu, 7 Apr 2022 09:53:26 -0400 Subject: [PATCH] feat: initial commit --- action.yaml | 25 +++++++++++++++++++++++++ login-kubectl.sh | 7 +++++++ setup-kubectl.sh | 9 +++++++++ 3 files changed, 41 insertions(+) create mode 100644 action.yaml create mode 100644 login-kubectl.sh create mode 100644 setup-kubectl.sh diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..b92bda0 --- /dev/null +++ b/action.yaml @@ -0,0 +1,25 @@ +name: Kubernetes CLI (kubectl) +description: GitHub Action to manage a K8s cluster using kubectl +author: Aarnav Tale +branding: + icon: terminal + color: blue +inputs: + kubectl-version: + description: Version of the kubectl CLI to use + required: false + default: v1.23.0 + base64-kube-config: + description: A base64 encoded reference to your authorization file (~/.kube/config) + required: true +runs: + using: composite + steps: + - name: Configure kubectl CLI + run: setup-kubectl.sh + shell: bash + - name: Authorize kubectl to the cluster + run: login-kubectl.sh + shell: bash + env: + BASE64_KUBE_CONFIG: ${{ inputs.base64-kube-config }} diff --git a/login-kubectl.sh b/login-kubectl.sh new file mode 100644 index 0000000..1b22e94 --- /dev/null +++ b/login-kubectl.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +if [ ! -d "$HOME/.kube" ]; then + mkdir -p $HOME/.kube +fi + +echo "$BASE64_KUBE_CONFIG" | base64 -d > $HOME/.kube/config diff --git a/setup-kubectl.sh b/setup-kubectl.sh new file mode 100644 index 0000000..150d3dd --- /dev/null +++ b/setup-kubectl.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +curl -LO "https://dl.k8s.io/release/${{ inputs.kubectl-version }}/bin/linux/amd64/kubectl" +curl -LO "https://dl.k8s.io/${{ inputs.kubectl-version }}/bin/linux/amd64/kubectl.sha256" +echo "$(cat kubectl.sha256) kubectl" | sha256sum --check + +mkdir $GITHUB_WORKSPACE/bin +mv kubectl $GITHUB_WORKSPACE/bin +echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH