Cluster API (CAPI) is built on the principles of immutable infrastructure. All nodes that make up a cluster are derived from a common template or machine image.
When CAPI creates a cluster from the machine image, the API expects several things to be pre-configured and installed, including:
kubectlare installed as specified in the workload cluster manifest.
containerd, is installed and running.
kubeadm joinare either present or accessible. If the images are not published and must be pulled locally, as is the case for VMware-signed images, then you must include these required images when building your machine image.
cloud-initis installed and configured to accept bootstrap instructions.
Each CAPI provider requires its own machine image format. The linked guides describe how to build machine images in the following formats:
Cluster API Provider AWS (CAPA)
Cluster API Provider vSphere (CAPV)
Cluster API Provider Azure (CAPZ)
You can include additional software and configurations in your machine image during the build process based on your own custom specifications. Before making any modifications, consult with VMware CRE for best practices and recommendations.
Image Builder is an official upstream Kubernetes project that is dedicated to building machine images. Image Builder uses the following processes to build images: