Eclipse Che on OpenShift
Table Of Content
- What is the RedHat Che distribution
- How to build it
- How to deploy or roll-update on OpenShift
- Further details
What is the RedHat Che distribution
The RedHat distribution of Eclipse Che is a RedHat-specific packaging of Che assemblies that adds some RedHat specific plugins / behaviors up to the standard upstream Che distribution. The RedHat distribution powers openshift.io developers workspaces.
RedHat modifications against the upstream Che include:
- The ability to disable the Dashboard (and remove the Go to Dashboard button from the Che IDE)
- Keycloak integration
- fabric8-analytics Language Server
How to build it
Build prerequisites
-
Set some environment variables:
DOCKER_HUB_NAMESPACEcan be overridden to point to your own Docker Hub account
export DOCKER_HUB_NAMESPACE=myDockerNamspaceThe docker namespace used by default is
docker.io/rhchestage
Build RedHat distribution
dev-scripts/build_fabric8.sh [PARAMETERS]This script:
- runs the RH maven build with the options passed as arguments,
- generates the docker images for the upstream and the RH distribution and tag them appropriately.
Build scripts parameters
The optional build scripts parameters are the parameters of the underlying Maven build.
Docker scripts to create and tag images from the RH build artifacts
In the local docker environment
dev-scripts/local_docker_create_images_and_tag.shNote: This step is already included in the build scripts. However, if you plan to deploy or rollupdate to Minishift, you should also create/tag docker images in the Minishift docker environment, as detailed in next section.
In the Minishift docker environment
dev-scripts/minishift_docker_create_images_and_tag.shHow to deploy or roll-update Che on OpenShift Container Platform, Minishift or OSIO
Deployment prerequisites
- minishift (v1.0.0 or greater)
octhe OpenShift command line client tool. The binary is included in minishift distribution and can be found in folder.minishift/cache/oc/<oc version>/. You can add this folder to your$PATHusing the following commandeval $(minishift oc-env).
Deploy to OpenShift Container Platform
# Configure OpenShift cluster details:
export OPENSHIFT_ENDPOINT=<OCP_ENDPOINT_URL> # e.g. https://opnshmdnsy3t7twsh.centralus.cloudapp.azure.com:8443
export OPENSHIFT_TOKEN=<OCP_TOKEN>
export OPENSHIFT_NAMESPACE_URL=<CHE_HOSTNAME> # e.g. che-eclipse-che.52.173.199.80.xip.io
# Deploy Che
SCRIPT_URL=https://raw.githubusercontent.com/redhat-developer/rh-che/master/dev-scripts/openshift_deploy.sh
export OPENSHIFT_FLAVOR=ocp && curl -fsSL ${SCRIPT_URL} -o get-che.sh && bash get-che.shAnd if you have cloned redhat-developer/rh-che you can deploy Che on OSIO executing:
export OPENSHIFT_FLAVOR=ocp && ./dev-scripts/openshift_deploy.shDeploy to Minishift
SCRIPT_URL=https://raw.githubusercontent.com/redhat-developer/rh-che/master/dev-scripts/openshift_deploy.sh
curl -fsSL ${SCRIPT_URL} -o get-che.sh && bash get-che.shOf course if you have cloned redhat-developer/rh-che you can deploy Che on minishift executing:
./dev-scripts/openshift_deploy.shDeploy to openshift.io
SCRIPT_URL=https://raw.githubusercontent.com/redhat-developer/rh-che/master/dev-scripts/openshift_deploy.sh
export OPENSHIFT_FLAVOR=osio && curl -fsSL ${SCRIPT_URL} -o get-che.sh && bash get-che.shAnd if you have cloned redhat-developer/rh-che you can deploy Che on OSIO executing:
export OPENSHIFT_FLAVOR=osio && ./dev-scripts/openshift_deploy.shDeployment Options
You can set different deployment options using environment variables:
OPENSHIFT_FLAVOR: possible values areocp,minishiftandosio(default isminishift)OPENSHIFT_ENDPOINT: url of the OpenShift API (default is unset for ocp,https://$(minishift ip):8443/for minishift,https://api.starter-us-east-2.openshift.comfor osio)OPENSHIFT_TOKEN(default is unset)CHE_OPENSHIFT_PROJECT: the OpenShift namespace where Che will be deployed (default iseclipse-chefor ocp and minishift and${OPENSHIFT_ID}-chefor osio)CHE_IMAGE_REPO:che-serverDocker image repository that will be used for deployment (default isdocker.io/rhchestage/che-server)CHE_IMAGE_TAG:che-serverDocker image tag that will be used for deployment (default isnightly-fabric8)CHE_LOG_LEVEL: Log level of che-server (default isDEBUG)CHE_DEBUGGING_ENABLED: If set totruethe script will create the OpenShift service to debug che-server (default istrue)CHE_KEYCLOAK_DISABLED: If this is set to true Keycloack authentication will be disabled (default istruefor ocp and minishift,falsefor osio)OPENSHIFT_NAMESPACE_URL: The Che application hostname (default is unset for ocp,${CHE_OPENSHIFT_PROJECT}.$(minishift ip).nip.iofor minishift,${CHE_OPENSHIFT_PROJECT}.8a09.starter-us-east-2.openshiftapps.comfor osio)
ocp and minishift only options
OPENSHIFT_USERNAME: username to login on the OpenShift cluster. Ignored ifOPENSHIFT_TOKENis set (default isdeveloper)OPENSHIFT_PASSWORD: password to login on the OpenShift cluster. Ignored ifOPENSHIFT_TOKENis set (default isdeveloper)
Warning: If you are deploying the RH distribution build, ensure that you created / tagged the Che docker images in the Minishift docker environment (see previous section). If you want to build and deploy the RH distribution to Minishift in one go, you can use the all-in-one scripts
Delete all resources and clean up in Minishift
dev-scripts/openshift_deploy.sh --command cleanupRoll-update the current Minishift deployment with the up-to-date docker image
dev-scripts/openshift_deploy.sh --command rollupdateWarning: If you are deploying the RH distribution build, ensure that you created / tagged the Che docker images in the Minishift docker environment. If you want to build and deploy the RH distribution to Minishift in one go, you can use the all-in-one scripts
All-in-one scripts for Minishift
Instead of running a script for each step in the process of building / deploying to Minisift, the following all-in-one scripts are also available, and can take the same arguments as the build scripts
For building the RedHat Che distribution
-
dev-scripts/minishift_build_fabric8_and_deploy.sh [PARAMETERS]:- changes the current docker environment to use the minishift docker daemon,
- runs
dev-scripts/build_fabric8.sh [PARAMETERS] - runs
dev-scripts/openshift_deploy.sh --command cleanup - runs
dev-scripts/openshift_deploy.sh
-
dev-scripts/minishift_build_fabric8_and_rollupdate.sh [PARAMETERS]:- changes the current docker environment to use the minishift docker daemon,
- runs
dev-scripts/build_fabric8.sh [PARAMETERS] - runs
dev-scripts/openshift_deploy.sh --command rollupdate
Further details
Maven build details
The result of the RedHat Che distribution build will be available at the following location:
rh-che/assembly/assembly-main/target/eclipse-che-fabric8-1.0.0-SNAPSHOT
Alternatively, if the option to remove the Dashboard has been enabled then the classifier without-dashboard
will be used and the result of the RedHat Che distribution build will be available at the following location:
rh-che/assembly/assembly-main/target/eclipse-che-fabric8-1.0.0-SNAPSHOT-without-dashboard
The build is started by running maven in the root of the current git repository,
which is :rh-che
Maven build parameters
The build relies on the upstream Eclipse Che maven configuration. All the maven options available in Eclipse Che can be used here.
For instance, the profile fast will skip all the tests and checks as describe in the Eclipse Che development documentation:
mvn clean install -Pfast
Enabling / Disabling the Dashboard
By default the Che Dashboard is part of the RedHat Che distribution.
Howvever it can removed by with the -DwithoutDashboard argument

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
