ClusterClass builtin-generic-v3.4.0 only exists in vmware-system-vks-public namespace in VKS 3.4
search cancel

ClusterClass builtin-generic-v3.4.0 only exists in vmware-system-vks-public namespace in VKS 3.4

book

Article ID: 416281

calendar_today

Updated On:

Products

Tanzu Kubernetes Runtime

Issue/Introduction

  • After upgrading to vSphere Kubernetes Service (VKS) 3.4, it is noticed that the builtin-generic-v3.4.0 ClusterClass is not automatically replicated to all namespaces. Instead, it is found exclusively in the vmware-system-vks-public namespace.

  • The clusterclass object builtin-generic-v3.3 and below is seen in all the namespaces.

kubectl get clusterclass -A | grep builtin-generic-v3

NAMESPACE                                   NAME                     AGE

default                                     builtin-generic-v3.1.0   80d
default                                     builtin-generic-v3.2.0   80d
default                                     builtin-generic-v3.3.0   80d
kube-node-lease                             builtin-generic-v3.1.0   80d
kube-node-lease                             builtin-generic-v3.2.0   80d
kube-node-lease                             builtin-generic-v3.3.0   80d
kube-public                                 builtin-generic-v3.1.0   80d
kube-public                                 builtin-generic-v3.2.0   80d
kube-public                                 builtin-generic-v3.3.0   80d

...

vmware-system-vmop                          builtin-generic-v3.1.0   80d
vmware-system-vmop                          builtin-generic-v3.2.0   80d
vmware-system-vmop                          builtin-generic-v3.3.0   80d

  • The clusterclass object builtin-generic-v3.4.0 is seen only in the namespace vmware-system-vks-public as shown below.

kubectl get clusterclass -A | grep builtin-generic-v3.4

NAMESPACE                                   NAME                     AGE

vmware-system-vks-public                    builtin-generic-v3.4.0   14d

Environment

  • VMware Kubernetes Service

Resolution

This behavior is expected and is a design change introduced in VKS 3.4 to improve efficiency and simplify management. The builtin-generic-v3.4.0 ClusterClass is stored centrally in the vmware-system-vks-public namespace, from which all other namespaces can reference it.

The following key features are part of this new design:
    • Efficient ClusterClass Sharing: By centrally hosting the builtin-generic-v3.4.0 ClusterClass, VKS 3.4 eliminates the need to replicate the definition in every namespace. This reduces resource usage and simplifies the management of standard ClusterClass definitions.
    • No Impact on Existing Clusters: This change does not require any modifications to existing VKS clusters. Clusters created with previous versions of ClusterClass will continue to function normally.
    • Centralized Reference: New VKS clusters that use the builtin-generic-v3.4.0 ClusterClass will automatically reference the definition from the vmware-system-vks-public namespace. The spec.topology.classNamespace field on the Cluster object is set to vmware-system-vks-public.
    • Backward Compatibility: To ensure compatibility, older ClusterClass versions, such as builtin-generic-v3.3.0 and below, will continue to be available in their respective namespaces.

Additional Information

Refer to VMware vSphere Kubernetes Service 3.4.0+v1.33 release notes for more details.