# The cluster. One node by default — add nodes or port mappings by editing this # file, then `make cluster reset`. # # A TEMPLATE rather than a plain kind-config.yaml because a rig is copied and # renamed to make a second environment, and both the cluster name and the host # port follow the directory. A checked-in literal would make every copy collide # on both. ctrl/cluster.sh renders it with sed — not envsubst, which is # gettext-base and absent from a minimal Debian, and rig's whole premise is that # Docker is the only prerequisite. # # Substituted by ctrl/cluster.sh: CLUSTER, NODE_IMAGE, HTTP_PORT, HOST_WORKDIR # (named without the ${...} braces so this line survives the substitution) # The node count is READ BACK from this file by lib/config.sh, so this YAML is # the source of truth for it — there is no second place to update. kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 name: ${CLUSTER} # Point containerd at a certs.d directory. registry.sh drops per-host hosts.toml # files in there afterwards, so switching registry mode never requires # recreating the cluster. containerdConfigPatches: - |- [plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d" nodes: - role: control-plane image: ${NODE_IMAGE} # One NodePort bridged to the host; an in-cluster gateway owns it. There is # deliberately no ingress controller — they pin a narrow window of k8s # versions, and running a trailing-edge control plane is the point. extraPortMappings: - containerPort: 30080 hostPort: ${HTTP_PORT} listenAddress: "0.0.0.0" protocol: TCP