TKC Missing for Cluster Created Using v1beta1 Cluster API
search cancel

TKC Missing for Cluster Created Using v1beta1 Cluster API

book

Article ID: 397045

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

A workload cluster created using the cluster.x-k8s.io/v1beta1 API does not appear in the output of kubectl get tkc -A. This leads to confusion for users expecting a TanzuKubernetesCluster (TKC) object to be present for all workload clusters.

Environment

VMware vSphere with Tanzu

Cause

Clusters created using the v1beta1 Cluster API do not generate a TanzuKubernetesCluster (TKC) object. TKC is a legacy resource type used by TKGs in earlier API versions (v1alpha3). The v1beta1 API uses upstream Cluster resources from Cluster API and does not include TKC as part of its architecture.

Summary:

  • The cluster.x-k8s.io/v1beta1 API is part of the upstream Cluster API specification.
  • In TKGs, this newer API is now used under the hood when provisioning clusters based on ClusterClass.
  • When provisioning this way (using CAPI Cluster objects directly), you will not see a corresponding TanzuKubernetesCluster (TKC) resource.
  • This is expected behavior and by design: TKC is VMware’s custom API (run.tanzu.vmware.com/v1alpha3) that wraps the Cluster API. It’s used when provisioning through the Supervisor UI or via YAML that explicitly defines a TKC.
  • In contrast, clusters created directly as Cluster objects (v1beta1) bypass the TKC layer and will not show up when running kubectl get tkc.
  • Starting with TKG Service 3.2 release, the TanzuKubernetesCluster API is deprecated. To provision new clusters, use Cluster v1beta1 API. See Using the Cluster v1beta1 API."
  • Deprecation of TanzuKubernetesCluster API was announced in vSphere Kubernetes Service release 3.2. The API will be removed no sooner than June 2025. Customers are encouraged to use the cluster-api to bootstrap, configure and manage the lifecycle of the Kubernetes clusters. This release provides a means to retire the TKC API and continue managing existing TKG service clusters using the cluster-api’s Cluster API.

Resolution

This is expected behavior. To view clusters created via the v1beta1 API, use the following command:

kubectl get clusters -A

This will list all workload clusters, including those not represented as TKC.

 

 

Additional Information