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 workspaces controllers
Figure 1. Che workspaces controller

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

Eclipse Che GitHub

Container image

eclipse/che-server

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

Che Dashboard

Container image

eclipse/che-server

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 DashboardCreate Workspace window. The devfile registry runs in a container and can be deployed wherever the user dashboard can connect.

For more information about devfile registry customization, see the Customizing devfile registry section.

Source code

Che Devfile registry

Container image

quay.io/eclipse/che-devfile-registry

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.

For more information about plug-in registry customization, see the Customizing plug-in registry section.

Source code

Che plug-in registry

Container image

quay.io/eclipse/che-plugin-registry

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

Che Postgres

Container image

eclipse/che-postgres

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

Che Keycloak

Container image

eclipse/che-keycloak

Tags: