kind (Kubernetes in Docker) GitHub Action
Setup KinD (Kubernetes in Docker) with a single GitHub Action!
Because of a deprecation in the GitHub Actions environment, versions lower than v0.5.0 will no longer work properly. See this issue for more details.
This action assumes a Linux environment, and will not work on Windows or MacOS agents.
name: "Create cluster using KinD" on: [pull_request, push]jobs: kind: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - uses: engineerd/[email protected] - name: Testing run: | kubectl cluster-info kubectl get pods -n kube-system echo "current-context:" $(kubectl config current-context) echo "environment-kubeconfig:" ${KUBECONFIG}
Note: KUBECONFIG is automatically merged after cluster creation starting with version 0.6 of Kind. See this document for a detailed migration guide
Note: GitHub Actions workers come pre-configured with
kubectl.
The following arguments can be configured on the job using the
withkeyword (see example above). Currently, possible inputs are all the flags for
kind cluster create, with the additional version, which sets the Kind version to downloadm and
skipClusterCreation, which when present, skips creating the cluster (the Kind tools is configured in the path).
Optional inputs:
version: version of Kind to use (default
"v0.9.0")
config: path (relative to the root of the repository) to a kind config file. If omitted, a default 1-node cluster will be created
image: node Docker image to use for booting the cluster.
name: cluster context name (default
"kind-kind")
wait: wait for control plane node to be ready (default
"300s")
skipClusterCreation: if
"true", the action will not create a cluster, just acquire the tools
Example using optional inputs:
name: "Create cluster using KinD" on: [pull_request, push]jobs: kind: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - uses: engineerd/[email protected] with: version: "v0.9.0" - name: Testing run: | kubectl cluster-info kubectl get pods -n kube-system echo "current-context:" $(kubectl config current-context) echo "environment-kubeconfig:" ${KUBECONFIG}