Integrate Third-Party Solutions with
vSphere Lifecycle Manager

A solution is an
ESXi
software package that extends the functionality and capabilities of a host and integrates with the
vCenter Server
system. To be able to manage the life cycle of your third-party solutions on a cluster managed with images, you must integrate the solutions with
vSphere Lifecycle Manager
.
Examples of VMware integrated solutions are
VMware NSX-T Data Center™
,
vSAN
, and
vSphere Supervisor
. For more information about the VMware integrated solutions, see
vSphere Lifecycle Manager Images and Other VMware Products and Solutions
section in the
Managing Host and Cluster Lifecycle
documentation.
Third-party software providers can use the vSphere APIs, VMware vSphere APIs for I/O Filtering (VAIO), VMware Daemon Software Development Kit, and others to develop third-party solutions for their vSphere platforms.
You can use the
vSphere Lifecycle Manager
automation APIs to manage the life cycle of third-party solutions on a cluster managed with a single image. First you need to package and upload your solution components to the
vSphere Lifecycle Manager
depot. Use the depot to store and manage the software updates for your third-party solutions. To make a solution available on a cluster, create a software specification that contains the solution and remediate all hosts in the cluster with that image.
vSphere Lifecycle Manager
manages the life cycle of the solution components by consuming the software updates from the
vSphere Lifecycle Manager
depot.
If you export an image from the cluster where your third-party solution is running, the solution components are not part of the exported image.

Prerequisites

To enable
vSphere Lifecycle Manager
to manage your third-party solutions, you must use the ESXi Packaging Kit (EPK) to create installable packages. As of the vSphere 7.0 release, partner development kits generate components as installation packages. For more information about how to use the EPK to create components, assemble components into add-ons, then merge the add-ons with the base image to author a depot, see the
ESXi Packaging Kit (EPK) Development Guide
documentation.

Integrate a Third-Party Solution to Work with
vSphere Lifecycle Manager

  1. Create an online or offline depot to host your third-party solutions. See Working with Online Depots and Working with Offline Depots.
    • The following example creates an online depot that can be accessed through the
      http://my_online_depot.com
      URL.
      POST https://<vcenter_server_ip_or_fqdn>/api/esx/settings/depots/online { "description" : "My online depot adds the My Solution component to the
      ESXi
      7.0U3d base image", "ownerdata" : "ACME Company", "location" : "http://my_online_depot.com", "enabled" : true }
    • The following example creates an offline depot, also called an offline bundle, that can be imported to the
      vSphere Lifecycle Manager
      depot.
      POST https://{server}/api/esx/settings/depots/offline?vmw-task=true { "file_id" : "string", "description" : "string", "ownerdata" : "string", "source_type" : "PULL", "location" : "http://myurl.com" }
  2. Synchronize the online depot to download the depot metadata and make the
    vSphere Lifecycle Manager
    aware of your solutions. See Synchronizing Software Depots.
    POST https://<vcenter_server_ip_or_fqdn>/api/esx/settings/depots/online?vmw-task=true&action=sync
  3. Create a draft software specification. See Creating a Draft Software Specification.
    POST https://<vcenter_server_ip_or_fqdn>/api/esx/settings/clusters/<cluster_id>/software/drafts
  4. Add your solution to the created draft software specification. See Editing a Draft Software Specification.
    PUT https://<vcenter_server_ip_or_fqdn>/api/esx/settings/clusters/<cluster_id>/software/drafts/<draft_id>/software/components/<component_id>
  5. Save the created draft software specification to make it the desired state for the cluster. See Committing the Draft Software Specification.
    POST https://<vcenter_server_ip_or_fqdn>/api/esx/settings/clusters/<cluster_id>/software/drafts/<draft_id>?action=commit&vmw-task=true
  6. Remediate the
    ESXi
    cluster with the desired state that contains your solution to apply the desired state on all hosts in that cluster. See Remediating an ESXi Cluster and a Standalone Host.
    POST https://<vcenter_server_ip_or_fqdn>/api/esx/settings/clusters/<cluster_id>/software?action=apply&vmw-task=true { "hosts" : [ "obj-103", "obj-103" ], "commit" : "obj-103", "accept_eula" : true }

Results

You set up an image for the cluster which includes your third-party solution. You now manage all hosts in the cluster collectively with a single image. Upon remediation, the image is installed on all hosts in the cluster.

What to do next

You can update, delete or add new solutions to the draft software specification and then commit the changes to make the draft the desired state for the cluster.

Enable
vSphere Lifecycle Manager
on a Cluster Managed with Baselines

For more information about how to convert a cluster to use
vSphere Lifecycle Manager
images instead of baselines, see Enabling an Existing Cluster to Use vSphere Lifecycle Manager.

vSphere Lifecycle Manager
APIs Equivalent to the vSphere Host Patch Manager APIs

To manage the life cycle of a single host with baselines, you use the vSphere Host Patch Manager APIs which are part of the vSphere Web Services API. To manage the life cycle of all hosts in a cluster collectively with an image, you use the
vSphere Lifecycle Manager
APIs which are part of the
vSphere Automation
APIs. The following table compares the APIs for life cycle management of the hosts and clusters in your environment.
Operation
vSphere Lifecycle Manager
API
vSphere Host Patch Manager API
Check whether hosts can be remediated
com.vmware.esx.settings.clusters.Software.check
vim.host.PatchManager.CheckHostPatch_Task
Check the compliance of the cluster or host with the desired state
com.vmware.esx.settings.clusters.Software.scan
vim.host.PatchManager.ScanHostPatchV2_Task
Remediate the cluster or host with the desired state
com.vmware.esx.settings.clusters.Software.apply
vim.host.PatchManager.InstallHostPatchV2_Task
Retrieve information about the cluster or host that you want to remediate
  • com.vmware.esx.settings.clusters.Software.get
    - View information about the current desired state.
  • com.vmware.esx.settings.clusters.software.Components.list
    - View all components in the current desired state.
  • com.vmware.esx.settings.clusters.software.Components.get
    - View detailed information about a specific component.
vim.host.PatchManager.QueryHostPatch_Task
- View information about the bulletins installed on an
ESXi
host.
Stage a desired state on a cluster or host
com.vmware.esx.settings.clusters.Software.stage
vim.host.PatchManager.StageHostPatch_Task
Uninstall a component
com.vmware.esx.settings.clusters.Software.apply
- When a software component is removed from the desired software specification and then the cluster is remediated, the component will be uninstalled from all hosts in that cluster.
vim.host.PatchManager.UninstallHostPatch_Task