Dirigible's Logodirigible

Running Dirigible on Che Workspaces


Eclipse Cloud Development - ONE team, ONE product

What is Eclipse Cloud Development (ECD) and why should I consider it?

ECD is a Top-Level Project (TLP) at Eclipse Foundation that provides open-source implementations of standards, services and frameworks that enable developing for and in the Cloud.

If you read the definition from the home page, you will be misled that this is a single product or at least a bunch of projects that are complementary to each other and can run simultaneously. That was not exactly true for several years, since the beginning of the ECD initiative itself. Apart from Flux, which was a collaboration development middleware framework, there were actually three major full-stack development platforms - Orion, Che and Dirigible, each of them with its own Web IDE and own backend. They were just three fancy vehicles parked in a special place in front of the Eclipse Foundation house. Each of them was built for its own purpose and based on its own technology stack, without so much care about the others. Good start - there was quite a big room for improvement. I remember the invaluable initial discussions we had in San Francisco more than three years ago. We tried to understand each other, which are the scenarios we want to cover, how to integrate them and how exactly to respond to the community, which required from us ONE single offering for their Cloud development needs.

The plan was just roughly defined, but all of us were eager to go for it and to collaborate much closely.

Time has passed, many things have changed. The projects matured by passing several reimplementation phases, clarified the goals and strategies, some acquisitions happened, new players appeared and even one was retired. Still, nobody has seen a prominent path forward for a much deeper integration.

Until now!

Eclipse Che as a center of gravity for Cloud development environments

In the last few months Che guys were working hard on the new approach for workspaces management for the 7.0 release. One of the major changes is that now they allow contributions not only for IDE plugins, but also for whole Web IDE stacks as separate Docker containers. This helped them to retire the old-fashioned GWT based Web IDE and replace it with the modern Monaco based one - Theia. This also gives an opportunity for other development platforms, leveraging different development models and covering different development scenarios to land on the Che planet as well. This was seen by all of us as a great opportunity to finally start a new age of integration, which can lead to a real consolidation of tools, models, and efforts.

Dirigible as a Che editor plugin

Following the new extensibility concept, first we had to create a plugin descriptor for Dirigible. It contains the metadata about the content you want to contribute - name, description, Docker image identifier, environment variables, etc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
version: 1.0.0
type: Che Editor
name: eclipse-dirigible
id: org.eclipse.che.editor.dirigible
title: Eclipse Dirigible as Editor for Eclipse Che
description: Eclipse Dirigible as Editor for Eclipse Che
icon: http://download.eclipse.org/dirigible/dirigible.png
endpoints:
 -  name: "dirigible"
    public: true
    targetPort: 8080
    attributes:
      protocol: http
      type: ide
containers:
 - name: eclipse-dirigible
   image: dirigiblelabs/dirigible-anonymous
   env:
       - name: DIRIGIBLE_REPOSITORY_LOCAL_ROOT_FOLDER
         value: /projects/dirigible/repository
       - name: DIRIGIBLE_REPOSITORY_LOCAL_ROOT_FOLDER_IS_ABSOLUTE
         value: true
       - name: DIRIGIBLE_REPOSITORY_SEARCH_ROOT_FOLDER
         value: /projects/dirigible/repository
       - name: DIRIGIBLE_REPOSITORY_SEARCH_ROOT_FOLDER_IS_ABSOLUTE
         value: true
       - name: DIRIGIBLE_CMS_INTERNAL_ROOT_FOLDER
         value: /projects/dirigible/cms
       - name: DIRIGIBLE_CMS_INTERNAL_ROOT_FOLDER_IS_ABSOLUTE
         value: true
       - name: DIRIGIBLE_DATABASE_H2_ROOT_FOLDER_DEFAULT
         value: /projects/dirigible/h2
       - name: DIRIGIBLE_DATABASE_H2_URL
         value: jdbc:h2:/projects/dirigible/h2
       - name: DIRIGIBLE_OPERATIONS_LOGS_ROOT_FOLDER_DEFAULT
         value: /usr/local/tomcat/logs
   volumes:
       - mountPath: "/projects"
         name: projects
   ports:
       - exposedPort: 8080
   memory-limit: "512M"

The GitHub repository containing the project is at: https://github.com/dirigiblelabs/dirigible-che-editor-plugin

Because the development environment is secured by OpenShift underneath, we use here the dirigiblelabs/dirigible-anonymous Docker image of Dirigible. Environment variables mainly redirect the file system dependent components of Dirigible to use the default /projects persistent folder.

We made several experiments with different sets of configurations, which we activated on the local Che registry by using the publish_plugin command.

publish_plugin dirigible-che-editor-plugin 1.0.0 che

Once we agreed how the first version of the plugin should look like, we had to add our plugin definition to the official Che registry metadata to be available by default on any standard Che environment. The process says we have to make a PR to the repository: https://github.com/eclipse/che-plugin-registry. The actual PR is: https://github.com/eclipse/che-plugin-registry/pull/54

What it does is adding the metadata of the given plugin under a predefined folder structure of the Che registry:

1
2
3
4
5
6
7
8
id: org.eclipse.che.editor.dirigible
version: 1.0.0
type: Che Editor
name: dirigible-che-editor-plugin
title: Eclipse Dirigible for Eclipse Che
description: Eclipse Dirigible as App Development Platform for Eclipse Che
icon: https://www.dirigible.io/img/logo/dirigible-logo.png
url: https://github.com/dirigiblelabs/dirigible-che-editor-plugin/releases/download/1.0.0/dirigible-che-editor-plugin.tar.gz

The document with all the needed steps presented by Gorkem and Florent at EclipseCon Europe 2018 can be found at: https://docs.google.com/document/d/1hFXTwzIU3MnqcciXH9E7xyUtEJRUeUuJ-e0JlEhTKjo/edit

Start Dirigible based workspace in Che

Since the beginning of this week you can go on the public Che environment on the OpenShift platform at: https://che.openshift.io/dashboard/#/workspaces and create a new workspace. In the configurations wizard, choose Che 7 dev stack and dirigible-che-editor-plugin.

Click the “Create” button and wait until the workspace gets created.

Note: You may need to wait a bit more the first time for Dirigible to get initialized, then refresh the browser.

What is the benefit of running Dirigible on Che

Now, there are two more options for running Dirigible - on the OpenShift Cloud platform and on the Eclipse Che workspace management platform.

So, what are the benefits then to run Dirigible on Che?

together we can do it!

Tweet