Unable to Deploy VKS Cluster or missing VKS worker nodes in vSphere DRS disabled cluster
search cancel

Unable to Deploy VKS Cluster or missing VKS worker nodes in vSphere DRS disabled cluster

book

Article ID: 389359

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service Tanzu Kubernetes Runtime

Issue/Introduction

Unable to create a VKS cluster.

All VKS worker nodes have disappeared from the vCenter UI and are unable to view the worker node status from SSH of the Supervisor and VKS.

 

While connected to the Supervisor cluster context, the following symptoms are observed:

  • The VKS cluster is created:
    kubectl get cluster -n <namespace>

     

  • However, the machines are stuck in Pending or Provisioning:
    kubectl get machines -n <namespace>

 

When viewing Tasks and Events in vCenter, the following symptoms are observed:

  • Deploy OVF package from Content Library for Resource Pool fails continuously with:
    Failed to deploy OVF package


  • The namespace for the VKS cluster shows the following Event error, where <cluster name> is the name of the vSphere cluster:
    Target datastore must be specified in order to deploy the OVF template to the vSphere DRS disabled cluster <cluster name>


In vCenter, the content library logs /var/log/vmware/content-library/cls.log shows DRS related error messages as below,


2026-05-20T12:34:43.824+02:00 | DEBUG    | vmoperator-demo2-cluster-sxb6r-hmq9d-createOrUpdateVM-7b811726-89 | cls-simple-activity-9     | VdcsFutureResultCallback       | setting the future with value Depl
oymentResult (com.vmware.vcenter.ovf.library_item.deployment_result) => {
    succeeded = false,
    resourceId = <null>,
    error = ResultInfo (com.vmware.vcenter.ovf.library_item.result_info) => {
        errors = [OvfError (com.vmware.vcenter.ovf.ovf_error) => {
    category = SERVER,
    issues = <null>,
    name = <null>,
    value = <null>,
    message = <null>,
    error = InvalidArgument (com.vmware.vapi.std.errors.invalid_argument) => {
        messages = [LocalizableMessage (com.vmware.vapi.std.localizable_message) => {
    id = com.vmware.ovfs.ovfs-main.ovfs.require_target_datastore_for_drs_disabled_cluster,
    defaultMessage = Target datastore must be specified in order to deploy the OVF template to the vSphere DRS disabled cluster Cluster1.,
    args = [Cluster1],
    params = <null>,
    localized = <null>
}],
        data = <null>,
        errorType = INVALID_ARGUMENT
    }



From the supervisor in the vmop controller logs kubectl logs -n vmware-system-vmop -vmop-controller-manager-<pod id>  where the image will vary based on the VKR, OS version and values in brackets <> will vary by environment:

YYYY-MM-DDTHH:MM:SSZ stderr F E0201      1 controller.go:317] controller/virtualmachine "msg"="Reconciler error" "error"="deploy from content library failed for image \"ob-####-tkgs-ova-photon-3-v####\": deploy error: Target datastore must be specified in order to deploy the OVF template to the vSphere DRS disabled cluster <cluster name>." "name"="worker-nodepool-####" "namespace"="<namespace>" "reconciler group"="vmoperator.vmware.com" "reconciler kind"="VirtualMachine"

YYYY-MM-DDTHH:MM:SSZ  stderr F E0201     1 virtualmachine_controller.go:748] VirtualMachine "msg"="Provider failed to create VirtualMachine" "error"="deploy from content library failed for image \"ob-####-tkgs-ova-photon-3-v####\": deploy error: Target datastore must be specified in order to deploy the OVF template to the vSphere DRS disabled cluster <cluster name>." "name"="<namespace>/worker-nodepool-####"

YYYY-MM-DDTHH:MM:SSZ  stderr F E0201     1 virtualmachine_controller.go:263] VirtualMachine "msg"="Failed to reconcile VirtualMachine" "error"="deploy from content library failed for image \"ob-####-tkgs-ova-photon-3-v####\": deploy error: Target datastore must be specified in order to deploy the OVF template to the vSphere DRS disabled cluster <cluster name>." "name"="<namespace>/worker-nodepool-####"

 

Environment

vSphere Supervisor

vSphere Kubernetes Service

Cause

Fully automated DRS is a pre-requisite for vSphere clusters in vSphere Supervisor environments.

vSphere DRS mode set to manual, partially automated, or disabled will cause this situation.

Resolution

Enable DRS on the vSphere cluster and set it to Fully Automated mode.

Following this change, all clusters, machines and nodes and pods will gradually transition to a ready state.

Additional Information

vSphere DRS must be set to Fully Automated Mode as a pre-requisite for vSphere Supervisor environments.

Storage DRS is not supported in vSphere Supervisor environments.