VIDB upgrade from 9.0 to 9.1 fails with platform health check error platform-machines-core
search cancel

VIDB upgrade from 9.0 to 9.1 fails with platform health check error platform-machines-core

book

Article ID: 442656

calendar_today

Updated On:

Products

VMware SDDC Manager / VCF Installer

Issue/Introduction

  • Upgrade of VIDB from version 9.0 to 9.1 fails during the platform health check with the following error:

    Platform-machines-core: 1 of 4 resources are not ok

  • This issue typically occurs after attempting to resolve datastore inconsistencies by running a datastore reclaim script Error: "Source and target systems use different datastores" - Upgrade of VCF Components from 9.0 to 9.1 Blocked by Datastore Mismatch Precheck Failure.
  • The target datastore is part of a datastore cluster, and the datastore information was incorrectly entered in below format:

    /<DatacenterName>/datastore/<DatastoreName>
    .

    The correct path format of a datastore should be:

    /<DatacenterName>/datastore/<DatastoreClusterName>/<DatastoreName>

  • Execution of kubectl get machines -A on the VIDB platform VM indicates a resource deployment state locked in the provisioning.
  • Target virtual machines fail to appear inside the vCenter Server inventory.
  • Below commands display an invalid identity structure containing an incorrect datastore directory path: /<DatacenterName>/datastore/<DatastoreName>

    kubectl describe machine <machine_name>
    kubectl describe vspheremachinetemplate <vspheremachinetemplate_name>

Environment

VMware Cloud Foundation 9.0.x
VMware Cloud Foundation 9.1.0

Cause

The vspheremachinetemplate asset definition contains a malformed datastore path string that prevents the automated initialization of subsequent compute objects.

Resolution

  1. Confirm the presence of a verified, valid backup copy of the core architecture configuration state before executing modification tasks.
  2. Open a secure shell (SSH) session to the VIDB platform management node using root credentials.
  3. Correct the target data value mappings inside the package deployment structure:

    kubectl patch packagedeployment vmsp-platform -n vmsp-platform --type='merge' -p '{"spec":{"values":{"provider":{"vsphere":{"datastore":"NEW_DATASTORE_NAME"}}}}}'

  4. Perform structural repairs on the vspheremachinetemplate
    • Isolate the precise runtime template identifier string:

      kubectl get vspheremachinetemplates -A

    • Extract data structures directly into a local storage file

      kubectl get vspheremachinetemplate <vcf-mgmt-####> -n vmsp-platform -o yaml > machine-temp.yaml

    • Modify the exported text layout file to align the datastore mapping values with the required path declaration syntax.

      /<DatacenterName>/datastore/<DatastoreClusterName>/<DatastoreName>

    • Delete the existing template

      kubectl delete vspheremachinetemplate <vcf-mgmt-####> -n vmsp-platform

    • Recreate vspheremachinetemplate with datastore path updated yaml file

      kubectl apply -f machine-temp.yaml

    • Monitor the VIDB platform control loop as the orchestration engine initializes machine redeployment

      kubectl get machines -A

    • Verify that the spec definitions inside the target cluster deployment records contain the correct datastore path layout by executing the following status trace commands:

      kubectl describe machine <MACHINE_NAME>
      kubectl describe vspheremachinetemplate <VSPHEREMACHINETEMPLATE_NAME>