Upgrades APIs
APIs for managing Upgrades
Table of Contents
1. Perform Upgrade
Perform Upgrade API is used to perform upgrades. Upgrades are sequential. So in order to upgrade to a release, your environment must be on the version before that release. Upgrades are applied on a workload domain basis. The management domain contains the core infrastructure, so you must upgrade the management domain before upgrading the other workload domains. You must upgrade all required components to keep your system in an optimum state.
Note : Performing upgrades is supported on VMware Cloud Foundation 3.5 BOM resources and above.
1.1. Steps to Perform Upgrade.
Download the required bundle.
Online bundle download - Follow the VMware cloud Foundation online bundle download guide to download bundles in environment.
Execute Get Depot Settings API to retrieve the existing My VMware Account information.
Execute Update Depot Settings API to update the existing My VMware Account information.
Execute Update Bundle for Downloading API to Download Bundles from VMware depot account.
Offline bundle download - Use the Bundle Transfer Utility tool. Please refer https://docs.vmware.com/en/VMware-Cloud-Foundation/4.0/vcf-40-lifecycle/GUID-8FA44ACE-8F04-47DA-845E-E0863094F7B0.html. to manually download the bundles from the depot on your local computer and then copy them to SDDC Manager.
- Execute Upload a Bundle API to upload it to SDDC Manager.
Execute Get the Upgradables API to retrieve the list of upgradables (bundle and resource detail) in the system.
Execute Prechecks API to perform required system level health checks.
Perform upgrade and monitor the upgrade progress.
2. Domain Upgrade
Note : When this api is used to trigger cluster upgrades across domains in a single api call, all the specified clusters will not be upgraded in parallel. To upgrade all clusters in parallel, make individual api calls for each domain.
2.1. Prerequisites
The following data is required:
Bundle ID.
Resource Type. Ex: DOMAIN.
One or more Resource upgrade specifications.
Each Resource upgrade specification should contain.
Resource ID. Ex: Domain ID.
Upgrade scheduled time or Upgrade now option.
The following data is optional:
A boolean for parallel ESXi upgrade (default is 'true')
A boolean for quickboot run for ESXi upgrade (default is 'false')
Tip : Refer to: UpgradeSpec and ResourceUpgradeSpec.
2.2. Steps
- Invoke the API. This API returns a task which can be polled and monitored.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "DOMAIN",
"parallelUpgrade" : true,
"resourceUpgradeSpecs" : [ {
"resourceId" : "511f9891-83ed-4461-9e88-852b70252995",
"scheduledTimestamp" : "2022-09-28T07:27:17.987Z",
"upgradeNow" : false,
"enableQuickboot" : true
} ]
}'
HTTP Request
POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 321
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "DOMAIN",
"parallelUpgrade" : true,
"resourceUpgradeSpecs" : [ {
"resourceId" : "511f9891-83ed-4461-9e88-852b70252995",
"scheduledTimestamp" : "2022-09-28T07:27:17.987Z",
"upgradeNow" : false,
"enableQuickboot" : true
} ]
}
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/986799e4-5ed8-4c72-adc0-3ad9d85d7b54
Content-Length: 478
{
"id" : "986799e4-5ed8-4c72-adc0-3ad9d85d7b54",
"name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - PSC:6.7.0-13010631 VCENTER:6.7.0-13010631",
"type" : "UPGRADE",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:17.987Z",
"resources" : [ {
"resourceId" : "511f9891-83ed-4461-9e88-852b70252995",
"type" : "DOMAIN"
}, {
"resourceId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"type" : "BUNDLE"
} ],
"isCancellable" : false
}
- Poll the status of the task using the task API with the ID from the response of the previous API.
Tip : Refer to: Get a Task.
3. Cluster Upgrade
Note : For Cluster level upgrades, the Cluster ID's can be retrieved based on the Host's that are available for upgrade, Refer to: Get the Hosts and Get the Clusters API's.
3.1. Prerequisites
The following data is required:
Bundle ID.
Resource Type. Ex: CLUSTER.
One or more Resource upgrade specifications.
Each Resource upgrade specification should contain.
Resource ID. Ex: Cluster ID.
Upgrade scheduled time or Upgrade now option.
The following data is optional:
A boolean for parallel ESXi upgrade (default is 'true')
A boolean for quickboot run for ESXi upgrade (default is 'false')
Tip : Refer to: UpgradeSpec and ResourceUpgradeSpec.
3.2. Steps
- Invoke the API. This API returns a task which can be polled and monitored.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "CLUSTER",
"parallelUpgrade" : true,
"resourceUpgradeSpecs" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"scheduledTimestamp" : "2022-09-28T08:27:21.704Z",
"upgradeNow" : false,
"enableQuickboot" : true
} ]
}'
HTTP Request
POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 322
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "CLUSTER",
"parallelUpgrade" : true,
"resourceUpgradeSpecs" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"scheduledTimestamp" : "2022-09-28T08:27:21.704Z",
"upgradeNow" : false,
"enableQuickboot" : true
} ]
}
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/986799e4-5ed8-4c72-adc0-3ad9d85d7b54
Content-Length: 456
{
"id" : "986799e4-5ed8-4c72-adc0-3ad9d85d7b54",
"name" : "Upgrade DOMAIN - [acme-domain] using BUNDLE - HOST:6.7.0-13006603",
"type" : "UPGRADE",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:21.704Z",
"resources" : [ {
"resourceId" : "511f9891-83ed-4461-9e88-852b70252995",
"type" : "DOMAIN"
}, {
"resourceId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"type" : "BUNDLE"
} ],
"isCancellable" : false
}
- Poll the status of the task using the task API with the ID from the response of the previous API.
Tip : Refer to: Get a Task.
4. vLCM Cluster Upgrade
Note : For vLCM Cluster level upgrades, the Cluster ID's can be retrieved based on the Host's that are available for upgrade, Refer to: Get the Hosts and Get the Clusters API's.
4.1. Prerequisites
The following data is required:
Bundle ID.
Resource Type. Ex: CLUSTER.
Optional Draft Mode.
One or more Resource upgrade specifications.
Each Resource upgrade specification should contain.
Resource ID. Ex: Cluster ID.
Upgrade scheduled time or Upgrade now option.
Personality Spec
Personality ID
Optional Hardware Support Specs
The following data is optional:
- A boolean for quickboot run for ESXi upgrade (default is 'true' if not specified)
Tip : Refer to: UpgradeSpec, ResourceUpgradeSpec, PersonalitySpec and HardwareSupportSpec.
4.2. Steps
- Invoke the API. This API returns a task which can be polled and monitored. If the API is invoked with draftMode set to true, see Step 3
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "CLUSTER",
"draftMode" : false,
"resourceUpgradeSpecs" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"scheduledTimestamp" : "2022-09-28T08:27:17.572Z",
"upgradeNow" : false,
"personalitySpec" : {
"personalityId" : "7a8e7e2d-df54-4c84-8478-68d4ad10175a",
"hardwareSupportSpecs" : [ {
"name" : "HSM",
"packageSpec" : {
"name" : "HSP",
"version" : "1.0.0"
}
} ]
},
"enableQuickboot" : true
} ]
}'
HTTP Request
POST /v1/upgrades HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 575
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "CLUSTER",
"draftMode" : false,
"resourceUpgradeSpecs" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"scheduledTimestamp" : "2022-09-28T08:27:17.572Z",
"upgradeNow" : false,
"personalitySpec" : {
"personalityId" : "7a8e7e2d-df54-4c84-8478-68d4ad10175a",
"hardwareSupportSpecs" : [ {
"name" : "HSM",
"packageSpec" : {
"name" : "HSP",
"version" : "1.0.0"
}
} ]
},
"enableQuickboot" : true
} ]
}
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/986799e4-5ed8-4c72-adc0-3ad9d85d7b54
Content-Length: 452
{
"id" : "986799e4-5ed8-4c72-adc0-3ad9d85d7b54",
"name" : "Upgrade SDDC_MANAGER - [] using BUNDLE - HOST:6.7.0-13006603",
"type" : "UPGRADE",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:17.571Z",
"resources" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"type" : "CLUSTER"
}, {
"resourceId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"type" : "BUNDLE"
} ],
"isCancellable" : false
}
- Poll the status of the task using the task API with the ID from the response of the previous API.
Tip : Refer to: Get a Task.
- If the upgrade is created with draftMode set to true, the upgrade status will be in "DRAFT" state and you can trigger a hardware compatibility and compliance check before scheduling the upgrade. Invoke the API, with the upgrade ID from step 1, to trigger/start the hardware compatibility and compliance check.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1/prechecks' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
POST /v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1/prechecks HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /v1/tasks/d0d0a50d-5376-49ba-961c-ac15b0adadb4
Content-Length: 2008
{
"id" : "d0d0a50d-5376-49ba-961c-ac15b0adadb4",
"name" : "PRECHECK",
"type" : "PRECHECK",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:17.862Z",
"completionTimestamp" : "2022-09-28T07:27:17.862Z",
"subTasks" : [ {
"name" : "vLCM Precheck for cluster: acme-cluster",
"description" : "vLCM Precheck for cluster: acme-cluster",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:17.863Z",
"stages" : [ {
"name" : "vLCM cluster health check",
"description" : "Perform Stage - Perform Stage - Precheck if the cluster are in a good state to be updated with the desired software image",
"status" : "UNKNOWN",
"errors" : [ ]
} ],
"resources" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"type" : "CLUSTER"
} ],
"subTasks" : [ {
"name" : "vLCM Precheck for host: 10.0.0.100",
"description" : "vLCM Precheck for host: 10.0.0.100",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:17.863Z",
"stages" : [ {
"name" : "vLCM image scan",
"description" : "Perform Stage - Perform Stage - Host compliance",
"status" : "UNKNOWN",
"errors" : [ ]
}, {
"name" : "vLCM image baseOS scan",
"description" : "Perform Stage - Perform Stage - Validating the baseOS version.",
"status" : "FAILED",
"errors" : [ {
"errorCode" : "com.vmware.vcIntegrity.lifecycle.HostScan.BaseImageDowngrade",
"errorType" : "ERROR",
"message" : "Desired Base Image version 7.0.0-1.20.16321839 is a downgrade of the installed version ESXi.",
"remediationMessage" : "Replace the Base Image in the desired state with one of the same or higher version."
} ]
} ],
"resources" : [ {
"resourceId" : "edec4ea4-5eba-4294-8f6e-1914230fcad3",
"type" : "ESX"
} ],
"subTasks" : [ ]
} ]
} ],
"isCancellable" : false
}
Tip : Refer to: performPrechecks API
- Poll the status of the hardware compatibility and compliance check task using the task API with the ID from the response of the previous API.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1/prechecks/7b827014-9058-458a-85be-d6e6916d26c1' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1/prechecks/7b827014-9058-458a-85be-d6e6916d26c1 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2008
{
"id" : "d0d0a50d-5376-49ba-961c-ac15b0adadb4",
"name" : "PRECHECK",
"type" : "PRECHECK",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:18.743Z",
"completionTimestamp" : "2022-09-28T07:27:18.743Z",
"subTasks" : [ {
"name" : "vLCM Precheck for cluster: acme-cluster",
"description" : "vLCM Precheck for cluster: acme-cluster",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:18.743Z",
"stages" : [ {
"name" : "vLCM cluster health check",
"description" : "Perform Stage - Perform Stage - Precheck if the cluster are in a good state to be updated with the desired software image",
"status" : "UNKNOWN",
"errors" : [ ]
} ],
"resources" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"type" : "CLUSTER"
} ],
"subTasks" : [ {
"name" : "vLCM Precheck for host: 10.0.0.100",
"description" : "vLCM Precheck for host: 10.0.0.100",
"status" : "IN_PROGRESS",
"creationTimestamp" : "2022-09-28T07:27:18.743Z",
"stages" : [ {
"name" : "vLCM image scan",
"description" : "Perform Stage - Perform Stage - Host compliance",
"status" : "UNKNOWN",
"errors" : [ ]
}, {
"name" : "vLCM image baseOS scan",
"description" : "Perform Stage - Perform Stage - Validating the baseOS version.",
"status" : "FAILED",
"errors" : [ {
"errorCode" : "com.vmware.vcIntegrity.lifecycle.HostScan.BaseImageDowngrade",
"errorType" : "ERROR",
"message" : "Desired Base Image version 7.0.0-1.20.16321839 is a downgrade of the installed version ESXi.",
"remediationMessage" : "Replace the Base Image in the desired state with one of the same or higher version."
} ]
} ],
"resources" : [ {
"resourceId" : "edec4ea4-5eba-4294-8f6e-1914230fcad3",
"type" : "ESX"
} ],
"subTasks" : [ ]
} ]
} ],
"isCancellable" : false
}
- Once the hardware compatibility and compliance check task is completed and result is reviewed, schedule the upgrade.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"scheduledTimestamp" : "2022-09-28T08:27:21.086Z",
"upgradeNow" : false
}'
HTTP Request
PATCH /v1/upgrades/7b827014-9058-458a-85be-d6e6916d26c1 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 79
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"scheduledTimestamp" : "2022-09-28T08:27:21.086Z",
"upgradeNow" : false
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 530
{
"id" : "7b827014-9058-458a-85be-d6e6916d26c1",
"bundleId" : "c47bced6-4cc9-4748-9e5a-8bd20a7d1da1",
"resourceType" : "CLUSTER",
"resourceUpgradeSpecs" : [ {
"resourceId" : "6425143e-dad0-4e8e-ac7a-36cc3cc9e490",
"shutdownVms" : null,
"toVersion" : null,
"scheduledTimestamp" : "2022-09-28T08:27:21.086Z",
"upgradeNow" : null,
"personalitySpec" : null,
"customISOSpec" : null,
"enableQuickboot" : false
} ],
"status" : "SCHEDULED",
"taskId" : "7b827014-9058-458a-85be-d6e6916d26c1"
}
Tip : Refer to Commit/Reschedule Upgrade API
- Poll the status of the upgrade task using the task API with the ID from the response of the previous API.
Tip : Refer to: Get a Task.
Last updated 2023-04-27 11:11:39 PDT