feat: Manage OpenVSX as Che operand#2130
Merged
Merged
Conversation
|
Skipping CI for Draft Pull Request. |
Contributor
|
Hi! I'm che-ai-assistant — I help with your pull requests. Available commands:
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Closed
5 tasks
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
tolusha
reviewed
Jun 8, 2026
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
Signed-off-by: Anatolii Bazko <abazko@redhat.com>
…2151) * Route OpenVSX through the Che gateway instead of a dedicated Ingress Replace the dedicated Ingress/Route (openvsx-<cheHost>) with a Traefik gateway path (<cheHost>/openvsx), eliminating the extra DNS record and TLS certificate per deployment. Use Spring Boot server.servlet.context-path so the server natively serves under /openvsx without StripPrefix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Set resource limits for the OpenVSX publisher job pod The publisher container had no resource requests or limits, which could lead to scheduling issues and OOM kills when uploading large VSIXes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Enable forward-headers-strategy for OpenVSX behind Traefik Spring Boot needs to process X-Forwarded-Proto/Host headers from the reverse proxy so API response URLs use the correct external scheme and host instead of internal http://host:8080. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update CSV bundle version to 7.120.0-1030.next Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Reset reconciler state on disable and revert publisher resource limits Reset databaseProvisioned and extensionsVersion flags when the OpenVSX operand is disabled, so that re-enabling properly re-runs provisioning jobs. Remove explicit resource limits from the publisher job pod. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Prevent publisher Job failures from timing and label conflicts - Add isServerReady() guard to ensure the publisher Job is only created after the OpenVSX server deployment has available replicas - Use distinct labels for publisher Job pods so the openvsx-server Service does not route traffic to non-server pods - Move syncOpenVSXURLStatus before extensions sync to match the old reconciler ordering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * update openvsx server expose Signed-off-by: Valerii Svydenko <vsvydenk@redhat.com> * update openvsx to v1.0.1 Signed-off-by: Valerii Svydenko <vsvydenk@redhat.com> * Log error on legacy Ingress cleanup instead of discarding it Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix build Signed-off-by: Valerii Svydenko <vsvydenk@redhat.com> * Remove unnecessary legacy Ingress cleanup There was no prior Ingress-based OpenVSX deployment to migrate from. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Signed-off-by: Valerii Svydenko <vsvydenk@redhat.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Valerii Svydenko <vsvydenk@redhat.com>
tolusha
approved these changes
Jul 9, 2026
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: svor, tolusha The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Contributor
|
@svor |
Contributor
Author
|
/che-ai-assistant generate-che-doc |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
enabled via
spec.components.openVSX.enablehttps://<cheHost>/openvsxopenvsx-extensionsConfigMapspec.components.openVSX.server.claimSize)openvsx-server-configConfigMap user-editable with automatic pod rollout onchanges
Resources created when enabled
(extensions list)
All resources are cleaned up when
openVSX.enableis set to false.Screenshot/screencast of this PR
What issues does this PR fix or reference?
https://issues.redhat.com/browse/CRW-10323
How to test this PR?
OpenShift
or
on Minikube
Common Test Scenarios
Click me
Verification Steps for OpenVSX Operand
Prerequisites
ocCLI logged in1. Enable the internal OpenVSX registry
oc patch checluster eclipse-che -n eclipse-che --type merge \ -p '{"spec":{"components":{"openVSXRegistry":{"enable":true}}}}'2. Verify all pods are running
oc get pods -n eclipse-che | grep openvsxExpected:
openvsx-databaseandopenvsx-serverpods inRunningstate (1/1).3. Verify the database provision job completed
Expected:
COMPLETIONS 1/1. The job auto-deletes after 60s, so check events if it's gone:oc get events -n eclipse-che --field-selector reason=Completed | grep provision4. Verify tokens were inserted into the database
Expected: two rows with
active = t.5. Verify the status URL uses the gateway path
oc get checluster eclipse-che -n eclipse-che -o jsonpath='{.status.openVSXURL}'Expected:
https://<cheHost>/openvsx6. Verify the gateway route works
Expected: JSON response with version info (e.g.,
"version":"v1.0.1").7. Verify the WebUI loads
Open
https://<cheHost>/openvsxin a browser. The OpenVSX SPA should load with working navigation.8. Verify extension publishing
Edit the
openvsx-server-extensionsConfigMap by adding a list of extensions:Add the following under
data.extensions.list:Then check the publisher Job:
oc get pods -n eclipse-che | grep publisher oc logs -n eclipse-che -l app.kubernetes.io/component=openvsx-server-publisherExpected: extensions published successfully, no ECONNREFUSED or auth errors.
Open
https://<cheHost>/openvsxin a browser and verify the published extensions are visible.9. Verify new registry is used by workspace
Create any workspace and check available extensions in the Extensions view.
10. Verify disable cycle
oc patch checluster eclipse-che -n eclipse-che --type merge \ -p '{"spec":{"components":{"openVSXRegistry":{"enable":false}}}}'Verify all OpenVSX resources are cleaned up.
Restart the workspace and see that default openvsx.org registry is used
11. Verify custom credentials secret
Create a secret with all 7 required keys before enabling OpenVSX:
Enable OpenVSX with the custom secret:
oc patch checluster eclipse-che -n eclipse-che --type merge \ -p '{"spec":{"components":{"openVSXRegistry":{"enable":true,"credentialsSecretName":"my-openvsx-credentials"}}}}'Verify the components use the custom secret:
Expected: both deployments reference
my-openvsx-credentials, and PATs are inserted withactive = t.12. Verify server configuration can be patched via ConfigMap
The
openvsx-serverConfigMap holds the Spring Bootapplication.yml. The operator creates it withCreateIfNotExists, so manual edits are preserved. Editing the ConfigMap triggers an automatic server restart via theCONFIG_REVISIONmechanism.Edit the ConfigMap:
For example, change the registry version from
v1.0.1to2.Verify the server pod restarts automatically:
Expected: the
openvsx-serverpod restarts with the updated configuration. Verify the change took effect:PR Checklist
As the author of this Pull Request I made sure that:
Reviewers
Reviewers, please comment how you tested the PR when approving it.