Cluster Configuration¶
The cluster section configures the Kind cluster.
Basic Configuration¶
Options¶
name¶
The name of the Kind cluster.
- Type: string
- Default:
kindplane-dev - Required: Yes
kubernetesVersion¶
The Kubernetes version to use.
- Type: string
- Default: Kind's default version
- Required: No
Available Versions
Check Kind releases for available Kubernetes versions.
nodes¶
Configure the number of control plane and worker nodes.
| Field | Type | Default | Description |
|---|---|---|---|
controlPlane | int | 1 | Number of control plane nodes |
workers | int | 1 | Number of worker nodes |
portMappings¶
Expose container ports to the host.
cluster:
portMappings:
- containerPort: 80
hostPort: 8080
protocol: TCP
- containerPort: 443
hostPort: 8443
protocol: TCP
| Field | Type | Required | Description |
|---|---|---|---|
containerPort | int | Yes | Port inside the container |
hostPort | int | Yes | Port on the host machine |
protocol | string | No | Protocol (TCP/UDP), defaults to TCP |
ingress¶
Configure ingress controller support.
When enabled, kindplane:
- Adds the
ingress-ready=truelabel to nodes - Configures appropriate port mappings for ingress controllers
extraMounts¶
Mount host directories into Kind nodes.
cluster:
extraMounts:
- hostPath: /tmp/kindplane-data
containerPath: /data
readOnly: false
- hostPath: ~/.aws
containerPath: /root/.aws
readOnly: true
| Field | Type | Required | Description |
|---|---|---|---|
hostPath | string | Yes | Path on the host machine |
containerPath | string | Yes | Path inside the container |
readOnly | bool | No | Mount as read-only (default: false) |
registry¶
Configure a local container registry for development.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Enable local container registry |
port | int | 5001 | Host port for the registry |
persistent | bool | false | Keep registry container after kindplane down |
name | string | kind-registry | Registry container name |
When enabled, kindplane:
- Creates a local Docker registry container
- Configures Kind nodes to pull images from the registry
- Connects the registry to the Kind network
- Creates a
local-registry-hostingConfigMap for discovery
Learn More
See Local Registry Guide for usage examples and workflow.
trustedCAs¶
Configure trusted CA certificates for private registries and workloads.
cluster:
trustedCAs:
registries:
- host: "harbor.mycompany.com"
caFile: "./certs/harbor-ca.crt"
workloads:
- name: "corporate-root-ca"
caFile: "./certs/corporate-ca.crt"
| Section | Field | Type | Required | Description |
|---|---|---|---|---|
registries | host | string | Yes | Registry host (e.g., "registry.example.com:5000") |
registries | caFile | string | Yes | Path to CA certificate file |
workloads | name | string | Yes | Identifier for the CA |
workloads | caFile | string | Yes | Path to CA certificate file |
Learn More
See Trusted CAs for detailed documentation on certificate configuration.
nodeImage¶
Specify the full Kind node image path. Use this when your environment requires pulling images through a proxy registry like Artifactory due to network restrictions.
| Field | Type | Required | Description |
|---|---|---|---|
nodeImage | string | No | Full Kind node image path. If not specified, defaults to kindest/node:v<kubernetesVersion> |
Default Behaviour: - If nodeImage is not specified and kubernetesVersion is set, Kind will use kindest/node:v<version> - If nodeImage is specified, it takes precedence over the default
Examples:
Simple proxy registry:
Docker Hub proxy with path:
Custom registry with port:
Important Notes:
- Certificate Configuration: If your proxy registry uses custom certificates, ensure it's configured in
trustedCAs.registries:
cluster:
nodeImage: "artifactory.example.com/kindest/node:v1.29.0"
trustedCAs:
registries:
- host: "artifactory.example.com"
caFile: "./certs/artifactory-ca.crt"
-
Image Availability: Ensure the proxy registry has the required Kind node images available, or that it can proxy requests to Docker Hub.
-
Version Mismatch: If you specify
nodeImagemanually, ensure the image version matches yourkubernetesVersion(if specified) or your intended Kubernetes version.
rawConfigPath¶
Use a raw Kind configuration file as a base.
When specified, kindplane:
- Loads the raw Kind config
- Merges kindplane settings on top
- kindplane settings take precedence
Complete Example¶
cluster:
name: dev-cluster
kubernetesVersion: "1.29.0"
nodes:
controlPlane: 1
workers: 3
portMappings:
- containerPort: 80
hostPort: 8080
protocol: TCP
- containerPort: 443
hostPort: 8443
protocol: TCP
- containerPort: 30000
hostPort: 30000
protocol: TCP
ingress:
enabled: true
extraMounts:
- hostPath: /tmp/data
containerPath: /data
readOnly: false
Multi-Node Clusters¶
For testing high availability or distributed workloads:
Resource Requirements
Multi-node clusters require more resources. Ensure Docker has sufficient CPU and memory allocated.