Skip to content

procedures: Add docs about Open VSX on-premises #2947

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Aug 19, 2025
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
* Internet connection.
* Installed oc and git tools.
* Installed `oc` and git tools.
* Installed Podman.
* Log in to the OpenShift cluster where a {prod-short} is deployed as an administrator.
+
Expand Down Expand Up @@ -127,10 +127,10 @@ export PATCH='{"spec":{"components":{"pluginRegistry":{"openVSXURL":"https://'"$
oc patch checluster "${CHECLUSTER_NAME}" --type=merge --patch "${PATCH}" -n "${CHECLUSTER_NAMESPACE}"
----

. Publish Visual Studio Code extensions with the ovsx command.
. Publish Visual Studio Code extensions with the `ovsx` command.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should clarify that by default the registry is empty and has no extensions:

Screenshot 2025-08-18 at 13 05 46

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added:

screenshot-mail_google_com-2025_08_18-15_02_13

+
With everything configured, the next step is to publish a Visual Studio Code extension from inside the ovsx-cli container.
To do this, you need two pieces of information: the extension namespace name (used for publishing), the download URL of the .vsix extension package.
To do this, you need two pieces of information: the extension `namespace` name (used for publishing), the download URL of the .vsix extension package.
Once you have this information, run the following commands to publish the extension:
+
.. Retrieve the name of the pod running the Open VSX server:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
. Build and Publish Open VSX image.
+
To build and deploy the Open VSX server container image to the OpenShift internal image registry, run the 2.2. Build and Publish Open VSX Image task in the workspace: ('Terminal → Run Task… → devfile → 2.2. Build and Publish OpenVSX Image'). During execution, you’ll be prompted to enter the desired Open VSX server version. If left blank, the task will default to using v0.27.0.
To build and deploy the Open VSX server container image to the OpenShift internal image registry, run the 2.2. Build and Publish Open VSX Image task in the workspace: ('Terminal → Run Task… → devfile → 2.2. Build and Publish OpenVSX Image'). During execution, you will be prompted to enter the Open VSX server version. If left blank, the task will default to using v0.27.0.
+
[TIP]
====
Open VSX server versions could be found on the OpenVSX GitHub release page: https://github.com/eclipse/openvsx/releases
====

. Build and Publish OpenVSX CLI (ovsx) Image.
. Build and Publish OpenVSX CLI (`ovsx`) Image.
+
Run '2.3. Build and Publish OpenVSX CLI Image' task in the workspace ('Terminal → Run Task… → devfile → 2.3. Build and Publish OpenVSX CLI Imag') to build the Open VSX CLI image and push it to OpenShift internal registry.
Run '2.3. Build and Publish OpenVSX CLI Image' task in the workspace ('Terminal → Run Task… → devfile → 2.3. Build and Publish OpenVSX CLI Image') to build the Open VSX CLI image and push it to OpenShift internal registry.

. Deploy Open VSX.
+
Expand All @@ -24,5 +24,5 @@ Run '2.4. Deploy OpenVSX' task in the workspace ('Terminal → Run Task… → d
+
[TIP]
====
All deployment information is described in the 'deploy/openshift/openvsx-deployment.yml' file with some default values like 'OVSX_PAT_BASE64'.
All deployment information is described in the 'deploy/openshift/openvsx-deployment.yml' file with some default values such as 'OVSX_PAT_BASE64'.
====
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
[id="running-the-open-vsx-on-premises"]
= Running the Open VSX On-Premises

Provides a step-by-step instructions for deploying and configuring an on-premises Eclipse Open VSX extension registry, fully integrated with {prod-short} and OpenShift environments. It covers two setup paths - using a {prod-short} workspace or the OpenShift CLI (oc) - to help administrators set up a secure, internal Open VSX instance. This includes creating necessary OpenShift project, deploying Open VSX components, publishing extensions and integrating the registry with {prod-short}.
Provides a step-by-step instructions for deploying and configuring an on-premises Eclipse Open VSX extension registry, fully integrated with {prod-short} and OpenShift environments. It covers two setup paths - using a {prod-short} workspace or the OpenShift CLI (`oc`) - to help administrators set up a secure, internal Open VSX instance. This includes creating necessary OpenShift project, deploying Open VSX components, publishing extensions and integrating the registry with {prod-short}.

== Using {prod-short} instance

Expand Down Expand Up @@ -61,7 +61,7 @@ To publish your extensions to Open VSX, update the `extensions.txt` file as need
+
Start any workspace and check the available extensions in the Extensions view of the workspace IDE.

== Using OpenShift CLI (oc) tool
== Using OpenShift CLI (`oc`) tool

.Prerequisites

Expand Down Expand Up @@ -98,7 +98,7 @@ oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "rm /tmp/extension.vsix"
[TIP]
====

Example: Publish the redhat.vscode-yaml extension version 1.18.0:
Example: Publish the `redhat.vscode-yaml` extension version 1.18.0:
[bash,subs="verbatim",options="nowrap"]
----
oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "wget -O /tmp/extension.vsix https://open-vsx.org/api/redhat/vscode-yaml/1.18.0/file/redhat.vscode-yaml-1.18.0.vsix " &&
Expand All @@ -125,7 +125,7 @@ Steps for Internal Service Routing:
+
Delete the public route associated with the Open VSX registry to restrict external access:
+
[yaml,subs="verbatim",options="nowrap"]
[bash,subs="verbatim",options="nowrap"]
----
oc delete route internal -n openvsx
----
Expand All @@ -134,7 +134,7 @@ oc delete route internal -n openvsx
+
Update the CheCluster custom resource to use the internal cluster service DNS:
+
[yaml,subs="verbatim",options="nowrap"]
[bash,subs="verbatim",options="nowrap"]
----
export PATCH='{"spec":{"components":{"pluginRegistry":{"openVSXURL":"http://openvsx-server.openvsx.svc:8080"}}}}' &&
oc patch checluster "${CHECLUSTER_NAME}" --type=merge --patch "${PATCH}" -n "${CHECLUSTER_NAMESPACE}"
Expand Down