From eb3f2e585cf154817790365a10c4c46e03b596f7 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Fri, 10 Jul 2026 16:40:55 +0300 Subject: [PATCH 01/15] procedures: add documentation for operator-managed OpenVSX registry Co-Authored-By: Claude Opus 4.6 --- modules/administration-guide/nav.adoc | 1 + ...nabling-the-managed-open-vsx-registry.adoc | 143 ++++++++++++++++++ ...rosoft-visual-studio-code-open-source.adoc | 2 + .../pages/managing-ide-extensions.adoc | 5 +- 4 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc diff --git a/modules/administration-guide/nav.adoc b/modules/administration-guide/nav.adoc index 844c4820c7..d397c0c880 100644 --- a/modules/administration-guide/nav.adoc +++ b/modules/administration-guide/nav.adoc @@ -67,6 +67,7 @@ * xref:managing-ide-extensions.adoc[] ** xref:extensions-for-microsoft-visual-studio-code-open-source.adoc[] ** xref:configuring-the-open-vsx-registry-url.adoc[] +** xref:enabling-the-managed-open-vsx-registry.adoc[] ** xref:proc_deploy-open-vsx-from-source.adoc[] ** xref:proc_deploy-open-vsx-from-workspace.adoc[] ** xref:proc_configure-internal-open-vsx-access.adoc[] diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc new file mode 100644 index 0000000000..30f87bf0f9 --- /dev/null +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -0,0 +1,143 @@ +:_content-type: PROCEDURE +:description: Enable the operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands +:keywords: administration guide, openvsx, registry, extensions, managed, operator +:navtitle: Enable the managed Open VSX registry +:page-aliases: + +[id="enabling-the-managed-open-vsx-registry"] += Enabling the managed Open VSX registry + +[role="_abstract"] +Enable {prod-short} to deploy and manage a dedicated Open VSX server with a PostgreSQL database as Operator-managed components. The managed registry is exposed through the {prod-short} gateway and provides a private, curated extension registry without requiring manual deployment or database administration. + +When enabled, the {prod-short} Operator creates the following resources: + +* An Open VSX server `Deployment` with a `PersistentVolumeClaim` for extension storage. +* A PostgreSQL database `Deployment` with a `PersistentVolumeClaim` for data. +* A one-shot `Job` to provision the database with the required user and access token. +* A `ConfigMap` for listing extensions to publish to the registry. + +When disabled, the Operator removes all managed Open VSX resources. + +.Prerequisites + +* An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. + +.Procedure + +. Enable the managed Open VSX registry by patching the `CheCluster` custom resource: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} patch checluster {prod-checluster} \ + --namespace {prod-namespace} \ + --type merge \ + --patch '{ + "spec": { + "components": { + "openVSXRegistry": { + "enable": true + } + } + } + }' +---- ++ +The Operator deploys the Open VSX server and PostgreSQL database, provisions the database, and exposes the registry through the {prod-short} gateway. + +. Optional: Configure the server storage size by setting the `claimSize` field. The default is `3Gi`. ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} patch checluster {prod-checluster} \ + --namespace {prod-namespace} \ + --type merge \ + --patch '{ + "spec": { + "components": { + "openVSXRegistry": { + "server": { + "pvc": { + "claimSize": "____" + } + } + } + } + } + }' +---- ++ +where `____` is the required storage size. For example: `5Gi`. + +. Optional: Configure the database storage size. The default is `1Gi`. ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} patch checluster {prod-checluster} \ + --namespace {prod-namespace} \ + --type merge \ + --patch '{ + "spec": { + "components": { + "openVSXRegistry": { + "database": { + "pvc": { + "claimSize": "____" + } + } + } + } + } + }' +---- + +. Optional: Publish extensions to the managed registry by editing the `openvsx-extensions` `ConfigMap` in the {prod-short} {orch-namespace}. Add extension `.vsix` download URLs, one per line: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} edit configmap openvsx-extensions \ + --namespace {prod-namespace} +---- ++ +The Operator automatically runs a publishing `Job` when the `ConfigMap` content changes. + +.Verification + +* Verify that the Open VSX server and database pods are running: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get pods --namespace {prod-namespace} -l app=openvsx +---- + +* Open a workspace and verify that extensions from the managed registry are available in the *Extensions* view. + +[id="disabling-the-managed-open-vsx-registry"] +== Disabling the managed Open VSX registry + +To remove the managed Open VSX registry and all its resources, set the `enable` field to `false`: + +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} patch checluster {prod-checluster} \ + --namespace {prod-namespace} \ + --type merge \ + --patch '{ + "spec": { + "components": { + "openVSXRegistry": { + "enable": false + } + } + } + }' +---- + +The Operator removes all managed Open VSX resources, including deployments, services, persistent volume claims, and secrets. + +[role="_additional-resources"] +.Additional resources + +* xref:managing-ide-extensions.adoc[] +* xref:configuring-the-open-vsx-registry-url.adoc[] +* xref:using-the-cli-to-configure-the-checluster-custom-resource.adoc[] diff --git a/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc b/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc index bf8486108d..60f9bac27d 100644 --- a/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc +++ b/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc @@ -15,6 +15,8 @@ To manage extensions, {prod-short} uses one of the following Open VSX registry i * A standalone Open VSX registry instance that is deployed on a network accessible from {prod-short} workspace pods. +* An operator-managed Open VSX registry deployed as a {prod-short} operand. See xref:enabling-the-managed-open-vsx-registry.adoc[]. + include::example$snip_{project-context}-default-vsx-registry.adoc[] include::partial$proc_selecting-an-open-vsx-registry-instance.adoc[leveloffset=+1] diff --git a/modules/administration-guide/pages/managing-ide-extensions.adoc b/modules/administration-guide/pages/managing-ide-extensions.adoc index 5ddb74e2b4..b1f945771a 100644 --- a/modules/administration-guide/pages/managing-ide-extensions.adoc +++ b/modules/administration-guide/pages/managing-ide-extensions.adoc @@ -12,7 +12,7 @@ Manage IDE extensions in {prod-short} workspaces to control which extensions are IDEs in {prod-short} use extensions to provide language support, debugging, linting, and other development tools. The Microsoft Visual Studio Code - Open Source editor manages extensions through the Open VSX registry. -{prod-short} supports three registry configurations: +{prod-short} supports four registry configurations: Embedded Open VSX registry:: Runs in the `plugin-registry` pod and supports air-gapped, offline, and proxy-restricted environments. Contains a default subset of extensions that you can customize. @@ -20,11 +20,14 @@ Public Open VSX registry:: The community-hosted registry at `open-vsx.org`, acce Standalone Open VSX registry:: A self-hosted instance deployed on a network accessible from {prod-short} workspace pods. Provides full control over available extensions for organizations that need a curated, private registry. +Managed Open VSX registry:: An Operator-managed Open VSX server and PostgreSQL database deployed as {prod-short} operands. The Operator handles provisioning, exposure through the {prod-short} gateway, and lifecycle management. Enable it by setting `spec.components.openVSXRegistry.enable` in the `CheCluster` custom resource. + [role="_additional-resources"] .Additional resources * xref:extensions-for-microsoft-visual-studio-code-open-source.adoc[] * xref:configuring-the-open-vsx-registry-url.adoc[] +* xref:enabling-the-managed-open-vsx-registry.adoc[] * xref:proc_deploy-open-vsx-from-source.adoc[] * xref:proc_deploy-open-vsx-from-workspace.adoc[] * xref:proc_configure-internal-open-vsx-access.adoc[] From 5d9acf49c20ec4566b2b54b676721faa5c144f55 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Fri, 10 Jul 2026 17:36:18 +0300 Subject: [PATCH 02/15] procedures: add custom credentials and OpenVSX UI access documentation Co-Authored-By: Claude Opus 4.6 --- ...nabling-the-managed-open-vsx-registry.adoc | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 30f87bf0f9..5b973302fd 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -110,8 +110,94 @@ The Operator automatically runs a publishing `Job` when the `ConfigMap` content {orch-cli} get pods --namespace {prod-namespace} -l app=openvsx ---- +* Access the Open VSX registry UI by navigating to `pass:c,a,q[https://____/openvsx]` in a browser, where `____` is the hostname of your {prod-short} instance. You can retrieve the URL from the `CheCluster` status: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get checluster {prod-checluster} \ + --namespace {prod-namespace} \ + -o jsonpath='{.status.openVSXURL}' +---- + * Open a workspace and verify that extensions from the managed registry are available in the *Extensions* view. +[id="configuring-custom-credentials-for-the-managed-open-vsx-registry"] +== Configuring custom credentials for the managed Open VSX registry + +By default, the Operator generates an `openvsx-credentials` secret with random passwords and access tokens. To use custom database credentials and Open VSX user accounts, create a secret and reference it in the `CheCluster` custom resource. + +.Procedure + +. Create a secret with the required credentials: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} create secret generic ____ \ + --namespace {prod-namespace} \ + --from-literal=database-user=____ \ + --from-literal=database-password=____ \ + --from-literal=database-name=____ \ + --from-literal=openvsx-publisher-name=____ \ + --from-literal=openvsx-publisher-token=____ \ + --from-literal=openvsx-admin-name=____ \ + --from-literal=openvsx-admin-token=____ +---- ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} label secret ____ \ + --namespace {prod-namespace} \ + app.kubernetes.io/part-of=che.eclipse.org +---- ++ +The secret must contain all of the following keys: ++ +[cols="1,2", options="header"] +|=== +| Key | Description + +| `database-user` +| PostgreSQL username. + +| `database-password` +| PostgreSQL password. + +| `database-name` +| PostgreSQL database name. + +| `openvsx-publisher-name` +| Login name of the Open VSX publisher account with the `privileged` role. + +| `openvsx-publisher-token` +| Personal access token for the publisher account. + +| `openvsx-admin-name` +| Login name of the Open VSX admin account. + +| `openvsx-admin-token` +| Personal access token for the admin account. +|=== + +. Reference the secret in the `CheCluster` custom resource: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} patch checluster {prod-checluster} \ + --namespace {prod-namespace} \ + --type merge \ + --patch '{ + "spec": { + "components": { + "openVSXRegistry": { + "credentialsSecretName": "____" + } + } + } + }' +---- + +IMPORTANT: The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. + [id="disabling-the-managed-open-vsx-registry"] == Disabling the managed Open VSX registry From 0ccb3d7338e5a94363b9615af652d9542081dd2b Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Fri, 10 Jul 2026 17:43:57 +0300 Subject: [PATCH 03/15] procedures: add OpenVSX server configuration customization section Co-Authored-By: Claude Opus 4.6 --- .../enabling-the-managed-open-vsx-registry.adoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 5b973302fd..b83087726c 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -198,6 +198,23 @@ The secret must contain all of the following keys: IMPORTANT: The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. +[id="customizing-the-open-vsx-server-configuration"] +== Customizing the Open VSX server configuration + +The Operator creates an `openvsx-server` `ConfigMap` with a default `application.yml` configuration when the managed registry is first enabled. This `ConfigMap` is user-editable: the Operator creates it once and does not overwrite subsequent changes. Modifying the `ConfigMap` automatically triggers a rolling restart of the Open VSX server pod. + +.Procedure + +. Edit the `openvsx-server` `ConfigMap`: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} edit configmap openvsx-server \ + --namespace {prod-namespace} +---- ++ +The `ConfigMap` contains a single `application.yml` key with the Open VSX Spring Boot configuration. + [id="disabling-the-managed-open-vsx-registry"] == Disabling the managed Open VSX registry From 96be9a444624c43e2abf91b3e6984d180126e5b5 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 14 Jul 2026 18:03:55 +0300 Subject: [PATCH 04/15] update changes Signed-off-by: Valerii Svydenko --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 10 +++++++--- ...s-for-microsoft-visual-studio-code-open-source.adoc | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index b83087726c..278f4f4d01 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -1,5 +1,5 @@ :_content-type: PROCEDURE -:description: Enable the operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands +:description: Enable the Operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands :keywords: administration guide, openvsx, registry, extensions, managed, operator :navtitle: Enable the managed Open VSX registry :page-aliases: @@ -218,8 +218,12 @@ The `ConfigMap` contains a single `application.yml` key with the Open VSX Spring [id="disabling-the-managed-open-vsx-registry"] == Disabling the managed Open VSX registry -To remove the managed Open VSX registry and all its resources, set the `enable` field to `false`: +Disable the managed Open VSX registry to remove the Open VSX server, PostgreSQL database, and all associated resources from the {orch-namespace}. +.Procedure + +. Set the `enable` field to `false`: ++ [source,shell,subs="+quotes,+attributes,+macros"] ---- {orch-cli} patch checluster {prod-checluster} \ @@ -235,7 +239,7 @@ To remove the managed Open VSX registry and all its resources, set the `enable` } }' ---- - ++ The Operator removes all managed Open VSX resources, including deployments, services, persistent volume claims, and secrets. [role="_additional-resources"] diff --git a/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc b/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc index 60f9bac27d..62798b03f4 100644 --- a/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc +++ b/modules/administration-guide/pages/extensions-for-microsoft-visual-studio-code-open-source.adoc @@ -15,7 +15,7 @@ To manage extensions, {prod-short} uses one of the following Open VSX registry i * A standalone Open VSX registry instance that is deployed on a network accessible from {prod-short} workspace pods. -* An operator-managed Open VSX registry deployed as a {prod-short} operand. See xref:enabling-the-managed-open-vsx-registry.adoc[]. +* An Operator-managed Open VSX registry deployed as a {prod-short} operand. See xref:enabling-the-managed-open-vsx-registry.adoc[]. include::example$snip_{project-context}-default-vsx-registry.adoc[] From 3ab34ad02c0eaa07aa18354298d8805c379894bf Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Fri, 24 Jul 2026 18:38:17 +0300 Subject: [PATCH 05/15] procedures: add extension deletion section and fix pod labels Add procedure for deleting extensions from the managed Open VSX registry using the admin API. Fix verification pod labels to use app.kubernetes.io/component instead of app=openvsx. Add NOTE about the registry starting empty. Co-Authored-By: Claude Opus 4.6 --- ...nabling-the-managed-open-vsx-registry.adoc | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 278f4f4d01..e6ee3081dd 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -44,6 +44,8 @@ When disabled, the Operator removes all managed Open VSX resources. ---- + The Operator deploys the Open VSX server and PostgreSQL database, provisions the database, and exposes the registry through the {prod-short} gateway. ++ +NOTE: The managed registry starts empty with no pre-installed extensions. You must publish extensions to the registry after enabling it. . Optional: Configure the server storage size by setting the `claimSize` field. The default is `3Gi`. + @@ -107,7 +109,8 @@ The Operator automatically runs a publishing `Job` when the `ConfigMap` content + [source,shell,subs="+quotes,+attributes,+macros"] ---- -{orch-cli} get pods --namespace {prod-namespace} -l app=openvsx +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-database ---- * Access the Open VSX registry UI by navigating to `pass:c,a,q[https://____/openvsx]` in a browser, where `____` is the hostname of your {prod-short} instance. You can retrieve the URL from the `CheCluster` status: @@ -215,6 +218,55 @@ The Operator creates an `openvsx-server` `ConfigMap` with a default `application + The `ConfigMap` contains a single `application.yml` key with the Open VSX Spring Boot configuration. +[id="deleting-extensions-from-the-managed-open-vsx-registry"] +== Deleting extensions from the managed Open VSX registry + +Delete individual extensions or specific extension versions from the managed Open VSX registry by using the Open VSX admin API. + +.Prerequisites + +* An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. +* The managed Open VSX registry is enabled and running. + +.Procedure + +. Get the Open VSX server pod name: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server -o name +---- + +. Delete an entire extension with all its versions: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} exec ____ \ + --namespace {prod-namespace} -- \ + sh -c 'curl -X POST "http://openvsx-server:8080/openvsx/admin/api/extension/____/____/delete?token=$OPENVSX_ADMIN_PAT"' +---- ++ +where: ++ +-- +`____`:: The pod name from the previous step. +`____`:: The namespace (publisher) of the extension. For example: `redhat`. +`____`:: The name of the extension. For example: `java`. +-- + +. Alternatively, to delete only a specific version of an extension: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} exec ____ \ + --namespace {prod-namespace} -- \ + sh -c 'curl -X POST -H "Content-Type: application/json" \ + -d '"'"'[{"version": "____"}]'"'"' \ + "http://openvsx-server:8080/openvsx/admin/api/extension/____/____/delete?token=$OPENVSX_ADMIN_PAT"' +---- ++ +where `____` is the version to delete. For example: `1.2.3`. + [id="disabling-the-managed-open-vsx-registry"] == Disabling the managed Open VSX registry From cc368fa0949941c673eb8e5d7a8dca4c4c778b0f Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 12:52:32 +0300 Subject: [PATCH 06/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index e6ee3081dd..e6577f6a8a 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -125,7 +125,7 @@ The Operator automatically runs a publishing `Job` when the `ConfigMap` content * Open a workspace and verify that extensions from the managed registry are available in the *Extensions* view. [id="configuring-custom-credentials-for-the-managed-open-vsx-registry"] -== Configuring custom credentials for the managed Open VSX registry +== Configure custom credentials for the managed Open VSX registry By default, the Operator generates an `openvsx-credentials` secret with random passwords and access tokens. To use custom database credentials and Open VSX user accounts, create a secret and reference it in the `CheCluster` custom resource. From 9d7306e40e741916a01823b78b530268aad236d9 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 12:53:03 +0300 Subject: [PATCH 07/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index e6577f6a8a..fa1b43752a 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -5,7 +5,7 @@ :page-aliases: [id="enabling-the-managed-open-vsx-registry"] -= Enabling the managed Open VSX registry += Enable the managed Open VSX registry [role="_abstract"] Enable {prod-short} to deploy and manage a dedicated Open VSX server with a PostgreSQL database as Operator-managed components. The managed registry is exposed through the {prod-short} gateway and provides a private, curated extension registry without requiring manual deployment or database administration. From b60679b4ba53195bbab3dc7b8c957bc2affc01a9 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 12:53:24 +0300 Subject: [PATCH 08/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index fa1b43752a..30baf39d41 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -2,7 +2,6 @@ :description: Enable the Operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands :keywords: administration guide, openvsx, registry, extensions, managed, operator :navtitle: Enable the managed Open VSX registry -:page-aliases: [id="enabling-the-managed-open-vsx-registry"] = Enable the managed Open VSX registry From 8d634fa6196690262eb1d4f8885f6d5c46991ab5 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 12:54:00 +0300 Subject: [PATCH 09/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 30baf39d41..9d0a2d8909 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -198,7 +198,10 @@ The secret must contain all of the following keys: }' ---- -IMPORTANT: The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. +[IMPORTANT] +==== +The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. +==== [id="customizing-the-open-vsx-server-configuration"] == Customizing the Open VSX server configuration From d7aad60e5d896bf8e17629370fbd81347fc58474 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 12:54:17 +0300 Subject: [PATCH 10/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 9d0a2d8909..0997b50603 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -204,7 +204,7 @@ The secret must exist before it is referenced in the `CheCluster` custom resourc ==== [id="customizing-the-open-vsx-server-configuration"] -== Customizing the Open VSX server configuration +== Customize the Open VSX server configuration The Operator creates an `openvsx-server` `ConfigMap` with a default `application.yml` configuration when the managed registry is first enabled. This `ConfigMap` is user-editable: the Operator creates it once and does not overwrite subsequent changes. Modifying the `ConfigMap` automatically triggers a rolling restart of the Open VSX server pod. From ea62645a92142e0cb47931a64171ec3b4c0ee885 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 13:02:44 +0300 Subject: [PATCH 11/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 0997b50603..5edc515691 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -221,7 +221,7 @@ The Operator creates an `openvsx-server` `ConfigMap` with a default `application The `ConfigMap` contains a single `application.yml` key with the Open VSX Spring Boot configuration. [id="deleting-extensions-from-the-managed-open-vsx-registry"] -== Deleting extensions from the managed Open VSX registry +== Delete extensions from the managed Open VSX registry Delete individual extensions or specific extension versions from the managed Open VSX registry by using the Open VSX admin API. From 845f8a17dc5f22feb7f9dfd912075c637bafcf92 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 13:02:57 +0300 Subject: [PATCH 12/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Gaurav Trivedi <90042568+gtrivedi88@users.noreply.github.com> --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 5edc515691..8c8713dd4b 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -270,7 +270,7 @@ where: where `____` is the version to delete. For example: `1.2.3`. [id="disabling-the-managed-open-vsx-registry"] -== Disabling the managed Open VSX registry +== Disable the managed Open VSX registry Disable the managed Open VSX registry to remove the Open VSX server, PostgreSQL database, and all associated resources from the {orch-namespace}. From 56debdb223e7500777ba8b9a5b9905e335f86f0a Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 14:23:06 +0300 Subject: [PATCH 13/15] procedures: add prerequisites, verification, and Tech Preview notice Signed-off-by: Valerii Svydenko --- ...nabling-the-managed-open-vsx-registry.adoc | 79 ++++++++++++++++++- .../pages/managing-ide-extensions.adoc | 12 +-- 2 files changed, 82 insertions(+), 9 deletions(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 8c8713dd4b..0a19b3589b 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -7,6 +7,11 @@ = Enable the managed Open VSX registry [role="_abstract"] +[IMPORTANT] +==== +The managed Open VSX registry is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/. +==== + Enable {prod-short} to deploy and manage a dedicated Open VSX server with a PostgreSQL database as Operator-managed components. The managed registry is exposed through the {prod-short} gateway and provides a private, curated extension registry without requiring manual deployment or database administration. When enabled, the {prod-short} Operator creates the following resources: @@ -128,6 +133,15 @@ The Operator automatically runs a publishing `Job` when the `ConfigMap` content By default, the Operator generates an `openvsx-credentials` secret with random passwords and access tokens. To use custom database credentials and Open VSX user accounts, create a secret and reference it in the `CheCluster` custom resource. +[IMPORTANT] +==== +The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. +==== + +.Prerequisites + +* An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. + .Procedure . Create a secret with the required credentials: @@ -191,6 +205,7 @@ The secret must contain all of the following keys: "spec": { "components": { "openVSXRegistry": { + "enable": true, "credentialsSecretName": "____" } } @@ -198,16 +213,45 @@ The secret must contain all of the following keys: }' ---- -[IMPORTANT] -==== -The secret must exist before it is referenced in the `CheCluster` custom resource. The Operator validates the secret on create and update and rejects the change if the secret is missing or incomplete. -==== +.Verification + +. Verify that the Open VSX server pod is running: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server +---- + +. Verify that the custom credentials are injected as environment variables in the Open VSX server pod: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} exec deploy/openvsx-server \ + --namespace {prod-namespace} -- \ + env | grep -E 'OPENVSX_ADMIN_PAT|OPENVSX_USER_PAT' +---- ++ +The output should include `OPENVSX_ADMIN_PAT` and `OPENVSX_USER_PAT`. + +. Verify that the database pod uses the custom credentials: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} exec deploy/openvsx-database \ + --namespace {prod-namespace} -- \ + env | grep -E 'POSTGRESQL_' +---- [id="customizing-the-open-vsx-server-configuration"] == Customize the Open VSX server configuration The Operator creates an `openvsx-server` `ConfigMap` with a default `application.yml` configuration when the managed registry is first enabled. This `ConfigMap` is user-editable: the Operator creates it once and does not overwrite subsequent changes. Modifying the `ConfigMap` automatically triggers a rolling restart of the Open VSX server pod. +.Prerequisites + +* An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. +* The managed Open VSX registry is enabled and running. + .Procedure . Edit the `openvsx-server` `ConfigMap`: @@ -220,6 +264,15 @@ The Operator creates an `openvsx-server` `ConfigMap` with a default `application + The `ConfigMap` contains a single `application.yml` key with the Open VSX Spring Boot configuration. +.Verification + +* Verify that the Open VSX server pod has restarted with the updated configuration: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server +---- + [id="deleting-extensions-from-the-managed-open-vsx-registry"] == Delete extensions from the managed Open VSX registry @@ -269,11 +322,19 @@ where: + where `____` is the version to delete. For example: `1.2.3`. +.Verification + +* Open the Open VSX registry UI and verify that the deleted extension is no longer listed. + [id="disabling-the-managed-open-vsx-registry"] == Disable the managed Open VSX registry Disable the managed Open VSX registry to remove the Open VSX server, PostgreSQL database, and all associated resources from the {orch-namespace}. +.Prerequisites + +* An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. + .Procedure . Set the `enable` field to `false`: @@ -296,6 +357,16 @@ Disable the managed Open VSX registry to remove the Open VSX server, PostgreSQL + The Operator removes all managed Open VSX resources, including deployments, services, persistent volume claims, and secrets. +.Verification + +* Verify that no Open VSX pods remain in the {orch-namespace}: ++ +[source,shell,subs="+quotes,+attributes,+macros"] +---- +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server +{orch-cli} get pods --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-database +---- + [role="_additional-resources"] .Additional resources diff --git a/modules/administration-guide/pages/managing-ide-extensions.adoc b/modules/administration-guide/pages/managing-ide-extensions.adoc index b1f945771a..7b5d8a0f03 100644 --- a/modules/administration-guide/pages/managing-ide-extensions.adoc +++ b/modules/administration-guide/pages/managing-ide-extensions.adoc @@ -12,15 +12,17 @@ Manage IDE extensions in {prod-short} workspaces to control which extensions are IDEs in {prod-short} use extensions to provide language support, debugging, linting, and other development tools. The Microsoft Visual Studio Code - Open Source editor manages extensions through the Open VSX registry. -{prod-short} supports four registry configurations: +{prod-short} supports five registry configurations: -Embedded Open VSX registry:: Runs in the `plugin-registry` pod and supports air-gapped, offline, and proxy-restricted environments. Contains a default subset of extensions that you can customize. +. *Embedded Open VSX registry*. Runs in the `plugin-registry` pod and supports air-gapped, offline, and proxy-restricted environments. Contains a default subset of extensions that you can customize. -Public Open VSX registry:: The community-hosted registry at `open-vsx.org`, accessed over the internet. Provides the full catalog of openly published extensions. +. *Public Open VSX registry*. The community-hosted registry at `open-vsx.org`, accessed over the internet. Provides the full catalog of openly published extensions. -Standalone Open VSX registry:: A self-hosted instance deployed on a network accessible from {prod-short} workspace pods. Provides full control over available extensions for organizations that need a curated, private registry. +. *Standalone Open VSX registry*. A self-hosted instance deployed on a network accessible from {prod-short} workspace pods. Provides full control over available extensions for organizations that need a curated, private registry. -Managed Open VSX registry:: An Operator-managed Open VSX server and PostgreSQL database deployed as {prod-short} operands. The Operator handles provisioning, exposure through the {prod-short} gateway, and lifecycle management. Enable it by setting `spec.components.openVSXRegistry.enable` in the `CheCluster` custom resource. +. *Operator-managed Open VSX registry*. An Open VSX server and PostgreSQL database deployed and managed by the {prod-short} Operator as cluster operands. The Operator handles provisioning, database setup, exposure through the {prod-short} gateway, and lifecycle management. Enable it by setting `spec.components.openVSXRegistry.enable` in the `CheCluster` custom resource. + +. *Managed Open VSX registry*. A commercially supported, hosted registry operated by the Eclipse Foundation. Provides a cloud-hosted Open VSX registry without requiring self-hosted infrastructure. See link:https://managed.open-vsx.org/pricing/[Open VSX Managed Registry] for available plans. [role="_additional-resources"] .Additional resources From 2b5d82acb12df2461bdf9d97be1d46a7721ebb8e Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 15:19:48 +0300 Subject: [PATCH 14/15] fix openvsx extensions CM name Signed-off-by: Valerii Svydenko --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 0a19b3589b..3237dcd055 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -97,11 +97,11 @@ where `____` is the required storage size. For example: `5Gi`. }' ---- -. Optional: Publish extensions to the managed registry by editing the `openvsx-extensions` `ConfigMap` in the {prod-short} {orch-namespace}. Add extension `.vsix` download URLs, one per line: +. Optional: Publish extensions to the managed registry by editing the `openvsx-server-extensions` `ConfigMap` in the {prod-short} {orch-namespace}. Add extension `.vsix` download URLs, one per line: + [source,shell,subs="+quotes,+attributes,+macros"] ---- -{orch-cli} edit configmap openvsx-extensions \ +{orch-cli} edit configmap openvsx-server-extensions \ --namespace {prod-namespace} ---- + From 7ccb1cce383984655534c9a59a0c10d1c7f18f26 Mon Sep 17 00:00:00 2001 From: Valerii Svydenko Date: Tue, 28 Jul 2026 17:13:19 +0300 Subject: [PATCH 15/15] Update modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc Co-authored-by: Ilya Buziuk --- .../pages/enabling-the-managed-open-vsx-registry.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc index 3237dcd055..88410dfb81 100644 --- a/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc +++ b/modules/administration-guide/pages/enabling-the-managed-open-vsx-registry.adoc @@ -9,7 +9,7 @@ [role="_abstract"] [IMPORTANT] ==== -The managed Open VSX registry is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/. +The managed Open VSX registry is a Technology Preview feature only. ==== Enable {prod-short} to deploy and manage a dedicated Open VSX server with a PostgreSQL database as Operator-managed components. The managed registry is exposed through the {prod-short} gateway and provides a private, curated extension registry without requiring manual deployment or database administration.