Skip to main content
Skip table of contents

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:

CODE
 dkp create cluster [aws, azure, gcp, preprovisoned, vsphere] \

EXAMPLE:

CODE
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

Registry and Registry Mirrors

OR

Return to installation:

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.