Watch
1
1
Fork
You've already forked kind-action
0
mirror of https://github.com/helm/kind-action synced 2026-07-18 22:58:44 +00:00
  • Shell 92.7%
  • JavaScript 7.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tiger Kaovilai 7a97ed7937
fix: add curl retry flags to download calls (#165)
Transient network errors (connection reset, DNS hiccups) during
kind/kubectl/cloud-provider-kind downloads abort the whole job with
no retry, since kind.sh runs under set -o errexit.

Fixes #164

Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2026-07-17 19:33:31 +02:00
.github Bump actions/checkout from 6.0.2 to 6.0.3 in the actions group (#161) 2026-06-08 10:56:24 +02:00
.gitignore Remove TypeScript 2019-12-02 21:05:09 +01:00
action.yml bump kind to v0.31.0 and k8s to v1.35.0 (#155) 2025-12-22 12:16:44 +01:00
cleanup.js Add post action cleanup to remove kind cluster (#21) 2020-08-08 11:21:41 +02:00
cleanup.sh bump kind and kubectl and also nodejs (#150) 2025-11-03 11:06:57 +01:00
CODE_OF_CONDUCT.md Helm CoC 2019-11-26 16:39:32 -05:00
kind.sh fix: add curl retry flags to download calls (#165) 2026-07-17 19:33:31 +02:00
LICENSE Helm license 2019-11-26 16:39:21 -05:00
main.js Remove TypeScript 2019-12-02 21:05:09 +01:00
main.sh bug: respect 'install_only' action input value (#147) 2025-10-10 14:40:41 +02:00
README.md bump kind to v0.31.0 and k8s to v1.35.0 (#155) 2025-12-22 12:16:44 +01:00
registry.sh fix: propagate registry_port to container and containerd (#160) 2026-06-08 11:49:50 +02:00

Kind Action

A GitHub Action for Kubernetes IN Docker - local clusters for testing Kubernetes using kubernetes-sigs/kind.

Usage

Pre-requisites

Create a workflow YAML file in your .github/workflows directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file.

Inputs

For more information on inputs, see the API Documentation

  • version: The kind version to use (default: v0.31.0)
  • config: The path to the kind config file
  • node_image: The Docker image for the cluster nodes
  • cluster_name: The name of the cluster to create (default: chart-testing)
  • wait: The duration to wait for the control plane to become ready (default: 60s)
  • verbosity: info log verbosity, higher value produces more output
  • kubectl_version: The kubectl version to use (default: v1.35.0)
  • registry: Whether to configure an insecure local registry (default: false)
  • registry_image: The registry image to use (default: registry:2)
  • registry_name: The registry name to use (default: kind-registry)
  • registry_port: The local port used to bind the registry (default: 5000)
  • registry_enable_delete: Enable delete operations on the registry (default: false)
  • install_only: Skips cluster creation, only install kind (default: false)
  • ignore_failed_clean: Whether to ignore the post delete cluster action failing (default: false)
  • cloud_provider: Whether to use cloud provider loadbalancer (default: false)

Example Workflow

Create a workflow (eg: .github/workflows/create-cluster.yml):

name: Create Cluster

on: pull_request

jobs:
  create-cluster:
    runs-on: ubuntu-latest
    steps:
      - name: Create k8s Kind Cluster
        uses: helm/kind-action@v1

This uses @helm/kind-action GitHub Action to spin up a kind Kubernetes cluster on every Pull Request. See @helm/chart-testing-action for a more practical example.

Configuring Local Registry

Create a workflow (eg: .github/workflows/create-cluster-with-registry.yml):

name: Create Cluster with Registry

on: pull_request

jobs:
  create-cluster-with-registry:
    runs-on: ubuntu-latest
    steps:
      - name: Kubernetes KinD Cluster
        id: kind
        uses: helm/kind-action@v1
        with:
          registry: true
          registry_name: my-registry
          registry_port: 5001
          registry_enable_delete: true

This will configure the cluster with an insecure local registry at my-registry:5001 on both the host and within cluster. Subsequent steps can refer to the registry address with the output of the kind setup step (i.e. ${{ steps.kind.outputs.LOCAL_REGISTRY }}).

Note: If config option is used, you must manually configure the cluster nodes with registry config dir enabled at /etc/containerd/certs.d. For example:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
containerdConfigPatches:
- |-
  [plugins."io.containerd.grpc.v1.cri".registry]
    config_path = "/etc/containerd/certs.d"

Code of conduct

Participation in the Helm community is governed by the Code of Conduct.