A Github action for using kubectl and helm to deploy applications to Kubernetes cluster
https://www.paypal.me/junvzhao
Encode your kubeconfig
file with base64 encoding.
cat $HOME/.kube/config | base64
Store the encoded string as a secret with name KUBE_CONFIG_DATA
, by navigating to your repo -> Settings -> Secrets -> Add a new secret
Create a workflow file .github/workflows/deploy.yaml
on: push
name: deploy
jobs:
deploy:
name: deploy to cluster
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: deploy to cluster
uses: wahyd4/kubectl-helm-action@master
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
with:
args: kubectl apply -f manifest.yaml
Or you may want to deploy applications with helm
- name: deploy postgres to cluster
uses: wahyd4/kubectl-helm-action@master
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
with:
args: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install postgres -n data bitnami/postgresql
You can switch to different helm version by using different tags, current the master branch uses helm 3.13
- 3.12 wahyd4/[email protected]
- 3.13 wahyd4/[email protected]
- 3.14 wahyd4/[email protected]
- 3.15 wahyd4/[email protected]
This repo is inspired by steebchen/kubectl, thanks.