Specifying Remote Plug-in Compatibility

The vSphere Client provides a way to specify compatibility between remote plug-ins and vCenter Server versions. You can also specify compatibility with public cloud and private cloud environments.

When a remote plug-in is registered with a vCenter Server instance, each linked instance is notified. Each notified instance responds by checking compatibility constraints specified in the plug-in manifest. The constraints determine whether the notified instance will involve the plug-in in future requests that access vSphere resources on the registration instance.

Each notified instance must satisfy client constraints, and the registration instance must satisfy server constraints, to enable plug-in traffic. If both sides meet the constraint conditions, the notified instance deploys the plug-in for future connections to the registration instance. Deployment includes configuring extension point metadata to deploy plug-in views in the vSphere Client user interface, and setting proxy rules to forward view requests to the plug-in server. This path applies to views that access vSphere resources managed by the registration instance of vCenter Server.

In the plug-in manifest file you can specify two points of control for plug-in compatibility. First, you can control whether any vCenter Server instance is compatible with the plug-in's user interface views. You specify this with the vsphere.client property. Second, you can control whether the plug-in is compatible with a vCenter Server instance where it is registered. You specify this with the vcenter.server property.

For example, if your plug-in is compatible with only an on-premises vCenter Server, you should specify that limitation in the vcenter.server object in the manifest. If the plug-in is registered in a cloud environment by mistake, vsphere-ui will refuse to deploy it.

Or suppose your plug-in is incompatible with vSphere Client versions before 7.0. In that case, you should specify a minimum version of 7.0 in the vsphere.client object in the manifest. If a user connects to a vCenter Server instance with an earlier version number, it will refuse to display any view served by the plug-in.

To specify compatibility constraints, modify the requirements object in the remote plug-in manifest file. The following nested obects are available to specify compatibility:

  • vcenter.server

    Use this object to specify environments and versions of vCenter Server on which the plug-in can be deployed. You can specify these properties:

    • environments

      An array of specifiers for vCenter Server environments. If the environments property is present in the vcenter.server object, the values specified limit the environments from which the plug-in can be deployed. If the environments property is absent, the plug-in can be deployed from any vCenter Server with which it was registered. Legal values are:
      • onprem
      • cloud
    • version

      A string containing a version or range of versions for vCenter Server instances where the plug-in can be registered and deployed. Legal formats are:

      • version = a single compatible version string

      • [version, version] = an inclusive range of compatible versions

      • (version, version) = an exclusive range of compatible versions

      • [version, ) = a minimum version

      • (, version) = all prior versions

where version is an integer or a series of dot-separated integers: n[.n[.n[.n]]]

Note: A best practice is to specify the form [version, version) to indicate compatibility that begins at one major release and includes all minor releases up to, but not including, the next major release.

The version property in this context applies to a vCenter Server instance with which a remote plug-in is registered. If a version constraint is present in the vcenter.server object, vsphere-ui processes in all linked vCenter Server instances will verify that the registration instance satisfies the version constraint. If it does not, vsphere-ui will not deploy the plug-in for connections to the registration instance of vCenter Server. If the version property is absent, any vsphere-ui is free to deploy the plug-in if other compatibility constraints are satisfied.

  • vsphere.client

    Use this object to specify environments and versions of vSphere Client that can display the views served by the plug-in. When the plug-in is registered on one vCenter Server instance, and a user connects to a second vCenter Server instance, the vsphere-ui of the second instance will display plug-in views for resources managed by the registration instance only if the second instance satisfies the vsphere.client compatibility requirements.

    • environments

      An array of specifiers for vSphere environments. If the environments property is present in the vsphere.client object, the values specified limit the environments that can deploy the plug-in to access resources on a vCenter Server instance where the plug-in is registered. If the environments property is absent, any environment can deploy the plug-in to access resources on a vCenter Server instance where the plug-in is registered. Legal values are:
      • onprem
      • gateway
      • cloud
    • version

      A string containing a version or range of versions for vSphere environments. If the version property is present in the vsphere.client object, it limits the versions that can deploy the plug-in to access resources on a vCenter Server instance where the plug-in is registered. Legal formats are:

      • version = a single compatible version string

      • [version, version] = an inclusive range of compatible versions

      • (version, version) = an exclusive range of compatible versions

      • [version, ) = a minimum version

      • (, version) = all prior versions

where version is an integer or a series of dot-separated integers: n[.n[.n[.n]]]