TKG Service provides two APIs and supporting clients for provisioning TKG clusters and managing their lifecycle.

TKG Cluster Provisioning

The diagram depicts the workflow for provisioning TKG clusters on Supervisor.
Figure 1. TKG Cluster Provisioning on Supervisor
TKG Cluster Provisioning on Supervisor

TKG Cluster Types

There are two types of Kubernetes workload clusters that can be provisioned on the vSphere IaaS control plane infrastructure where Supervisor operates as the management cluster and hosts the Kubernetes Cluster API (CAPI). Each type is based on the ClusterClass. Refer to the TKR Release Notes for supported versions. See also Using Kubernetes Releases with TKG Service Clusters.
Note: Starting with TKG Service 3.2 release, the TanzuKubernetesCluster API will be marked as deprecated. To provision new TKG clusters, use Cluster v1beta1 API. See Using the Cluster v1beta1 API.
TanzuKubernetesCluster with CAPI Cluster referring to default ClusterClass named tanzukubernetescluster
Cluster signature:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster

This type of workload cluster is a TKG Cluster built using the Cluster API (CAPI) that refers to a default ClusterClass named tanzukubernetescluster. The cluster type is TanzuKubernetesCluster and the provisioning API is v1alpha3. Because this is an abstraction on top of a CAPI cluster, the reference to the backend cluster class is not specified in the cluster manifest. The reference is handled by the system.

With this type of workload cluster, the TanzuKubernetesCluster object is front line and serves as an abstraction layer. There is no change in workflow for provisioning this type of cluster from provisioning a TKGS cluster on vSphere IaaS control plane version 7.

CAPI Cluster referring to default ClusterClass named tanzukubernetescluster
Cluster signature:
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
This type of workload cluster is a pure CAPI Cluster built using the Cluster API that refers to a default ClusterClass named tanzukubernetescluster. The cluster type is Cluster and the provisioning API is v1beta1.
With this type of workload cluster, the CAPI cluster API is the front line; there is no TKC abstraction layer. The system provides a controller for handling the infrastructure, so you do not need to create ClusterClass related objects. Variables are exposed so you can customize the cluster. The fields in the Cluster specification are different from the fields in the TKC specification, but the provisioning workflow is the same.

TKG Cluster Provisioning APIs

TKG on vSphere 8 Supervisor provides two APIs for managing the lifecycle of TKG clusters: v1alpha3 and v1beta1. Both APIs are declarative in nature, similar to the Kubernetes API. With declarative cluster provisioning, you specify the desired state of the TKG cluster: number of nodes, available storage, VM sizes, Kubernetes software version. TKG does the work to provision and maintain a cluster that matches the declared state.

If you are upgrading an existing TKG cluster to TKG on vSphere 8 Supervisor, that cluster must be using the v1alpha2 API before you begin the upgrade process. Refer to the upgrade documentation for complete details: Updating TKG Service Clusters.
API Kind vCenter version Description
v1beta1 Cluster vCenter 8+ New API for managing the lifecycle of a Cluster based on a Cluster Class.
v1alpha3 TanzuKubernetesCluster vCenter 8+ Continuation of the v1alpha2 API. All features supported by the API v1alpha2 are supported by the v1alpha3 API. New features added.
v1alpha2 TanzuKubernetesCluster vCenter 7 U3 Legacy API for provisioning Tanzu Kubernetes clusters on vCenter 7 U3 Supervisor, and for upgrading clusters to vCenter 8 Supervisor. On upgrade to, or provisioning on, vSphere 8, the v1alpha2 API is auto-converted to the v1alpha3 API.
v1alpha1 TanzuKubernetesCluster vCenter 7 U1, U2 Deprecated API for provisioning Tanzu Kubernetes clusters on the first generation of vCenter 7 Supervisor.

TKG Cluster Provisioning Clients

TKG on vSphere 8 Supervisor supports various client workflows for provisioning TKG clusters: