1. Introduction
  2. Quick Start
  3. Quick Start Operator
  4. Concepts
  5. Manifesto
  6. Personas
  7. 1. Tasks
    1. 1.1. Certificate Management
      1. 1.1.1. Using Custom Certificates
      2. 1.1.2. Generating a Kubeconfig
      3. 1.1.3. Auto Rotate Certificates in KCP
    2. 1.2. Bootstrap
      1. 1.2.1. Kubeadm based bootstrap
        1. 1.2.1.1. Kubelet configuration
      2. 1.2.2. MicroK8s based bootstrap
    3. 1.3. Upgrading management and workload clusters
    4. 1.4. External etcd
    5. 1.5. Using kustomize
    6. 1.6. Upgrading Cluster API components
    7. 1.7. Control plane management
      1. 1.7.1. Kubeadm based control plane management
      2. 1.7.2. MicroK8s based control plane management
    8. 1.8. Updating Machine Infrastructure and Bootstrap Templates
    9. 1.9. Workload bootstrap using GitOps
    10. 1.10. Automated Machine management
      1. 1.10.1. Scaling
      2. 1.10.2. Autoscaling
      3. 1.10.3. Healthchecking
    11. 1.11. Experimental Features
      1. 1.11.1. MachinePools
      2. 1.11.2. MachineSetPreflightChecks
      3. 1.11.3. ClusterResourceSet
      4. 1.11.4. ClusterClass
        1. 1.11.4.1. Writing a ClusterClass
        2. 1.11.4.2. Changing a ClusterClass
        3. 1.11.4.3. Operating a managed Cluster
      5. 1.11.5. Runtime SDK
        1. 1.11.5.1. Implementing Runtime Extensions
        2. 1.11.5.2. Implementing Lifecycle Hook Extensions
        3. 1.11.5.3. Implementing Topology Mutation Hook Extensions
        4. 1.11.5.4. Deploying Runtime Extensions
      6. 1.11.6. Ignition Bootstrap configuration
    12. 1.12. Running multiple providers
    13. 1.13. Verification of Container Images
    14. 1.14. Diagnostics
  8. 2. Security Guidelines
    1. 2.1. Pod Security Standards
  9. 3. clusterctl CLI
    1. 3.1. clusterctl Commands
      1. 3.1.1. init
      2. 3.1.2. generate cluster
      3. 3.1.3. generate provider
      4. 3.1.4. generate yaml
      5. 3.1.5. get kubeconfig
      6. 3.1.6. describe cluster
      7. 3.1.7. move
      8. 3.1.8. upgrade
      9. 3.1.9. delete
      10. 3.1.10. completion
      11. 3.1.11. alpha rollout
      12. 3.1.12. alpha topology plan
      13. 3.1.13. additional commands
    2. 3.2. clusterctl Configuration
    3. 3.3. clusterctl Provider Contract
    4. 3.4. clusterctl for Developers
    5. 3.5. clusterctl Extensions with Plugins
  10. 4. Developer Guide
    1. 4.1. Repository Layout
    2. 4.2. Rapid iterative development with Tilt
    3. 4.3. Logging
    4. 4.4. Testing
    5. 4.5. Developing E2E tests
    6. 4.6. Controllers
      1. 4.6.1. Bootstrap
      2. 4.6.2. Cluster
      3. 4.6.3. Machine
      4. 4.6.4. MachineSet
      5. 4.6.5. MachineDeployment
      6. 4.6.6. MachineHealthCheck
      7. 4.6.7. Control Plane
      8. 4.6.8. MachinePool
      9. 4.6.9. ClusterTopology
      10. 4.6.10. ClusterResourceSet
      11. 4.6.11. Metadata propagation
      12. 4.6.12. Multi-tenancy
      13. 4.6.13. Support multiple instances
      14. 4.6.14. Tuning controllers
    7. 4.7. Provider Implementers
      1. 4.7.1. Version migration
        1. 4.7.1.1. v0.3 to v0.4
        2. 4.7.1.2. v0.4 to v1.0
        3. 4.7.1.3. v1.0 to v1.1
        4. 4.7.1.4. v1.1 to v1.2
        5. 4.7.1.5. v1.2 to v1.3
        6. 4.7.1.6. v1.3 to v1.4
        7. 4.7.1.7. v1.4 to v1.5
        8. 4.7.1.8. v1.5 to v1.6
        9. 4.7.1.9. v1.6 to v1.7
      2. 4.7.2. Provider contracts
        1. 4.7.2.1. Cluster Infrastructure
        2. 4.7.2.2. Machine Infrastructure
        3. 4.7.2.3. Bootstrap
      3. 4.7.3. Implementer's Guide
        1. 4.7.3.1. Naming
        2. 4.7.3.2. Configure
        3. 4.7.3.3. Create Repo and Generate CRDs
        4. 4.7.3.4. Create API
        5. 4.7.3.5. Webhooks
        6. 4.7.3.6. Controllers and Reconciliation
        7. 4.7.3.7. Building, Running, Testing
    8. 4.8. CustomResourceDefinitions relationships
  11. 5. Troubleshooting
  12. 6. Reference
    1. 6.1. API Reference
    2. 6.2. Glossary
    3. 6.3. Provider List
    4. 6.4. Ports
    5. 6.5. Code of Conduct
    6. 6.6. Contributing
    7. 6.7. Jobs
    8. 6.8. Code Review in Cluster API
    9. 6.9. Version Support
    10. 6.10. Supported Labels and Annotations
    11. 6.11. Owner References

The Cluster API Book

Provider Implementations

The code in this repository is independent of any specific deployment environment. Provider specific code is being developed in separate repositories, some of which are also sponsored by SIG Cluster Lifecycle. Check provider’s documentation for updated info about which API version they are supporting.

Bootstrap

  • Amazon Elastic Kubernetes Service (EKS)
  • Kubeadm
  • MicroK8s
  • Oracle Cloud Native Environment (OCNE)
  • Talos
  • K3s
  • k0smotron/k0s

Control Plane

  • Kubeadm
  • MicroK8s
  • Nested
  • Oracle Cloud Native Environment (OCNE)
  • Talos
  • Kamaji
  • K3s
  • k0smotron/k0s

Infrastructure

  • Akamai (Linode)
  • AWS
  • Azure
  • Azure Stack HCI
  • Bring Your Own Host (BYOH)
  • CloudStack
  • CoxEdge
  • DigitalOcean
  • Equinix Metal (formerly Packet)
  • Google Cloud Platform (GCP)
  • Hetzner
  • Hivelocity
  • IBM Cloud
  • IONOS Cloud
  • KubeKey
  • KubeVirt
  • MAAS
  • Metal3
  • Microvm
  • Nested
  • Nutanix
  • Oracle Cloud Infrastructure (OCI)
  • OpenStack
  • Outscale
  • Proxmox
  • Sidero
  • Tinkerbell
  • vcluster
  • Virtink
  • VMware Cloud Director
  • vSphere
  • k0smotron RemoteMachine (SSH)

IP Address Management (IPAM)

  • In Cluster

Addon

  • Helm

API Adopters

Following are the implementations managed by third-parties adopting the standard cluster-api and/or machine-api being developed here.

  • Gardener Machine controller manager
  • Kubermatic machine controller
  • OpenShift Machine API Operator