Day 2 action failures:
The VM template could not be foundThe template was not found at the expected pathCloning the virtual machine failedUnable to clone from templateSource virtual machine or template not found
vCenter Events:
The VCF Management Service Platform (VMSP) utilizes vcf-services-runtime-template-<version>.<ob-number> VM template in vCenter to provision both control plane and worker nodes.
If the VM template is deleted, moved, or corrupted, any downstream provisioning task requiring a new node creation—such as scale-up operation will fail until the template is restored.
Impact:
This triggers a fresh synchronization of the component from the repository to the vCenter environment.
Overwriting the corrupted or existing template is NOT supported by the Staging API. So, if a template with the same name already exists in vCenter, you must delete or move it before running the Stage API.
VMs and Templates':'vcf-services-runtime-template-<version>.<ob-number>'Obtain an authentication token using the Platform FQDN:
curl --request POST \--url https://<platform-fqdn>/api/v1/identity/token \--header 'Content-Type: application/x-www-form-urlencoded' \--data grant_type=password \--data [email protected] \--data password=<psswd>
Note:
The depot manifest is a YAML file that defines the VMSP platform package (including the VM template). It must be hosted on an accessible HTTP(S) repository (URL typically provided via the customer's release process) so the cluster can retrieve configuration data during its lifecycle operations.
The depot manifest URL typically follows a standardized naming convention:
<base-url>/<path>/depot-manifest-vmsp-platform-<version>.<ob-number>.yaml
Example:
https://<fleet-fqdn>/depot-service/content-gateway/PROD/COMP/vmsp-platform/depot-manifest-vmsp-platform-9.1.0.0.25234230.yaml
curl -ks -X POST "https://<platform-fqdn>/api/v1/components?action=stage" \--header "Authorization: Bearer <token>" \--header "Content-Type: application/json" \-d '{"repository":{"url":"<depot-manifest-url>"}}'
The Stage API will return a Task ID. Monitor the task until the status reaches SUCCEEDED.
curl -ks --request GET \ --url "https://<platform-fqdn>/api/v1/tasks/<task-id>" \ --header "Authorization: Bearer <token>"
When the task status returns "Failed", follow these steps to identify the cause and resolve the issue.
1. Check for Precheck failures (validation errors)
precheckGroups is non-empty, drill down into the prechecks array to find the entry where "status": "FAILED".issue.message.default (or localized) for a high-level description (e.g., URL not found).issue.message.args for specific variables (e.g., the exact URL or HTTP error code).resolution.default (or localized) for the specific recommended action.2. Check for Workflow Stage Failures
"status": "FAILED".name and description fields to determine exactly where the process halted (e.g., "VCF Component Stage Initialization").3. Resolution
If the failure persists, contact Broadcom support and provide the below data:
precheckGroups or stages objects.message and resolution text.Once the task is complete, perform a final validation:
vSphere Client.VMs and Templates inventory view.vcf-services-runtime-template-<version>.<ob-number>).present, registered, and does not show a status of (orphaned) or (inaccessible).After the template has been restored in vCenter, the new MoID may need to be updated in the PackageDeployment (PD).
1.Get component ID
curl --request GET \--url https://<platform-fqdn>/api/v1/components \--header "Authorization: Bearer <token>" \| jq -r '.components[] | select(.name == "vsp" or .name == "vmsp-platform") | .id'
2. Get current configuration
curl --request GET \--url https://<platform-fqdn>/api/v1/components/<component-id> \--header "Authorization: Bearer <token>" \| jq '.spec.configuration.infrastructure.vsphere.templateId'
e.g. "VirtualMachine:vm-55"
3.Check if the template MoID is in sync
4.If needed, apply the template MoID with the Configure API
curl --request POST \ --url https://<platform-fqdn>/api/v1/components/<component-id>?action=apply' \ --header "Authorization: Bearer <token>" \ --header 'Content-Type: application/json' \ --data '{ "spec": { "configuration": { "infrastructure": { "vsphere": { "templateId": "VirtualMachine:<moid>" } } } }}'