Introduction
Quick Start
Quick Start Operator
Concepts
Manifesto
1.
Tasks
1.1.
Certificate Management
1.1.1.
Using Custom Certificates
1.1.2.
Generating a Kubeconfig
1.1.3.
Auto Rotate Certificates in KCP
1.2.
Bootstrap
1.2.1.
Kubeadm based bootstrap
1.2.1.1.
Kubelet configuration
1.2.2.
MicroK8s based bootstrap
1.3.
Upgrading management and workload clusters
1.4.
External etcd
1.5.
Using kustomize
1.6.
Upgrading Cluster API components
1.7.
Control plane management
1.7.1.
Kubeadm based control plane management
1.7.2.
MicroK8s based control plane management
1.8.
Updating Machine Infrastructure and Bootstrap Templates
1.9.
Workload bootstrap using GitOps
1.10.
Automated Machine management
1.10.1.
Scaling
1.10.2.
Autoscaling
1.10.3.
Healthchecking
1.10.4.
Machine deletion process
1.11.
Experimental Features
1.11.1.
MachinePools
1.11.2.
MachineSetPreflightChecks
1.11.3.
ClusterResourceSet
1.11.4.
ClusterClass
1.11.4.1.
Writing a ClusterClass
1.11.4.2.
Changing a ClusterClass
1.11.4.3.
Operating a managed Cluster
1.11.5.
Runtime SDK
1.11.5.1.
Implementing Runtime Extensions
1.11.5.2.
Implementing Lifecycle Hook Extensions
1.11.5.3.
Implementing Topology Mutation Hook Extensions
1.11.5.4.
Deploying Runtime Extensions
1.11.6.
Ignition Bootstrap configuration
1.12.
Running multiple providers
1.13.
Verification of Container Images
1.14.
Diagnostics
2.
Security Guidelines
2.1.
Pod Security Standards
3.
clusterctl CLI
3.1.
clusterctl Commands
3.1.1.
init
3.1.2.
generate cluster
3.1.3.
generate provider
3.1.4.
generate yaml
3.1.5.
get kubeconfig
3.1.6.
describe cluster
3.1.7.
move
3.1.8.
upgrade
3.1.9.
delete
3.1.10.
completion
3.1.11.
alpha rollout
3.1.12.
alpha topology plan
3.1.13.
additional commands
3.2.
clusterctl Configuration
3.3.
clusterctl for Developers
3.4.
clusterctl Extensions with Plugins
4.
Developer Guide
4.1.
Developing "core" Cluster API
4.1.1.
Rapid iterative development with Tilt
4.1.2.
Repository Layout
4.1.3.
Controllers
4.1.3.1.
Cluster
4.1.3.2.
ClusterTopology
4.1.3.3.
ClusterResourceSet
4.1.3.4.
MachineDeployment
4.1.3.5.
MachineSet
4.1.3.6.
Machine
4.1.3.7.
MachinePool
4.1.3.8.
MachineHealthCheck
4.1.4.
Logging
4.1.5.
Testing
4.1.6.
Developing E2E tests
4.1.7.
Tuning controllers
4.1.8.
Support multiple instances
4.2.
Developing providers
4.2.1.
Getting started
4.2.1.1.
Naming
4.2.1.2.
Initialize Repo and API types
4.2.1.3.
Implement API types
4.2.1.4.
Webhooks
4.2.1.5.
Controllers and Reconciliation
4.2.1.6.
Configure the provider manifest
4.2.1.7.
Building, Running, Testing
4.2.2.
Provider contracts
4.2.2.1.
InfraCluster
4.2.2.2.
InfraMachine
4.2.2.3.
BootstrapConfig
4.2.2.4.
ControlPlane
4.2.2.5.
clusterctl
4.2.3.
Best practices
4.2.4.
Security guidelines
4.2.5.
Version migration
4.2.5.1.
v1.6 to v1.7
4.2.5.2.
v1.7 to v1.8
4.2.5.3.
v1.8 to v1.9
5.
Troubleshooting
6.
Reference
6.1.
API Reference
6.1.1.
Labels and Annotations
6.1.2.
CRD relationships
6.1.3.
Metadata propagation
6.1.4.
Owner References
6.2.
Glossary
6.3.
Provider List
6.4.
Ports
6.5.
Code of Conduct
6.6.
Contributing
6.7.
Code Review in Cluster API
6.8.
Version Support
Light (default)
Rust
Coal
Navy
Ayu
The Cluster API Book
Developing Cluster API providers
This section of the book is about developing Cluster API providers.