Specifying Remote Plug-in Compatibility

The vSphere Client provides a way to specify compatibility between remote plug-ins and vCenter Server versions, and also 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 applies to views that access vSphere resources that the vCenter Server manages.
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 if your plug-in is incompatible with vSphere Client versions before 8.0, you should specify a minimum version of 8.0 in the
vsphere.client
manifest object. If a user connects to an earlier version vCenter Server, the client refuses 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 objects 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
      A specifier array for vCenter Servers. If property
      environments
      is specified in object
      vcenter.server
      , the plug-in can only be deployed there. If this property is absent, the plug-in can be deployed from any vCenter Server it is registered with. Legal values:
      • 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:
      • 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
]]]
Although bracket and parenthesis look unmatched, "[" is inclusive and "(" is exclusive. For example [8.0, 9.0) means everything from 8.0 up to but not including 9.0.
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
      A specifier array for vCenter Servers. If property
      environments
      is specified in object
      vcenter.server
      , the plug-in can only be deployed there. If this property is absent, the plug-in can be deployed from any vCenter Server it is registered with. Legal values:
      • 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
]]]