Eclipse Che is a Kubernetes-native IDE and developer collaboration platform. It provides:

  • Centralized developer environments running on Kubernetes

  • Multi-container workspaces for each developer that can be replicated with a single click through Eclipse Che factories

  • Pre-built stacks with the ability to create custom stacks for any language or runtime

  • Enterprise integration via Keycloak for AD/LDAP

  • Browser-based IDEs; integration with Che-Theia or any other web IDE (like Jupyter)

  • Support of most recent tooling protocols: Language Server Protocol, Debug Adapter Protocol

  • Plug-in mechanism compatible with Visual Studio Code extensions

  • An SDK for creating custom cloud developer platforms

Getting started with Che

Get started with Eclipse Che by:

Joining the community

Interested in joining the community? Join us on the following channels:

What is Eclipse Che

Eclipse Che is a Kubernetes-native IDE and developer collaboration platform.

As an open-source project, the core goals of Eclipse Che are to:

  • Accelerate project and developer onboarding: As a zero-install development environment that runs in your browser, Eclipse Che makes it easy for anyone to join your team and contribute to a project.

  • Remove inconsistency between developer environments: No more: “But it works on my machine.” Your code works exactly the same way in everyone’s environment.

  • Provide built-in security and enterprise readiness: As Eclipse Che becomes a viable replacement for VDI solutions, it must be secure and it must support enterprise requirements, such as role-based access control and the ability to remove all source code from developer machines.

To achieve those core goals, Eclipse Che provides:

  • Workspaces: Container-based developer workspaces providing all the tools and dependencies needed to code, build, test, run, and debug applications.

  • Browser-based IDEs: Bundled browser-based IDEs with language tooling, debuggers, terminal, VCS integration, and much more.

  • Extensible platform: Bring your own IDE. Define, configure, and extend the tools that you need for your application by using plug-ins, which are compatible with Visual Studio Code extensions.

  • Enterprise Integration: Multi-user capabilities, including Keycloak for authentication and integration with LDAP or AD.

Workspace model

Che defines the workspace to be the project code files and all of their dependencies necessary to edit, build, run, and debug them. Che treats the IDE and the development runtime as dependencies of the workspace. These items are embedded and always included with the workspace. This differentiates Che from classical workspace definitions, which may include the project code, but require the developer to bind their IDE to their workstation and use it to provide a runtime locally.

Workspaces are isolated from one another and are responsible for managing the lifecycle of their components.

Developers using Eclipse Che use their containers directly in their developer workspaces. Che workspaces are Kubernetes pods, which allow to replicate the application runtimes (and its microservices) used in production and provide a “dev mode” layer on top of those, adding intellisense and IDE toolings.

Browser-based IDEs

Eclipse Che provides browser-based IDEs for its workspaces. The default IDE is built on Theia, and it has the following capabilities:

  • Monaco-based editor: A fast and responsive editor, CodeLens

  • Language Server Protocol: Language tooling

  • Debug Adapter Protocol: Debugger tooling

  • Command palette: Do everything from your keyboard

  • Task support: Tasks from Visual Studio Code are extended and support Che commands

  • Embedded preview: Preview your application directly from the IDE, including Markdown preview

  • Customizable layout: Adapt the layout using drag and drop

  • And more: Outline view, search, Git

Different IDEs for different use cases

In Eclipse Che, the IDE is completely decoupled, so that it is possible to plug a different IDE into Che workspaces:

  • It can be based on Eclipse Theia (as it is a framework to build a web IDE), such as Sirius:

  • It can be a completely different solution, such as Jupyter or Eclipse Dirigible:

For situations in which the default IDE does not cover the use cases of the users or to use a dedicated tool instead of an IDE.

Extensible platform

Eclipse Che is a great platform to build cloud-native tools, and it provides a strong extensibility model with an enjoyable developer experience for contributors.

Eclipse Che is extensible in different ways:

  • Plug-ins to add capabilities to the IDE. Che-Theia plug-ins rely on APIs compatible with Visual Studio Code. Plug-ins are isolated and provide their own dependencies packaged in containers.

  • Stacks to create pre-configured Che workspaces with a dedicated set of tools.

  • Alternative IDEs to provide specialized tooling within Eclipse Che. Build your own, based on Eclipse Theia, or pick existing ones like Jupyter.

  • Marketplace (soon) to easily distribute tools and custom IDEs, which can be tried online, to users and communities.

Eclipse Che uses Che-Theia as its default browser-based IDE. Che-Theia provides a framework to build web IDEs. It is built in TypeScript and gives contributors a programming model that is flexible, relies on state-of-the-art tooling protocols, and makes it faster to build new tools.

In Eclipse Che, the dependencies needed for the tools running in the user’s workspace are available when needed. This means that a Che-Theia plug-in provides its dependencies, its back-end services (which could be running in a sidecar container connected to the user’s workspace), and the IDE UI extension. Che packages all these elements together, so that the user does not have to configure different tools together.

Visual Studio Code extension compatibility

Eclipse Che rationalizes the effort for a contributor who wants to build a plug-in and distribute it to different developer communities and tools. For that purpose, Eclipse Che features a plug-in API compatible with extension points from Visual Studio Code. As a result, it is easy to bring an existing plug-in from Visual Studio Code into Eclipse Che. The main difference is in the way the plug-ins are packaged. On Eclipse Che, plug-ins are delivered with their own dependencies in their own container.

Enterprise integration

  • Eclipse Che includes Keycloak to handle authentication and security. It allows integration with any single sign-on (SSO), and with Active Directory or LDAP.

  • Every Eclipse Che user gets a centralized developer workspace that can be easily defined, administered, and managed.

  • As a Kubernetes-native application, Eclipse Che provides state-of-the-art monitoring and tracing capabilities, integrating with Prometheus and Grafana.

Che 7.3.3 known issues

This section contains information about selected existing issues known at the time of the Eclipse Che 7.3.3 release that affect user experience.

Permission denied errors when installing Eclipse Che in the default namespace

When installing Eclipse Che in the default namespace, the proper security contexts and file permissions are not set appropriately, causing the installation to fail. Users should avoid installing Eclipse Che in the default namespace and instead create a new namespace, for example, che, to contain the Eclipse Che installation.

Language-support plug-ins potential malfunction

Some language-support plug-ins (in particular Java, Python, and C#) may experience issues detecting newly cloned projects. When experiencing problems with features such as code assist, try refreshing the page in the browser (press F5).

Bright fonts are not set in dark theme in Firefox

When using the Eclipse Che dark theme in Firefox, workspace content is rendered using a black-color font. This makes the content unreadable.

Workspace start failures when StorageClass configured with volumeBindingMode set to WaitForFirstConsumer on OpenShift older than 4.2

When Eclipse Che is installed on OpenShift older than 4.2, and StorageClass is configured with the volumeBindingMode property set to WaitForFirstConsumer, workspaces may fail to start with a Unrecoverable event occured: 'FailedScheduling' message.

To work around the issue, use one the following:

  • Reconfigure Eclipse Che and remove FailedScheduling from the che.infra.kubernetes.workspace_unrecoverable_events property value (in the che.properties file or deployment configuration)

  • Upgrade the OpenShift installation to version 4.2 or higher.

Tags: