eclipse-che / che

Kubernetes based Cloud Development Environments for Enterprise Teams
http://eclipse.org/che
Eclipse Public License 2.0
6.98k stars 1.19k forks source link

Changes needed to use upstream Che on che.openshift.io #13265

Closed l0rd closed 3 years ago

l0rd commented 5 years ago

Motivations

The goal

Reuse the same codebase for upstream che and rh-che

How are we going to achieve that

We should consider making some changes to the following upstream areas (@ibuziuk please help, I am pretty sure I am forgetting something):


Note 1: This is not a Che 7 GA task and should not be included in current sprints. Let's first evaluate how much work is needed and then prioritize it

Note 2: We should not take into consideration Che 6 legacy components (e.g. stacks) but only Che 7 ones

Note 3: To deploy upstream Che on openshift.io we will need changes on openshift.io platform side as well but this issue is not about those. This issue is about the changes Che side

ibuziuk commented 5 years ago

In order to have a more productive discussion please find a simplified schematic component diagram of che.openshift.io:

image

Challenges:

l0rd commented 5 years ago

@ibuziuk good points on telemetry and stacks. I understand the rest as well but this issue is to be able to unify rh-che and upstream Che. It's not about replacing fabric8-proxy or fabric8-auth with some new Che capabilities.

In particular:

These may be further steps but for now the goal is really to unify upstream che and rh-che. Does that makes sense?

ibuziuk commented 5 years ago

@l0rd this does make sense. So, if I understand it correctly the idea is that che would be deployed on dsaas right from the upstream repo (similar che-plugin-registry is deployed as-is to dsaas via https://github.com/eclipse/che-plugin-registry/tree/master/openshift)

amisevsk commented 5 years ago

I'm not so sure about unifying rh-che (with its openshift.io-specific changes) with the general upstream. For example, making Che support fabric8-oso-proxy means adding code related to our specific use case (the proxy does not follow a standard API). Unless we can make a case that fabric8-proxy is the way to run Che multicluster, it should not be included.

Rh-che has been made to fit into the specific environment we have on openshift.io; while adding these changes to upstream Che may make development easier for those of us working on rh-che, it also adds a fair bit of code that would be entirely irrelevant in the general case.

I don't believe downstream-specific modifications belong in the main Che repo. Che should not privilege our specific deployment requirements over others.

l0rd commented 5 years ago

@amisevsk I agree with you and that's not about altering upstream Che to fit osio but rather:

  1. making osio as standard as possible
  2. improve upstream Che to work perfectly as it is in a prod k8s environment

Even if this issue is about the second point we need to work on the first point as well.

ibuziuk commented 5 years ago

Areas that would be easy to move:

Areas that would be problematic to move to upstream:

[1] https://github.com/redhat-developer/rh-che/blob/master/plugins/fabric8-multi-tenant-manager/src/main/java/com/redhat/che/multitenant/tenantdata/UserCheTenantData.java [2] https://github.com/redhat-developer/rh-che/blob/master/plugins/fabric8-multi-tenant-manager/src/main/java/com/redhat/che/multitenant/Fabric8AuthServiceClient.java [3] https://github.com/redhat-developer/rh-che/blob/master/plugins/fabric8-multi-tenant-manager/src/main/java/com/redhat/che/multitenant/Fabric8WorkspaceEnvironmentProvider.java [4] https://github.com/redhat-developer/rh-che/blob/master/plugins/fabric8-multi-tenant-manager/src/main/java/com/redhat/che/multitenant/GuessedSubject.java

che-bot commented 3 years ago

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

ibuziuk commented 3 years ago

I believe we can close this issue as won't fix