-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Multi-Users for Che #5362
Comments
Based upon the discussion on the planning session today, I'd like to adjust the language slightly. You said that "From a technical perspective, it would be a separate assembly inside Che". While it could be a separate assembly that does pose certain challenges with documentation and our marketing distribution. So, I think we agreed that we'd evaluate / investigate both a configuration-based approach to activating this AND also a custom assembly. But for marketing purposes, to the degree that we can keep it in a single assembly, there are other types of advantages. |
@TylerJewell Well, what we discussed is that we should not avoid any possible manner. To be more clear.
There are a lot of combinations of such and we suppose third parties to be able to contribute theirs components as well (good docs needed of course) so what from your marketing perspective mean to keep it in a single assembly using configuration-based approach? |
Actually, the more I think about it, our concepts may be compatible. The concept of an "assembly" in the Che sense is different from the concept of an installation given the unique qualities of our installer. So it may be possible for us to have 1..n custom assemblies pre-built and for us to have a single installer image that knows how to install different configurations of Che (using different assemblies). Our installer for Che is a stateless Docker container that in turn installs a Since we have the ability to have different puppet templates that define different composable infrastructures, we could allow for different properties in che.env to activate different Che assemblies. The default assembly would: If a user modifies the right properties in the In these two scenarios, the CLI would need to be smart enough to use two different custom assemblies. Each custom assembly would have the elements in the server necessary to support the configuration provided. So yes, we can have different custom assemblies, but still a single installer & |
Today I've discussed folder structure what we are going to have with @gazarenkov @riuvshin And we have such proposal V1
Roman's variant
@TylerJewell wdyt? |
FYI, from an external user POV, the layout seems complicated to understand what is proposing what |
Well, I actually disagree with using "small_group" in any place... In my mind "small group" means something minimalistic and lightweight while in that case "small group" means that this is EXTENDED CHE with DB, and stuff. I would like something sdk (very basic stuff single container) and CHE where CHE is fully powered CHE. |
I would not say "sdk" name is good one. In this case I would expect something dedicatedly useful for plugin/extensions developers, not sure it is the case though. I would better propose the name as the offering - first for "individual", second for "small group" (yes, it is rather marketing oriented, but it is what it is :) ) |
small group let me more thinking of small group of features --> smaller than the sdk which is the opposite |
I have two things to introduce:
|
@tyler is that "enterprise" name would match as well ? |
I thought about the use of the term "enterprise", and I chose to avoid that as I felt that it attached a number of concepts related to support, infrastructure, and configuration that we may or may not support with this particular packaging. Or, we may only want to support them if you have Che on OpenShift, which is quite different from Che on Docker. So I think the term is a bit ambiguous as it could mean different things to different people. |
Ok |
"individual" and "workgroup" - good for me |
See no problem having CLI as a part of each assembly, why not if it is required? |
We could have a structured tiering:
But I think #2 is an anti-pattern to how we intended the CLI to operate. |
I do not understand what does "A top-level CLI that has master che.env. Configuration values in this file may launch different assemblies based upon how admin configures it" mean. I would imagine assembly without mandatory CLI at all, but if assembly requires CLI why not to include it? |
I think the confusion you are running into can be solved by learning a small amount on how the CLI runs. The CLI is a stateless, temporary container that imports a configuration from a set of files in an installation directory. It then uses that configuration to define a set of puppet manifests that are executed to generate a "configuration instance" that can run Che itself. Different properties in The configuration instances include docker compose and other scripts necessary to start and stop Che. Since we can generate different configuration instances, those instances can generate different kinds of compose scripts that reference different Docker images. So, we can look at the admin point of view of which properties we want on / off, and then based upon those properties we can generate compose scripts that choose to launch the single container version (with one assembly in it) or the a multi-container version with postgres, keycloak, and other software in different images / assemblies. |
OK, indeed, I misunderstand where /cli folder is placed so what inside of it. The only thing - I'd like to rename "assembly" on something more specific like "docker-assembly" |
It might help to define "assembly" a little bit. Is an assembly just the custom tomcat packaging that runs ws-master? Or, do we want to define an assembly to be the custom WAR, tomcat, and Docker image that packages it all together for execution? |
@TylerJewell just to make it clear for me which way to go on CLI and 2 assemblies. We have following options: 1 separate CLI for multiuser che / separate che-server image 2 single CLI with ability to switch CHE assemblies (that will add some difficulties for simple single user che all images for che multi server will be pulled and maybe some other side effects) che-server: I personally think more about CLI 1) because it much more flexible and it will be easy if we will need add something more it will be easier to extend and with single CLI it could be nightmare of workarounds to make it work same way for both completely different products. And to me it is much easier to understand what you are actually using because you use different images for different products. |
2.2 - I thought we go in this way. |
@skabashnyuk sorry I messed it up, now edited. THere is to topic |
Hi @riuvshin - I think what we said was 2.2:
On the comment for how to tag images, is that a best practice? I thought that labels should only apply to version labels? So how would you have handle version 6.1 of the multi-user image? |
@TylerJewell got it.
about tags it was just a thoughts, we will go with different images. |
@skabashnyuk I've added the following item to the epic:
|
@l0rd can you explain how they are related? |
@skabashnyuk that's a problem that we have noticed when keycloak authentication is enabled in rh-che. Since we don't want to continue fixing keycloak related issues on rh-che repository I've linked the issue here. Fixing it as part of this epic seemed the right thing to do. |
Adding authentification - is a very frequent request from Eclipse Che community. We think that Keycloak is a rich framework that can provide many interesting features http://www.keycloak.org/about.html
From a technical perspective, it would be a separate assembly inside of Che. We don't want to remove an ability for plugin developers to have an easy and simple assembly without authentification and any heavy components for easy testing of their work. We might reuse the same approach like we did with "single port" feature. When changing some specific parameter on configuration will change the number of containers that would be running. In this case, Keycloak will be running as a separate container.
Frame
objects is not compatible with the Keycloak integration The use of GWTFrame
objects is not compatible with the Keycloak integration #5745Run QA in multiuser branch and figure out what should be done to adapt QA to multiuser branch #5930
The text was updated successfully, but these errors were encountered: