Remote Plug-in Multi-Version Support

Unlike local plug-ins, the remote plug-in architecture allows for co-existence of remote plug-ins with the same ID but different versions.

Consider an ELM environment with three vCenter Server instances and the following plug-in registrations:

./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc1/sdk -u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n 'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k com.example.exampleco -pu "https://my-remote-plugin-server-version-1/path-to/plugin.json" -v "1.0.0" -st plugin_server_1_thumbprint -remote

./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc2/sdk -u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n 'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k com.example.exampleco -pu "https://my-remote-plugin-server-version-2/path-to/plugin.json" -v "2.0.1" -st plugin_server_2_thumbprint -remote

./extension-registration.sh -action registerPlugin -url https://vcenter-ip-or-fqdn-of-vc3/sdk -u "[email protected]" -p 'Admin!23' -c 'Example, Inc.' -n 'ExampleCo' -s 'A test plugin demonstrating plugin instances' -k com.example.exampleco -pu "https://my-remote-plugin-server-version-3/path-to/plugin.json" -v "3.2.0" -st plugin_server_3_thumbprint -remote

These commands register three extensions (one in each of the three vCenter Servers) with the same ID (com.example.exampleco) but different versions - version 1.0.0 on VC1, version 2.0.1 on VC2 and version 3.2.0 on VC3. These are three different versions of the remote plug-in with ID com.example.exampleco. When you log in to the UI you will see the following:

  • Object views declared by plug-in com.example.exampleco version 1.0.0 will be shown on applicable objects from VC1. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version 1.0.0 of the plugin.

  • Object views declared by plug-in com.example.exampleco version 2.0.1 will be shown on applicable objects from VC2. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version 2.0.1 of the plug-in.

  • Object views declared by plug-in com.example.exampleco version 3.2.0 will be shown on applicable objects from VC3. Calls to the plug-in back-end server will be routed to the plug-in server dedicated to version 3.2.0 of the plug-in.

  • There will be a single entry point in the object navigator that will take the user to a plug-in instance/version selector view where the user will be able to switch between the global views of the different versions and instances of the remote plug-in.