Installs and configures k inside GitHub actions.
gitops-repository-url
- The URL for your GitOps repository. Include a Personal Access Token in the userinfo part of the URL. Eg. https://<personal-access-token>@github.com/<organization>/<repository>
.
kube-config
- A Base64 encoded string containing a full kubectl
configuration YAML payload with access to the Kubernetes repository you want k
to interact with. Eg. Linux: cat ~/.kube/config | base64
(on Linux add the --wrap 0
argument to avoid newlines).
kube-config
- The name of the kubectl
context to use. Defaults to the current context as set in kube-config
.
registry
- The host of the Docker registry. Eg. docker.io
, ghcr.io
etc. Note: If you're running commands relying on docker
, you might want to use another Github action to login to your registry.
registry-namespace
- The namespace (aka. user / organisation) on the Docker registry. Ie. the path that goes in between the registry host and the repository name of your Docker images.
Example of running k deploy
to deploy the current git-sha of the checked out repository to <application-name>
.
Assumes you have a GITOPS_REPOSITORY_URL
secret containing your GitOps repo URL (including a personal access token as basic auth) and a KUBE_CONFIG
secret containing a Base64 encoded dump of a kubectl
config file with access to your Kubernetes cluster.
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: reclaim-the-stack/k-action@master
with:
gitops-repository-url: ${{ secrets.GITOPS_REPOSITORY_URL }}
kube-config: ${{ secrets.KUBE_CONFIG }}
- uses: actions/checkout@v3
- run: k deploy <application-name> --disable-image-verification