Skip to content

Latest commit

 

History

History
135 lines (101 loc) · 4.93 KB

File metadata and controls

135 lines (101 loc) · 4.93 KB

Adding or removing extensions in the embedded Open VSX registry instance

Important

You can manage Visual Studio Code extensions by setting up and using an internal, on-premises Open VSX registry. This approach provides full control over the extension lifecycle, enables offline use, and improves compliance. The embedded plugin registry will be deprecated in future releases, with the Open VSX registry serving as its successor. Refer to the running-the-open-vsx-on-premises.adoc for detailed setup instructions.

You can add or remove extensions in the embedded Open VSX registry instance. This results in a custom build of the Open VSX registry that can be used in your organization’s workspaces.

Tip
To get the latest security fixes after a {prod-short} update, rebuild your container based on the latest tag or SHA.

Procedure
  1. Get the publisher and extension name of each chosen extension:

    1. Find the extension on the Open VSX registry website and copy the URL of the extension’s listing page and extension’s version.

    2. Extract the <publisher> and <extension> name from the copied URL:

      https://open-vsx.org/extension/<publisher>/<name>
      Tip

      If the extension is only available from Microsoft Visual Studio Marketplace, but not Open VSX, you can ask the extension publisher to also publish it on open-vsx.org according to these instructions, potentially using this GitHub action.

      If the extension publisher is unavailable or unwilling to publish the extension to open-vsx.org, and if there is no Open VSX equivalent of the extension, consider reporting an issue to the Open VSX team.

  2. Build the custom plugin registry image and update CheCluster custom resource:

    Tip
    • During the build process, each extension will be verified for compatibility with the version of Visual Studio Code used in {prod-short}.

    1. Using {prod-short} instance:

      Important

      For IBM Power (ppc64le) and IBM Z (s390x), the custom plugin registry is expected to be built locally on the corresponding architecture.

      1. Login to your {prod-short} instance as an administrator.

  1. Using Linux operating system:

    Tip
    • Podman and NodeJS version 18.20.3 or higher should be installed in the system.

  • To add extensions, add the publisher, name and extension version to the openvsx-sync.json file.

  • To remove extensions, remove the publisher, name and extension version from the openvsx-sync.json file.

  • Use the following JSON syntax:

        {
            "id": "<publisher>.<name>",
            "version": "<extension_version>"
        }
    Tip
    • If you have a closed-source extension or an extension developed only for internal use in your organization, you can add the extension directly from a .vsix file by using a URL accessible to your custom plugin registry container:

          {
              "id": "<publisher>.<name>",
              "download": "<url_to_download_vsix_file>",
              "version": "<extension_version>"
          }
    • Read the Terms of Use for the Microsoft Visual Studio Marketplace before using its resources.

    1. Build the plugin registry container image and publish it to a container registry such as quay.io:

      1. $ ./build.sh -o <username> -r quay.io -t custom
      2. $ {docker-cli} push quay.io/<username/plugin_registry:custom>
    2. Edit the CheCluster custom resource in your organization’s cluster to point to the image (for example, on quay.io) and save the changes:

      spec:
        components:
          pluginRegistry:
            deployment:
              containers:
                - image: quay.io/<username/plugin_registry:custom>
            openVSXURL: ''
Verification
  1. Check that the plugin-registry pod has restarted and is running.

  2. Restart the workspace and check the available extensions in the Extensions view of the workspace IDE.