Docker, Vagrant and Kubernetes (OpenShift)

Lately Red Hat teams involved with Eclipse plug-ins have been working on improving the support for Eclipse in context of Container based development - specifically, Docker, Vagrant and Kubernetes (via OpenShift tooling).

I'll be speaking at EclipseCon 2016, in Reston, on the details of this, but this article will outline some of the reasoning behind this tooling and some of its highlights.

Docker

The Docker tooling provides various views to browse your images and containers as well as commands for build and launch images.




Docker Tooling was included in Eclipse Mars and have been improved and extended in both Mars.1 and upcoming Mars.2. One of the bigger ones are being able to have a Docker Run be managed as a Launch Configuration.




Meaning you can now share and save your favorite Docker launches in your workspace for repeated and optional shared usage.

Vagrant

Vagrant Tooling was added recently and is thus not as complete as the Docker tooling, but still a good start for future integrations.




It contains views for listing known vagrant boxes and running vm's; but even more it contains a small dropdown toolbar where you can start/stop Vagrant and open a text editor for editing your vagrant files.

OpenShift

OpenShift Tooling is part of JBoss Tools and can be installed on its own. The recent version of OpenShift tooling works with OpenShift 3 that is using 100% Docker images for running its containers.

OpenShift 3 is based on Kubernetes thus the OpenShift Tooling is using the Kubernetes API and its concepts + some OpenShift extensions.

The OpenShift tooling provides similar to Docker a view to explore your OpenShift/Kubernetes connection to start/stop applications - which consist of one or more Docker images/containers.




From within OpenShift Explorer you can launch, deploy and introspect your application.




It also allow you to use the Docker tooling to deploy a docker image to OpenShift.

Where to get it ?

Vagrant and Docker tooling are developed as part of Eclipse Linux Tools and part of Eclipse Mars releases. Note, that despite the overall project name the Docker and Vagrant tooling does run on other platforms, like Windows and OS X.

The OpenShift tooling is available from JBoss Tools and thus not default included in Eclipse Mars. You can install it from Eclipse Marketplace or download it from http://tools.jboss.org.

Introducing Container Development Toolkit

Now, why are Red Hat interested in making this experience great from within Eclipse ?

One part is of course that we think container based development is here to stay and Eclipse as an IDE needs to be able to at least work with these technologies - having first class support for them is the one part that lets plug-in users and developers try and explore.

The other is that with container based setup and the (almost) universal access to virtualization it is now possible for us to deliver a "PaaS-in-a-box" solution. A solution where you from any machine can install and run a "close-to-production" environment with access to containers (Docker), PaaS (OpenShift) all virtualized (Vagrant) running on Red Hat supported bits.

All configured to work together and out-of-the-box from your command line *and* IDE (in this case Eclipse).

We call this the Container Develoment Toolkit (CDK) and we are working on providing a Vagrant based install that comes optionally bundled with Eclipse pre-configured to work with the Vagrant box, Docker and OpenShift.

All ready to run with after a single download and install.

We are still developing on this but you can see a preview of the work demonstrated in this video


Want to hear/learn more ?

I will be giving a talk at EclipseCon 2016 which will demo these pieces and talk about where Red Hat will be going with moving container based development forward in the world of Eclipse.

About the Authors

Max Rydahl Andersen

Max Rydahl Andersen
Red Hat