ClusterClass in the Kubernetes Cluster API project allows you to define the shape of your clusters. You can determine the shape of the cluster only once, and use them multiple times. The ClusterClass consists of collection of templates that define the topology and configuration of a Kubernetes cluster. The templates can be used to create new clusters, or to update existing clusters.
ClusterClass helps you simplifying the process of creating and managing multiple Kubernetes clusters, and to make your clusters more consistent and reliable.
The ClusterClass CRD contains the following components:
VSphereMachineTemplate
used when creating the machines for the cluster’s control plane, and the KubeadmControlPlaneTemplate
containing the KubeadmConfigSpec
for initializing the control plane machines.VSphereMachineTemplate
used when creating the machines for the cluster’s worker machines and the KubeadmConfigTemplate
containing the KubeadmConfigSpec
for initializing and joining the worker machines to the control plane.VSphereClusterTemplate
that contains the vCenter details(vCenter Server endpoint, SSL thumbprint etc) used when creating the cluster.Variables: A list of variable definitions, where each variable is defined using the OpenAPI Schema definition.
Patches: A list of patches, used to change the above mentioned templates for each specific cluster. Varibale definitions defined in the Variables section can also be used in the patches section.
Cluster CRD is used to create and manage the cluster’s configuration and state, and delete Kubernetes clusters. For example, you can use the cluster object to update the Kubernetes version, the network configuration, or the number of nodes in the cluster.
The configuration of cluster topology contains the following options:
Private Image Repo Configuration