The workspaces controller manages the container-based development environments: Che workspaces. It can be deployed in the following distinct configurations:
-
Single-user: No authentication service is set up. Development environments are not secured. This configuration requires fewer resources. It is more adapted for local installations, such as when using Minikube.
-
Multi-user: This is a multi-tenant configuration. Development environments are secured, and this configuration requires more resources. Appropriate for cloud installations.
The different services that are a part of the Che workspaces controller are shown in the following diagram. Note that Keycloak and PostgreSQL are only needed in the multi-user configuration.
Che server
The Che server, also known as wsmaster, is the central service of the workspaces controller. It is a Java web service that exposes an HTTP REST API to manage Che workspaces and, in multi-user mode, Che users.
Source code |
|
Container image |
|
Che user dashboard
The user dashboard is the landing page of Eclipse Che. It is an Angular front-end application. Che users create, start, and manage Che workspaces from their browsers through the user dashboard.
Source code |
|
Container image |
|
Devfile registry
The Che devfile registry is a service that provides a list of Che stacks to create ready-to-use workspaces. This list of stacks is used in the Dashboard → Create Workspace window. The devfile registry runs in a container and can be deployed wherever the user dashboard can connect. The default registry: che-devfile-registry.openshift.io.
For more information about devfile registry customization, see the Customizing devfile registry section.
Source code |
|
Container image |
|
Che plug-in registry
The Che plug-in registry is a service that provides the list of plug-ins and editors for the Che workspaces. A devfile only references a plug-in that is published in a Che plug-in registry. It runs in a container and can be deployed wherever wsmaster connects. The default registry: che-plugin-registry.openshift.io.
For more information about plug-in registry customization, see the Customizing plug-in registry section.
Source code |
|
Container image |
|
Che and PostgreSQL
The PostgreSQL database is a prerequisite to configure Che in multi-user mode. The Che administrator can choose to connect Che to an existing PostgreSQL instance or let the Che deployment start a new dedicated PostgreSQL instance.
The Che server uses the database to persist user configurations (workspaces metadata, Git credentials). Keycloak uses the database as its backend to persist user information.
Source code |
|
Container image |
|
Che and Keycloak
Keycloak is a prerequisite to configure Che in multi-user mode. The Che administrator can choose to connect Che to an existing Keycloak instance or let the Che deployment start a new dedicated Keycloak instance.
The Che server uses Keycloak as an OpenID Connect (OIDC) provider to authenticate Che users and secure access to Che resources.
Source code |
|
Container image |
|