Release Notes and Known Issues

Red Hat CodeReady Workspaces 2.0

Release Notes and Known Issues for Red Hat CodeReady Workspaces 2.0

Supriya Takkhi

Robert Kratky

Michal Maléř

Fabrice Flore-Thébault

Red Hat Developer Group Documentation Team

Abstract

Information about new and noteworthy features as well as known issues in Red Hat CodeReady Workspaces 2.0.

Chapter 1. Release notes

Red Hat CodeReady Workspaces is a web-based integrated development environment (IDE). CodeReady Workspaces runs in OpenShift and is well-suited for container-based development.

This section documents the most important features and bug fixes in Red Hat CodeReady Workspaces.

1.1. About Red Hat CodeReady Workspaces

Red Hat CodeReady Workspaces 2.0 provides an enterprise-level cloud developer workspace server and browser-based integrated development environment (IDE). CodeReady Workspaces includes ready-to-use developer stacks for most of the popular programming languages, frameworks, and Red Hat technologies.

This major release of Red Hat CodeReady Workspaces is based on Eclipse Che 7 and offers a number of enhancements and new features, including:

  • Support for installation in restricted environments, also called offline mode or air-gap scenario
  • Support for defining workspaces using the portable devfile format
  • Support for OpenShift Developer Perspective integration and its additional capabilities
  • Che-Theia IDE as the default editor

CodeReady Workspaces 2.0 is available in the Red Hat Container Catalog. Install it on OpenShift Container Platform, starting at version 3.11, by following the instructions in the Installing CodeReady Workspaces chapter of the Installation Guide.

From OpenShift 4.1, CodeReady Workspaces 2.0 is available from the OperatorHub. Based on a new Operator that uses the Operator Lifecycle Manager, the installation flow is simpler and can be handled without leaving the OpenShift Console.​

For OpenShift 4.1 and higher, get CodeReady Workspaces from the OperatorHub and follow the Installing CodeReady Workspaces on Openshift 4 from OperatorHub chapter of the Installation Guide.

1.1.1. Notable enhancements

1.1.1.1. Support for installation in restricted environments

OpenShift Container Platform provides support for deploying Red Hat CodeReady Workspaces 2.0 in environments where external resources are not available, for example on a cluster that is not exposed to a public network. This ensures that workspaces can be started without relying on resources from outside networks.

1.1.1.2. Support for defining workspaces using the portable devfile format

Red Hat CodeReady Workspaces 2.0 supports a new method to configure and create a Red Hat CodeReady Workspaces workspace using a portable devfile. Devfiles are YAML configuration files that Red Hat CodeReady Workspaces parses and creates a cloud workspace, composed of multiple containers and based on the devfile. The devfile can be stored:

  • In a root folder of a Git repository
  • In a feature branch of a Git repository
  • In a publicly accessible destination
  • As a separate, locally stored artifact

When creating a workspace, Red Hat CodeReady Workspaces uses the devfile to initiate factory deployment and run all the containers for the required tools and application runtimes. Red Hat CodeReady Workspaces also mounts file-system volumes to make source code available to the workspace.

Differences between stacks in CodeReady Workspaces 1.2 and devfiles in CodeReady Workspaces 2.0

Starting with CodeReady Workspaces 2.0:

  • A stack is a pre-configured CodeReady Workspaces workspace.
  • A devfile is a configuration YAML file that CodeReady Workspaces consumes and transforms into a cloud workspace composed of multiple containers.

In CodeReady Workspaces 1.2, stacks were defined by a stacks.json file that was included with the che server. In contrast, in CodeReady Workspaces 2.0, the stacks.json file does not exist. Instead, a stack is defined in the devfile registry, which is a separate service. Every single devfile in the registry corresponds to a stack.

1.1.1.3. OpenShift Developer Perspective support

Red Hat CodeReady Workspaces 2.0 provides a number of enhancements for the OpenShift Developer Perspective.

Notably, OpenShift Developer Perspective now enables editing an application using Red Hat CodeReady Workspaces as the editor. Users can access this option from the Topology tab of the OpenShift Container Platform. In addition, Red Hat CodeReady Workspaces workspaces are accessible from the Red Hat Applications menu after Red Hat CodeReady Workspaces deployment on the OpenShift Cluster.

1.1.1.4. Che-Theia IDE as the default editor

Red Hat CodeReady Workspaces 2.0 now uses Che-Theia integrated development environment (IDE) as the default editor. Che-Theia IDE is similar to the popular Visual Studio Code (VS Code) IDE. As such, users can experience the familiar working environment and VS Code extensions support.

Features:

  • Intelligent editing support for all major programming languages. Che-Theia supports JavaScript, Java, Python, and others.
  • Integrated Terminal - A full-featured terminal that reconnects on browser reload, maintaining the full history.
  • Flexible Layout - A shell based on PhosphorJS, which provides a solid foundation for draggable dock layouts.

1.1.1.5. Red Hat CodeReady Workspaces command-line tool

The crwctl command-line tool has been introduced, which helps install, manage, and use Red Hat CodeReady Workspaces on an OpenShift cluster.

This tool enables:

  • Managing remote clusters after installing Red Hat CodeReady Workspaces locally.
  • Pre-check installation of Red Hat CodeReady Workspaces.
  • Administration of Red Hat CodeReady Workspaces-related tasks.

crwctl is the back-up installation method for situations where OperatorHub is not available.

1.1.1.6. Supported platforms for deploying CodeReady Workspaces 2.0

The following section provides information about the availability of CodeReady Workspaces 2.0 on OpenShift Container Platform, and about their supported installation methods.

Red Hat CodeReady Workspaces for OpenShift Container Platform can be installed on OpenShift Container Platform starting at version 3.11.

Table 1.1. Availability of CodeReady Workspaces 2.0 on OpenShift Container Platform

 

3.11

4.0

4.1

4.2

OpenShift Container Platform

Table 1.2. Supported installation method for CodeReady Workspaces 2.0 on OpenShift Container Platform

 

3.11

4.1

4.2

OpenShift Container Platform

crwctl

OperatorHub

OperatorHub

It is possible to use the crwctl utility script for deploying CodeReady Workspaces 2.0 on OpenShift Container Platform versions 4.1 and 4.2. This method is considered unofficial and serves as a back-up installation method for situations where the installation method using OperatorHub is not available.

1.1.2. Installing and deploying CodeReady Workspaces

For OpenShift 3.11, see the Installing CodeReady Workspaces chapter of the Administrator Guide.

For OpenShift 4.2, see the Installing CodeReady Workspaces from Operator Hub chapter of the Installation Guide.

1.1.3. Support policy

For Red Hat CodeReady Workspaces 2.0, Red Hat will provide support for deployment, configuration, and use of the product.

CodeReady Workspaces 2.0 has been tested on Chrome version 78.0.3904.70 (Official Build) (64-bit).

For more information, see CodeReady Workspaces life-cycle and support policy.

1.2. Difference between Eclipse Che and Red Hat CodeReady Workspaces

The main difference between CodeReady Workspaces and Eclipse Che is that CodeReady Workspaces is supported by Red Hat. There is no difference in the technologies these two products use. Nevertheless, CodeReady Workspaces runs the plug-ins and devfiles from supported images. Licensing, packaging, and support are also provided by Red Hat.

The following table lists the differences between Eclipse Che and Red Hat CodeReady Workspaces:

CodeReady WorkspacesEclipse Che

The CodeReady Workspaces stacks are based on Red Hat Enterprise Linux. The CodeReady Workspaces stacks list includes several stack images based on Red Hat Enterprise Application Platform, such as Vert.x, Springboot, etc.

The Eclipse Che stacks are based on CentOS and other free operating systems

Chapter 2. Known issues

This section lists known issues with Red Hat CodeReady Workspaces 2.0. Where available, workaround suggestions are provided.

2.2. CodeReady Workspaces is failing to shut down after executing crwctl server:stop

The dedicated crwctl command crwctl server:stop is unable to shut down the CodeReady Workspaces server and instead fails with a timeout and displays the following error message:

›   Error: E_SHUTDOWN_CHE_SERVER_FAIL - Failed to shutdown CodeReady Workspaces server. E_CHE_API_NO_RESPONSE - Endpoint: http://codeready-ndp-test.apps.crw.codereadyqe.com/api/system/stop?shutdown=true - Error message: timeout of
 ›   3000ms exceeded

To work around the issue, execute crwctl server:stop again.

2.3. CodeReady Workspaces workspace is not restarted and reopened after a plug-in installation

After installing a plug-in and restarting the CodeReady Workspaces workspace, using the green clickable reload message Click here to apply changes and restart your workspace in the top left of the Plugins overview fails. Instead of opening the workspace enhanced by a new feature, a workspace loading page is displayed infinitely.

To work around the issue, refresh the browser tab with the affected CodeReady Workspaces workspace.

2.4. Uninstallation command crwctl server:delete does not remove the OpenShift project

After using the crwctl server:delete command, the OpenShift project that used to host the CodeReady Workspaces instance remains. This makes it impossible to install a new CodeReady Workspaces instance into the default namespace, which still exists. To uninstall CodeReady Workspaces completely, manually remove the namespace.

To work around the issue:

  1. Stop the Red Hat CodeReady Workspaces Server:

    $ crwctl server:stop
  2. Obtain the name of the CodeReady Workspaces namespace:

    $ oc get checluster --all-namespaces -o=jsonpath="{.items[*].metadata.namespace}"
  3. Remove CodeReady Workspaces from the cluster:

    $ crwctl server:delete -n <namespace>

    This removes all CodeReady Workspaces installations from the cluster.

  4. Delete the checluster object and the codeready-workspaces resource:

    $ oc delete checluster codeready-workspaces --namespace=<openshift_namespace>

    <openshift_namespace> is the name of the OpenShift project where CodeReady Workspaces is deployed.

  5. Delete the OpenShift namespace:

    $ oc delete project <openshift_namespace>

2.5. When not using TLS (https), the OpenShift plug-in does not allow login using the web UI

To work around the issue, use one of the following measures:

  • When deploying CodeReady Workspaces, use the crwctl server:start --tls command to enable TLS mode.
  • For CodeReady Workspaces deployed without TLS support, use the oc utility to log in from the OpenShift plug-in container:

    1. Press CTRL+` twice, then type `openshift`, and press Enter to open the OpenShift plug-in container’s console.
    2. Configure login details for the console:

      OPENSHIFT_URL=https://api.your.cluster.com:6443
      OPENSHIFT_USERNAME=<username>
      OPENSHIFT_PASSWORD=<password>
      OPENSHIFT_CONSOLE_URL=console-openshift-console.apps.your.cluster.com
    3. Use the oc login command:

      $ oc login --server=${OPENSHIFT_URL} -u=${OPENSHIFT_USERNAME} -p=${OPENSHIFT_PASSWORD} --insecure-skip-tls-verify

2.6. Entering a workspace fails after restarting it

Attempting to restart a workspace and re-enter it fails, and an error message is displayed instead. To work around this issue, restart the workspace again.

2.7. Workspace Cap and Workspace RAM Cap organization restrictions do not work

The Workspace Cap and Workspace RAM cap functions, which control the maximum number of workspaces for an organization and the maximum RAM that organization workspaces can use, currently do not work.

2.8. The terminal tab for a workspace in some cases does not open

Devfiles contain a set of predefined commands that can be executed in workspaces started using devfiles from the devfile registry. However, when a command defined by a devfile is executed from the workspace, the terminal, in which the commands normally run, does not open. The work around this issue, do not open the same workspace link in two different browsers.

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

When Red Hat CodeReady Workspaces 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 Red Hat CodeReady Workspaces 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.

Chapter 3. FAQ

  1. Can I install CodeReady Workspaces offline (that is, disconnected from the internet)?

    Yes, you can. For detailed instructions, see Installing CodeReady Workspaces in restricted environments chapter of the Installation Guide.

  2. Can I use non-default certificates with CodeReady Workspaces?

    Yes, you can use self-signed or public certificates. See Installing CodeReady Workspaces on OpenShift v3 chapter of the Installation Guide.

  3. Can I run multiple workspaces simultaneously?

    The following two conditions prevent the user from running multiple workspaces simultaneously:

    • CodeReady Workspaces uses the common Persistent Volume Claim (PVC) strategy
    • Persistent volumes (PVs) use ReadWriteOnce (RWO) access mode

      To work around this limitation to run multiple workspaces simultaneously, use one of the following measures:

    • set ReadWriteMany (RWX) access mode for PVs
    • use the unique PVC strategy
    • use the per-workspace strategy

Legal Notice

Copyright © 2020 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.