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®, vSAN, and vSphere IaaS control plane. 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 thevSphere 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.

Note: 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 ManagerAPI 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