Skip to main content
The ClusterConfig section defines cluster-wide configuration that applies to all nodes in the cluster. This includes the control plane endpoint, Kubernetes component settings, and cluster networking.

Cluster Identity

cluster.id
string
Globally unique identifier for the cluster (base64 encoded random 32 bytes). Automatically generated during cluster creation.
cluster.secret
string
Shared secret of the cluster (base64 encoded random 32 bytes). This secret is shared among cluster members but should never be sent over the network.
cluster.clusterName
string
The name of the cluster.
cluster:
  clusterName: production-cluster

Control Plane Configuration

cluster.controlPlane
object
required
Control plane endpoint configuration.

Cluster Networking

cluster.network
object
Cluster-specific network configuration.

Bootstrap Token

cluster.token
string
The bootstrap token used to join the cluster.
cluster:
  token: wlzjyw.bei2zfylhs2by0wd

Encryption Configuration

cluster.aescbcEncryptionSecret
string
Key for encryption of secret data at rest using AESCBC.
cluster.secretboxEncryptionSecret
string
Key for encryption of secret data at rest using secretbox. Takes precedence over AESCBC.

Certificate Authorities

cluster.ca
object
The base64 encoded root certificate authority used by Kubernetes.
cluster:
  ca:
    crt: LS0tLS1CRUdJTi...
    key: LS0tLS1CRUdJTi...
cluster.acceptedCAs
array
List of base64 encoded accepted certificate authorities used by Kubernetes.
cluster.aggregatorCA
object
The base64 encoded aggregator certificate authority for Kubernetes front-proxy certificate generation. Can be self-signed.
cluster.serviceAccount
object
The base64 encoded private key for service account token generation.

Kubernetes Components

API Server

cluster.apiServer
object
API server configuration.

Controller Manager

cluster.controllerManager
object
Controller manager configuration.

Scheduler

cluster.scheduler
object
Scheduler configuration.

Proxy

cluster.proxy
object
Kube-proxy configuration.

Etcd Configuration

cluster.etcd
object
Etcd cluster configuration.

CoreDNS

cluster.coreDNS
object
CoreDNS configuration.

Manifests

cluster.extraManifests
array
URLs pointing to additional manifests to deploy during bootstrap.
cluster:
  extraManifests:
    - https://www.example.com/manifest1.yaml
    - https://www.example.com/manifest2.yaml
cluster.extraManifestHeaders
object
Key-value pairs added as headers when fetching extra manifests.
cluster:
  extraManifestHeaders:
    Token: "1234567"
    X-ExtraInfo: "info"
cluster.inlineManifests
array
Inline Kubernetes manifests to deploy during bootstrap.
cluster:
  inlineManifests:
    - name: namespace-example
      contents: |
        apiVersion: v1
        kind: Namespace
        metadata:
          name: example

Scheduling

cluster.allowSchedulingOnControlPlanes
boolean
Allow running workloads on control plane nodes.
cluster:
  allowSchedulingOnControlPlanes: true

Discovery

cluster.discovery
object
Cluster member discovery configuration.
cluster:
  discovery:
    enabled: true
    registries:
      kubernetes:
        disabled: false
      service:
        disabled: false

Complete Example

version: v1alpha1
kind: Config
cluster:
  id: YYhNzVNMSU0TA==
  secret: cSfCJL1EZAYt==
  clusterName: production-k8s
  controlPlane:
    endpoint: https://api.example.com:6443
    localAPIServerPort: 6443
  network:
    cni:
      name: flannel
    dnsDomain: cluster.local
    podSubnets:
      - 10.244.0.0/16
    serviceSubnets:
      - 10.96.0.0/12
  token: wlzjyw.bei2zfylhs2by0wd
  ca:
    crt: LS0tLS1CRUdJTi...
    key: LS0tLS1CRUdJTi...
  apiServer:
    image: registry.k8s.io/kube-apiserver:v1.28.0
    certSANs:
      - api.example.com
    extraArgs:
      feature-gates: EphemeralContainers=true
  controllerManager:
    image: registry.k8s.io/kube-controller-manager:v1.28.0
  scheduler:
    image: registry.k8s.io/kube-scheduler:v1.28.0
  etcd:
    image: gcr.io/etcd-development/etcd:v3.5.9
    advertisedSubnets:
      - 10.0.0.0/8
  allowSchedulingOnControlPlanes: false

Build docs developers (and LLMs) love