Customizing CAPI Components for a Cluster
Bootstrap Cluster
Konvoy creates a bootstrap cluster using KIND as a library and deploys Cluster API providers on the cluster:
Customizing CAPI Clusters
Familiarize yourself with Cluster API before editing the cluster objects because edits can prevent the cluster from deploying successfully. This result of this command will allow such edits.
Use the appropriate infrastructure provider name in the first line of dkp create cluster
command from the choices listed:
dkp create cluster [aws, azure, gcp, preprovisoned, vsphere] \
EXAMPLE:
dkp create cluster aws
--cluster-name=${CLUSTER_NAME} \
--dry-run \
--output=yaml \
> ${CLUSTER_NAME}.yaml
The “>” shows the output from the command saves to the file named ${CLUSTER_NAME}.yaml. To edit that YAML, you need to understand the CAPI components to avoid failure of the cluster deployment. The objects are Custom Resources defined by Cluster API components, and they belong in three different categories:
Cluster
A Cluster object has references to the infrastructure-specific and control plane objects. Because this is an AWS cluster, there is an AWSCluster object that describes the infrastructure-specific cluster properties. Here, this means the AWS region, the VPC ID, subnet IDs, and security group rules required by the Pod network implementation.
Control Plane
A KubeadmControlPlane object describes the control plane, which is the group of machines that run the Kubernetes control plane components. Those include the
etcd
distributed database, the API server, the core controllers, and the scheduler. The object describes the configuration for these components and has a reference to an infrastructure-specific object that describes the properties of all control plane machines. For AWS, the object references an AWSMachineTemplate object, which describes the instance type, the type of disk used, and the size of the disk, among other properties.Node Pool
A Node Pool is a collection of machines with identical properties. For example, a cluster might have one Node Pool with large memory capacity and another Node Pool with GPU support. Each Node Pool is described by three objects: The MachinePool references an object that describes the configuration of Kubernetes components (for example, kubelet) deployed on each node pool machine, and an infrastructure-specific object that describes the properties of all node pool machines. For AWS, it references a KubeadmConfigTemplate, and an AWSMachineTemplate object, which describes the instance type, the type of disk used, the size of the disk, among other properties.
For in-depth documentation about the objects, read Concepts in the Cluster API Book.
Next Topic
OR
Return to installation:
If using the Day 1 - Basic Installs by Infrastructure instructions, proceed (or return) to that section to install and setup DKP based on your infrastructure environment provider.
If using the Custom Installation and Additional Infrastructure Tools instructions, proceed (or return) to that section and select the infrastructure provider you are using.