Skip to content

Commit c427c84

Browse files
svorclaude
andcommitted
feat: Disable embedded OpenVSX when operand is enabled
When OpenVSX.Enable=true, the managed operand provides the registry. Disable the embedded OpenVSX in the plugin registry and override the dashboard's OpenVSX URL with Status.OpenVSXURL. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4b17456 commit c427c84

10 files changed

Lines changed: 68 additions & 41 deletions

api/v2/checluster_types.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ type CheClusterComponents struct {
282282
Dashboard Dashboard `json:"dashboard"`
283283
// OpenVSX registry configuration.
284284
// +optional
285-
// +kubebuilder:default:={enable: false}
285+
// +kubebuilder:default:={enable: false}
286286
OpenVSX OpenVSX `json:"openVSX"`
287287
// Kubernetes Image Puller configuration.
288288
// +optional
@@ -445,6 +445,8 @@ type PluginRegistry struct {
445445
// +optional
446446
ExternalPluginRegistries []ExternalPluginRegistry `json:"externalPluginRegistries,omitempty"`
447447
// Open VSX registry URL. If omitted an embedded instance will be used.
448+
// Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
449+
// in that case the URL from status.openVSXURL is used instead.
448450
// +optional
449451
OpenVSXURL *string `json:"openVSXURL,omitempty"`
450452
}
@@ -1209,9 +1211,12 @@ func (c *CheCluster) IsCheFlavor() bool {
12091211
return defaults.GetCheFlavor() == constants.CheFlavor
12101212
}
12111213

1212-
// IsEmbeddedOpenVSXRegistryConfigured returns true if the Open VSX Registry is configured to be embedded
1213-
// only if only the `Spec.Components.PluginRegistry.OpenVSXURL` is empty.
1214+
// IsEmbeddedOpenVSXRegistryConfigured returns true if the Open VSX Registry is configured to be embedded.
1215+
// Returns false when the managed OpenVSX operand is enabled or when an external OpenVSX URL is set.
12141216
func (c *CheCluster) IsEmbeddedOpenVSXRegistryConfigured() bool {
1217+
if c.IsOpenVSXOperandEnabled() {
1218+
return false
1219+
}
12151220
if c.Spec.Components.PluginRegistry.OpenVSXURL != nil {
12161221
return *c.Spec.Components.PluginRegistry.OpenVSXURL == ""
12171222
}

bundle/next/eclipse-che/manifests/che-operator.clusterserviceversion.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ metadata:
8686
categories: Developer Tools
8787
certified: "false"
8888
containerImage: quay.io/eclipse/che-operator:next
89-
createdAt: "2026-06-11T13:21:22Z"
89+
createdAt: "2026-06-12T17:18:53Z"
9090
description: A Kube-native development solution that delivers portable and collaborative
9191
developer workspaces.
9292
features.operators.openshift.io/cnf: "false"
@@ -108,7 +108,7 @@ metadata:
108108
operatorframework.io/arch.amd64: supported
109109
operatorframework.io/arch.arm64: supported
110110
operatorframework.io/os.linux: supported
111-
name: eclipse-che.v7.119.0-1018.next
111+
name: eclipse-che.v7.119.0-1019.next
112112
namespace: placeholder
113113
spec:
114114
apiservicedefinitions: {}
@@ -1166,7 +1166,7 @@ spec:
11661166
name: openvsx
11671167
- image: quay.io/sclorg/postgresql-16-c9s:20260319
11681168
name: openvsx-postgres
1169-
version: 7.119.0-1018.next
1169+
version: 7.119.0-1019.next
11701170
webhookdefinitions:
11711171
- admissionReviewVersions:
11721172
- v1

bundle/next/eclipse-che/manifests/org.eclipse.che_checlusters.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12149,9 +12149,9 @@ spec:
1214912149
type: boolean
1215012150
type: object
1215112151
openVSX:
12152-
description: |-
12153-
OpenVSX registry configuration.
12154-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12152+
default:
12153+
enable: false
12154+
description: OpenVSX registry configuration.
1215512155
properties:
1215612156
database:
1215712157
description: Database configuration for OpenVSX.
@@ -19856,8 +19856,10 @@ spec:
1985619856
type: object
1985719857
type: array
1985819858
openVSXURL:
19859-
description: Open VSX registry URL. If omitted an embedded
19860-
instance will be used.
19859+
description: |-
19860+
Open VSX registry URL. If omitted an embedded instance will be used.
19861+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19862+
in that case the URL from status.openVSXURL is used instead.
1986119863
type: string
1986219864
type: object
1986319865
type: object

config/crd/bases/org.eclipse.che_checlusters.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12082,9 +12082,9 @@ spec:
1208212082
type: boolean
1208312083
type: object
1208412084
openVSX:
12085-
description: |-
12086-
OpenVSX registry configuration.
12087-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12085+
default:
12086+
enable: false
12087+
description: OpenVSX registry configuration.
1208812088
properties:
1208912089
database:
1209012090
description: Database configuration for OpenVSX.
@@ -19752,8 +19752,10 @@ spec:
1975219752
type: object
1975319753
type: array
1975419754
openVSXURL:
19755-
description: Open VSX registry URL. If omitted an embedded
19756-
instance will be used.
19755+
description: |-
19756+
Open VSX registry URL. If omitted an embedded instance will be used.
19757+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19758+
in that case the URL from status.openVSXURL is used instead.
1975719759
type: string
1975819760
type: object
1975919761
type: object

deploy/deployment/kubernetes/combined.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12103,9 +12103,9 @@ spec:
1210312103
type: boolean
1210412104
type: object
1210512105
openVSX:
12106-
description: |-
12107-
OpenVSX registry configuration.
12108-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12106+
default:
12107+
enable: false
12108+
description: OpenVSX registry configuration.
1210912109
properties:
1211012110
database:
1211112111
description: Database configuration for OpenVSX.
@@ -19773,8 +19773,10 @@ spec:
1977319773
type: object
1977419774
type: array
1977519775
openVSXURL:
19776-
description: Open VSX registry URL. If omitted an embedded
19777-
instance will be used.
19776+
description: |-
19777+
Open VSX registry URL. If omitted an embedded instance will be used.
19778+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19779+
in that case the URL from status.openVSXURL is used instead.
1977819780
type: string
1977919781
type: object
1978019782
type: object

deploy/deployment/kubernetes/objects/checlusters.org.eclipse.che.CustomResourceDefinition.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12098,9 +12098,9 @@ spec:
1209812098
type: boolean
1209912099
type: object
1210012100
openVSX:
12101-
description: |-
12102-
OpenVSX registry configuration.
12103-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12101+
default:
12102+
enable: false
12103+
description: OpenVSX registry configuration.
1210412104
properties:
1210512105
database:
1210612106
description: Database configuration for OpenVSX.
@@ -19768,8 +19768,10 @@ spec:
1976819768
type: object
1976919769
type: array
1977019770
openVSXURL:
19771-
description: Open VSX registry URL. If omitted an embedded
19772-
instance will be used.
19771+
description: |-
19772+
Open VSX registry URL. If omitted an embedded instance will be used.
19773+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19774+
in that case the URL from status.openVSXURL is used instead.
1977319775
type: string
1977419776
type: object
1977519777
type: object

deploy/deployment/openshift/combined.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12103,9 +12103,9 @@ spec:
1210312103
type: boolean
1210412104
type: object
1210512105
openVSX:
12106-
description: |-
12107-
OpenVSX registry configuration.
12108-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12106+
default:
12107+
enable: false
12108+
description: OpenVSX registry configuration.
1210912109
properties:
1211012110
database:
1211112111
description: Database configuration for OpenVSX.
@@ -19773,8 +19773,10 @@ spec:
1977319773
type: object
1977419774
type: array
1977519775
openVSXURL:
19776-
description: Open VSX registry URL. If omitted an embedded
19777-
instance will be used.
19776+
description: |-
19777+
Open VSX registry URL. If omitted an embedded instance will be used.
19778+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19779+
in that case the URL from status.openVSXURL is used instead.
1977819780
type: string
1977919781
type: object
1978019782
type: object

deploy/deployment/openshift/objects/checlusters.org.eclipse.che.CustomResourceDefinition.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12098,9 +12098,9 @@ spec:
1209812098
type: boolean
1209912099
type: object
1210012100
openVSX:
12101-
description: |-
12102-
OpenVSX registry configuration.
12103-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12101+
default:
12102+
enable: false
12103+
description: OpenVSX registry configuration.
1210412104
properties:
1210512105
database:
1210612106
description: Database configuration for OpenVSX.
@@ -19768,8 +19768,10 @@ spec:
1976819768
type: object
1976919769
type: array
1977019770
openVSXURL:
19771-
description: Open VSX registry URL. If omitted an embedded
19772-
instance will be used.
19771+
description: |-
19772+
Open VSX registry URL. If omitted an embedded instance will be used.
19773+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19774+
in that case the URL from status.openVSXURL is used instead.
1977319775
type: string
1977419776
type: object
1977519777
type: object

helmcharts/next/crds/checlusters.org.eclipse.che.CustomResourceDefinition.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12098,9 +12098,9 @@ spec:
1209812098
type: boolean
1209912099
type: object
1210012100
openVSX:
12101-
description: |-
12102-
OpenVSX registry configuration.
12103-
When enabled, the operator manages an OpenVSX server and PostgreSQL database.
12101+
default:
12102+
enable: false
12103+
description: OpenVSX registry configuration.
1210412104
properties:
1210512105
database:
1210612106
description: Database configuration for OpenVSX.
@@ -19768,8 +19768,10 @@ spec:
1976819768
type: object
1976919769
type: array
1977019770
openVSXURL:
19771-
description: Open VSX registry URL. If omitted an embedded
19772-
instance will be used.
19771+
description: |-
19772+
Open VSX registry URL. If omitted an embedded instance will be used.
19773+
Ignored when the managed OpenVSX operand is enabled (spec.components.openVSX.enable=true);
19774+
in that case the URL from status.openVSXURL is used instead.
1977319775
type: string
1977419776
type: object
1977519777
type: object

pkg/deploy/dashboard/deployment_dashboard.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ func (d *DashboardReconciler) getDashboardDeploymentSpec(ctx *chetypes.DeployCon
122122
// Mount CheCluster default values
123123
envVars = append(envVars, utils.GetEnvsByRegExp("^CHE_DEFAULT_SPEC.*")...)
124124

125+
if ctx.CheCluster.IsOpenVSXOperandEnabled() && ctx.CheCluster.Status.OpenVSXURL != "" {
126+
envVars = append(envVars,
127+
corev1.EnvVar{
128+
Name: "CHE_DEFAULT_SPEC_COMPONENTS_PLUGINREGISTRY_OPENVSXURL",
129+
Value: ctx.CheCluster.Status.OpenVSXURL},
130+
)
131+
}
132+
125133
if infrastructure.IsOpenShift() {
126134
envVars = append(envVars,
127135
corev1.EnvVar{

0 commit comments

Comments
 (0)