/codeready-workspaces

Repository for the codeready workspaces Che assembly

Primary LanguageShellEclipse Public License 2.0EPL-2.0

What’s inside?

Note
the so-called master branch is deprecated and is no longer kept up to date. Instead, the latest nightly sources are in crw-2-rhel-8 branch, synced to upstream projects' main (or master) branches.

For the latest stable release, see the crw-2.y-rhel-8 branch with the largest y value.


This repository hosts CodeReady Workspaces assembly that mainly inherits Eclipse Che artifacts and repackages some of them:

Differences as compared to upstream:

  • Customized Dashboard (pics, icons, titles, loaders, links)

  • Samples and Stacks modules

  • Bayesian Language Server and agent

  • Product Info plugin (IDE customizations: pics, titles links)

  • Custom Dockerfile based on official RH OpenJDK image from RHCC

Note
Dockerfiles in this repo are NOT the ones used to build RHCC container images in OSBS.

How to Build

Pre-reqs

JDK 11 Maven 3.5+

Build Assembly

Run the following command in the root of a repository:

mvn clean install

The build artifact used in the container image will be in assembly/codeready-worksapces-assembly-main/target

How to Build Container Image Locally

First, build the CRW assembly in this repo:

mvn clean install

Then just use the Dockerfile in this repo to build:

podman build --force-rm -t registry.redhat.io/codeready-workspaces/server-rhel8:2.y . && \
podman images | grep registry.redhat.io/codeready-workspaces/server-rhel8:2.y

You can then reference this image in your deployment (set image pull policy to Always to make sure it’s pulled instead of the default one).

For more info on how to test locally built changes in a local OKD 3.11 (Minishift 1.34) cluster, see Build CodeReady Workspaces server container locally and deploy using Minishift.

Note

Once published, images will be in locations like these:

  • registry.redhat.io/codeready-workspaces/configbump-rhel8

  • registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator

  • registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator-metadata

  • registry.redhat.io/codeready-workspaces/devfileregistry-rhel8

  • registry.redhat.io/codeready-workspaces/imagepuller-rhel8

  • registry.redhat.io/codeready-workspaces/jwtproxy-rhel8

  • registry.redhat.io/codeready-workspaces/machineexec-rhel8

  • registry.redhat.io/codeready-workspaces/pluginbroker-artifacts-rhel8

  • registry.redhat.io/codeready-workspaces/pluginbroker-metadata-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-java11-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-java8-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-kubernetes-rhel8

  • registry.redhat.io/codeready-workspaces/plugin-openshift-rhel8

  • registry.redhat.io/codeready-workspaces/pluginregistry-rhel8

  • registry.redhat.io/codeready-workspaces/server-rhel8

  • registry.redhat.io/codeready-workspaces/stacks-cpp-rhel8

  • registry.redhat.io/codeready-workspaces/stacks-dotnet-rhel8

  • registry.redhat.io/codeready-workspaces/stacks-golang-rhel8

  • registry.redhat.io/codeready-workspaces/stacks-php-rhel8

  • registry.redhat.io/codeready-workspaces/theia-endpoint-rhel8

  • registry.redhat.io/codeready-workspaces/theia-rhel8

  • registry.redhat.io/codeready-workspaces/traefik-rhel8

How to Build CRW Server Container Using casc Jenkins (REQUIRES VPN)

See this document for how to use those build systems, in order to publish a container image to Red Hat Container Catalog:

See also:

How to Build CRW Server Container Locally (REQUIRES VPN)

If you have access to Red Hat VPN, clone the pkgs.devel repo, then run the get-sources-jenkins.sh script to pull the latest dependency tarball into the local project, and trigger a Brew build.

kinit
git clone ssh://kerberos-username@pkgs.devel.redhat.com/containers/codeready-workspaces
cd codeready-workspaces
./get-sources-jenkins.sh

Keeping CRW dependencies in sync with upstream and downstream

Folders under /dependencies are synced to https://github.com/redhat-developer/codeready-workspaces-images. If no matching project exists under the /dependencies folder, sync occurs directly from an upstream Che project.

Sync jobs:

These files have moved, as they sync directly from an upstream repo:

  • dependencies/che-jwtproxy/Jenkinsfile

  • dependencies/che-machine-exec/Jenkinsfile

  • dependencies/che-pluginbroker/Jenkinsfile

  • dependencies/configbump/Jenkinsfile

  • dependencies/kubernetes-image-puller/Jenkinsfile

  • dependencies/push-latest.Jenkinsfile

  • dependencies/send-email-qe-build-list.Jenkinsfile

  • dependencies/traefik/Jenkinsfile

  • dependencies/update-digests.Jenkinsfile

Branding

To reskin this assembly, you need to edit the following files:

See also SVG assets in product/branding/ folder.

Note
When saving files in Inkscape, make sure you export as Plain SVG, then edit the resulting .svg file to remove any <metadata>…​</metadata> tags and all their contents. You can also remove the xmlns:rdf definition. This will ensure they compile correctly.