/devworkspace-che-operator

Experimental operator that enhances devworkspaces with che-specific functionality.

Primary LanguageGoEclipse Public License 2.0EPL-2.0

Che Manager Controller for DevWorkspaces

Go tests Codecov

An experimental operator that enhances Devworkspaces with Che-specific functionality.

This operator brings support for single-host mode into the devworkspace picture. It is in charge of maintaining and configuring the HTTP gateway (using Traefik) that serves as the main entrypoint to the workspaces and dashboard.

It is also in charge of reconfiguring the gateway to route the traffic to workspace endpoints as requested during the workspace startup.

In the future, it is going to be also responsible for authentication of users accessing the Che dashboard and devworkspaces (either in the same executable or separately).

Controllers

There are 2 controllers in this operator. One is in charge of maintaining the state of the Che-specific infrastructure, the other is in charge of exposing the workspace endpoints.

Che Manager Controller

This controller is in charge of the Che-specific infrastructure that is described using the CheManager custom resource. The resource describes the desired state of the Che infra - the routing type (singlehost or multihost), the root hostname for the entrypoints, etc.

Workspace Routing Controller

This controller is in charge of exposing the workspace endpoints by reconciling the WorkspaceRouting objects that are themselves managed by the main devworkspace operator. For this controller to handle the endpoints of a workspace, the DevWorkspace object describing the workspace needs to have the routingClass property set to che.

Build

To build the code, just run:

make

There are more things you can do with make. To figure out what is available, run:

make help