Skip to content
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

Add the ability for an administrator to specify multiple external devfile registries #19781

Closed
sleshchenko opened this issue May 11, 2021 · 1 comment
Labels
area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator kind/enhancement A feature request - must adhere to the feature request template. new&noteworthy For new and/or noteworthy issues that deserve a blog post, new docs, or emphasis in release notes severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@sleshchenko
Copy link
Member

sleshchenko commented May 11, 2021

Is your enhancement related to a problem? Please describe.

Prehistory: we want to have the ability to enable Community Devfile Registry on CodeReadyWorkspaces #19271
Che Dashboard has the ability to use multiple devfile registries, and Dashboard does not care if it's managed by the current Che Operator or external one eclipse-che/che-dashboard#5.

The way we configure Che instance is CheCluster CR.
Currently, CheCluster CR allows to use internal devfile registry (managed by Che Operator):

spec:
  server:
    devfileRegistryURL: https://internal-devfile-registry.com # value is provisioned by Che Operator
    externalDevfileRegistry: false

or use external one: any URL,URLs administrator configures in the corresponding fields:

spec:
  server:
    devfileRegistryURL: https://my-registry1.com https://my-registry2.com
    externalDevfileRegistry: true

Describe the solution you'd like

To cover the usecase described above, we need to mix both - we need to have the ability to use internal registry + configure some external ones.
The CheCluster format I see to cover it is the following:

spec:
  server:
    devfileRegistryImage: "" # image used for internal devfile registry managed by Che Operator
    devfileRegistryImagePullPolicy: "Always"
    externalDevfileRegistries:
      - url: https://explicit-link-to-external-devfile-registry-1
      - url: https://explicit-link-to-external-devfile-registry-2" # additional devfile registries. Note that internal devfile registry is not supposed to be here.
status:
  devfileRegistryUrl: "https://che-devfile-registry.ingress-domain/" # note that previously, Che Operator stored internal registry URL in spec.server.devfileRegistryURL but I believe the status is better for such stuff, which should not be configured by user.

Describe alternatives you've considered

Additional context

Not sure that it's important but DevSandbox(The first place where we're going to use this feature) is going to use single-host.

As a possible workaround for DevSandbox until it's not resolved:

  1. CRW is already deployed and available.
  2. Provision community registry in CheCluster CR:
server:
    devfileRegistryURL: https://explicit-link-to-the-internal-devfile-registry https://explicit-link-to-external-devfile-registry
    externalDevfileRegistry: true

note: https://explicit-link-to-the-internal-devfile-registry is provisioned by CRW on phase 1, it needs to be just kept
3. Dashboard should use both of registries.
4. The internal registry becomes unmanaged, after upgrade to newer version the configuration must be redone manually, so revert to spec.server.externalDevfileRegistry: false. And after CRW operator did work and updated devfile registry deployment, go to step 2.

Release Notes Text

Administrators are able to specify multiple external devfile registries in the CheCluster Kubernetes Custom Resource.

@sleshchenko sleshchenko added kind/enhancement A feature request - must adhere to the feature request template. area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator labels May 11, 2021
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label May 11, 2021
@tolusha tolusha added sprint/next severity/P1 Has a major impact to usage or development of the system. labels May 11, 2021
@ibuziuk ibuziuk removed the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label May 11, 2021
@tolusha tolusha mentioned this issue May 24, 2021
47 tasks
@sleshchenko sleshchenko added this to the 7.32 milestone May 26, 2021
@sleshchenko
Copy link
Member Author

As we discussed on the Deploy Team cabal:

  1. instead of configuring external registries as space-separated list of URLs, we introduce list of object that has URL:
spec:
  server:
    devfileRegistryImage: "" # image used for internal devfile registry managed by Che Operator
    devfileRegistryImagePullPolicy: "Always"
    externalDevfileRegistries:
      - url: https://explicit-link-to-external-devfile-registry-1
      - url: https://explicit-link-to-external-devfile-registry-2

that allows us to extend it with titles and warnings, if we decide it should be configured separately for each devfile registry, but not on the common level on devfile tags.
2. We're not sure users have any need to disable internal plugin registry, if they want to have custom registry - they just need to build and configure devfileRegistryImage. So, we think it makes sense consider not introducing devfileRegistryEnabled, since it's a new field, which may be overhead. If we see the case for it - we can easily enable it any time. P.S. But we should be careful with it since it's a functional gap, since before we had an ability like to replace default devfile registry with external ones (one from surge from github)

@tolusha tolusha closed this as completed May 28, 2021
@l0rd l0rd added the new&noteworthy For new and/or noteworthy issues that deserve a blog post, new docs, or emphasis in release notes label Jun 1, 2021
@l0rd l0rd changed the title [che-operator] Add an ability to enable additional external devfile registry Add the ability for an administrator to specify multiple external devfile registries Jun 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator kind/enhancement A feature request - must adhere to the feature request template. new&noteworthy For new and/or noteworthy issues that deserve a blog post, new docs, or emphasis in release notes severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

5 participants