These are annotated cloud-config documents for the common types of node. Each one is a complete, working document. Copy it, change the addresses and keys, and boot.

The files are in docs/examples/ in the repository. Each file has comments that explain what a field does and why it is there. The links below open the files on GitHub.

Before you boot anything, validate the document:

corium-agent validate node.yaml

Validation works offline and reports all problems at the same time.


Start here

ExampleWhat it builds
single-node.yamlThe smallest useful node: a complete single-node cluster in a few lines
worker.yamlA worker that joins an existing cluster with a token
controller.yamlA control-plane node

Highly available control plane

ExampleWhat it builds
ha-controller-first.yamlThe first of three controllers. It creates the token that the other controllers need
ha-controller-join.yamlThe second and third controllers. They wait for that token

See HA cluster for the procedure that uses these files.

Networking and storage

ExampleWhat it builds
custom-cni.yamlcni: custom, with the CNI installed as an add-on. See Cilium
wireguard-overlay.yamlA node whose cluster traffic runs over an encrypted host overlay. See WireGuard overlay
stretched-controller-calico-wireguard.yamlA controller in a cluster split across two sites
stretched-worker.yamlA worker on the other site of that cluster
raid.yamlA node that mirrors its two spare disks and puts the Kubernetes state on the array. See Software RAID
kubernetes-version.yamlA node pinned to a Kubernetes version that is not the floor of its image, pulled from an internal mirror. See ADR 10

Day two

ExampleWhat it builds
backup.yamlA controller that makes a snapshot of its own control plane every night on an NFS mount, and keeps two weeks of snapshots. See reference §3.18

Extensions

ExampleWhat it builds
manifests.yamlMetalLB, installed as a chart and configured with plain Kubernetes YAML in the same document, through manifests[]

Managed nodes

ExampleWhat it builds
managed-node.yamlA worker that you can reach with cctl. It shows each way that an operator CA can arrive
awaiting-config.yamlA node that boots and waits for someone to tell it what it is. One identical document for a whole fleet, with no secrets

See cctl for the commands that control these nodes.

Beyond the schema

ExampleWhat it builds
escape-hatch.yamlk0s.patch, write_files and runcmd next to the corium: block, for everything that the schema does not model
standalone.yamlThe schema alone, with no cloud-config wrapper. Use it for /etc/corium/config.yaml, a kernel command line, or an image default

Next