Release Notes and Known Issues

Red Hat CodeReady Workspaces 2.4

Release Notes and Known Issues for Red Hat CodeReady Workspaces 2.4

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.4.

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. For the list of CodeReady Workspaces 2.4 release issues, see the Chapter 3, Known issues section.

  • To deploy applications to an OpenShift cluster from CodeReady Workspaces, users must log in to the OpenShift cluster from their running workspace using oc login.
  • Having multiple CodeReady Workspaces deployments on the same cluster is not recommended, and the ability to do so may be removed in a future release.

1.1. About Red Hat CodeReady Workspaces

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

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

  • Support for IBM Z
  • Improvements to workspace start and overall performance
  • Bug fixes

  • Languages updates

    • Golang switched to the upstream plug-in published by Golang (not Microsoft), and was updated to the latest version of 0.16.1.

CodeReady Workspaces 2.4 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.

CodeReady Workspaces 2.4 is available from the OperatorHub in OpenShift 4.4 and beyond. CodeReady Workspaces 2.4 is based on a new Operator that uses the Operator Lifecycle Manager. This makes the CodeReady Workspaces installation flow simpler and doable without leaving the OpenShift Console.​

To install CodeReady Workspaces for OpenShift 4.4 or later, get CodeReady Workspaces from the OperatorHub and follow the Installing CodeReady Workspaces on OpenShift 4 from OperatorHub chapter of the Installation Guide.

1.2. Notable enhancements

1.2.1. Support for IBM Z

CodeReady Workspaces can now be deployed as an operator on OpenShift running on IBM Z mainframe systems using OperatorHub.

CodeReady Workspaces on IBM Z does not support:

  • The following devfiles:

    • Fuse
    • EAP for openjdk8
    • .Net
  • The following installation targets:

    • OpenShift Container Platform 3.11
    • OpenShift Container Platform 4.5
    • OpenShift Dedicated 4.3
  • An installation in restricted environments

1.2.2. Support certificates from OpenShift-trusted CA bundle

When OpenShift is configured with trusted CA certificates, CodeReady Workspaces will automatically process all those certificates, along with the ones explicitly assigned to it.

1.2.3. Configure with custom hostname

The configuration property cheHost in CheCluster Custom Resource can be set with a custom hostname value and secure route to it. This value will be used for all communication to the CodeReady Workspaces server. The Custom Resource has to be configured with a Trusted certificate for the custom hostname value.

1.3. Other enhancements

1.3.1. Git credential storage mechanism

The secret injection mechanism able to inject a file with the username and password and set the git config credential.helper was added. This allows users to use Git with HTTPS protocol without prompting for credential at every connection establishing and at every workspace start.

1.3.2. Switch or Stop workspaces from the IDE

The IDE now provides the ability to stop a running workspace or switch to a different workspace while keeping the current workspace active.

  • A workspace can be stopped using File → Close Workspace. User will then be redirected to the Dashboard.
  • File → Open Workspace lists all accessible Workspaces into which a user can switch.

1.3.3. Support for .devfile.yaml name

The source project folder can include a devfile with .<devfile>.yaml or <devfile>.yaml file names. CodeReady Workspaces automatically searches for .devfile.yaml if devfile.yaml is not found.

Chapter 2. Installing and deploying CodeReady Workspaces

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

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

2.1. Supported deployment environments

This section describes the availability and the supported installation methods of CodeReady Workspaces 2.4 on OpenShift Container Platform and OpenShift Dedicated.

The minimal OpenShift Container Platform version supporting Red Hat CodeReady Workspaces is OpenShift Container Platform 3.11.

Table 2.1. Supported deployment environments for CodeReady Workspaces 2.4 on OpenShift Container Platform and OpenShift Dedicated

Platform

Architecture

Deployment method

OpenShift Container Platform 3.11

AMD64 and Intel 64 (x86_64)

crwctl

OpenShift Container Platform 4.4

AMD64 and Intel 64 (x86_64)

OperatorHub

OpenShift Container Platform 4.4

IBM Z (s390x)

OperatorHub

OpenShift Container Platform 4.5

AMD64 and Intel 64 (x86_64)

OperatorHub

OpenShift Dedicated 4.3

AMD64 and Intel 64 (x86_64)

Add-On

Note
  • On OpenShift Container Platform 4.4 and 4.5, when the OperatorHub installation method is not available, consider using crwctl as an unofficial backup installation method.

2.2. Support policy

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

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

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

2.3. Difference between Eclipse Che and Red Hat CodeReady Workspaces

The main differences between CodeReady Workspaces and Eclipse Che are:

  • CodeReady Workspaces is built on RHEL8 to ensure the latest security fixes are included, vs. Alpine distributions that take a longer time to update.
  • CodeReady Workspaces uses Red Hat Single Sign-On (SSO) instead of the upstream project Keycloak.
  • CodeReady Workspaces provides a smaller supported subset of plug-ins compared to Che. CodeReady Workspaces provides devfiles for working with other Red Hat technologies such as EAP and Fuse.
  • CodeReady Workspaces is supported on OpenShift Container Platform and OpenShift Dedicated; Che can also run on other Kubernetes clusters.

Red Hat also provides licensing, packaging, and support, so CodeReady Workspaces is considered a more stable product than the upstream Eclipse Che project.

Chapter 3. Known issues

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

3.1. CodeReady Workspaces 2.3 Go workspaces fail to migrate to 2.4

The Go language plug-in moved from the v3/plugins/ms-vscode/ directory to v3/plugins/golang directory in the plug-in registry. As a result, the older workspaces created from the Go devfile cannot migrate to the current release version.

To resolve this issue:

  1. In the Go devfile components, replace the ms-vscode/go/latest ID with golang/go/latest:

    components:
     - id: golang/go/latest

3.2. ubi8-minimall image is not automatically mirrored for an disconnected environment installation

Following the steps in Using Operator Lifecycle Manager on restricted networks chapter in OpenShift docummentation, leads to an issue when ubi8-minimal image is not present in the mappings.txt and imageContentSourcePolicy.yaml files, causing an installation in a disconnected environment to fail.

To work around this issue:

  1. Mirror the image manually:

    $ skopeo copy --all docker://registry.stage.redhat.io/ubi8-minimal@sha256:5cfbaf45ca96806917830c183e9f37df2e913b187aadb32e89fd83fa455ebaa6 docker://${INTERNAL_REGISTRY}/ubi8-minimal
  2. Add a new rule for ubi8-minimal to imageContentSourcePolicy, or edit the imageContentSourcePolicy directly on a cluster, if already created:

    - mirrors:
      - ${INTERNAL_REGISTRY}/ubi8-minimal
      source: registry.stage.redhat.io/ubi8-minimal

3.3. Debug session for Python devfile fails to start

CodeReady Workspaces2.4 instances does not support a debug session for workspaces created from a Python devfile.

3.4. The Apache Camel K stack, provided in "Get started", is not supported for CodeReady Workspaces 2.4

All Camel K specific commands and Camel K Integration explorer are not working out of the box.

To work around this issue:

  • in Preferences → Camelk → Integrations, disable the auto-upgrade option and specify Camel K Runtime executable to match version 1.0.0.

    or

  • Add the VS Code extension 0.0.16 tooling for Apache Camel K in the registry.
  • CRW-1197

3.5. CodeReady Workspaces requires wildcard SSL certificates

CodeReady Workspaces requires a new sub-domain for every workspace it manages. This can lead to an inefficient situation when CodeReady Workspaces manages a large number of workspaces, while managing a conventional certificate for each of these workspaces. Administrators can try to work around this by setting a wildcard TLS certificate to secure all OpenShift routes of dedicated workspaces.

In case it is not possible to enable wildcard certificates globally on the OpenShift router, use a dedicated router for CodeReady Workspaces workspaces and Ingress Controller sharding. See Configuring Ingress Controller sharding by using route labels

  1. Add a dedicated ingress controller to serves the CodeReady Workspaces workspace routes using route label filtering and configured with a wildcard-based certificate signed by the corporate CA chain.
  2. Specify the route filtering of the dedicated ingress controller:
routeSelector:
   matchExpressions:
      key: che.workspace_id
      operator: Exists

3.6. Manually added registries using Theia Plugin View are not reflected in the View automatically

To work around this issue, refresh the page by pressing F5 or Comd+r if using macOS.

3.7. Installing CodeReady Workspaces using crwctl server:start fails in clusters with multiple CodeReady Workspaces deployments

Installation of CodeReady Workspaces, using the crwctl server:start with OpenShift OAuth, fails or does not deploy resources if existing resources from another crwctl installation exist in the cluster.

To workaround this issue, delete old resources and perform a fresh installation. For instructions, see step 6 of the Installing CodeReady Workspaces on OpenShift 3 using the Operator Installation Guide chapter.

Having multiple CodeReady Workspaces deployments on the same cluster is not recommended, and the ability to do so may be removed in a future release.

3.8. Some run and build commands of the The Getting started examples may fail in the AirGap installations

Some of the sample projects included in the Getting Started devfiles are not designed for offline or airgapped use, so some commands may not work. To resolve this, user may have to talk to a organization’s administrator to get access to internal mirrors, such as NMP, Maven, and PIP.

The base functions of the Getting started ZIP-archived samples embedded in the offline devfile registry do not work.

Commands that require internet access to run: Run, Simple build `, `Outline

3.9. PHP language server marks valid imports as erroneous in PHP-DI devfile

Workspaces created from the PHP-DI devfile incorrectly highlight valid code as erroroneous.

To work around this issue:

  1. Install the PHP dependencies using the Install dependencies IDE command.
  2. If not done automatically after the dependencies installation, restart the workspace manually.
  3. Refresh the browser.

3.10. The workspace sharing does not work

The File > Share IDE command currently launches the Workspace tab, but the Share tab is missing.

3.11. The crwctl server:delete command breaks existing CodeReady Workspaces deployments on the same OpenShift cluster

The crwctl server:delete command removes certain cluster-scoped objects, which causes all other CodeReady Workspaces deployments to terminate unexpectedly.

To work around the issue, patch the Custom Resource Definition:

$ oc patch customresourcedefinition/checlusters.org.eclipse.che -p \
'{ "metadata": { "finalizers": null }}' --type merge

Having multiple CodeReady Workspaces deployments on the same cluster is not recommended, and the ability to do so may be removed in a future release.

3.12. Deleting a checluster custom resource causes CodeReady Workspaces Operator errors

Uninstalling the CodeReady Workspaces manually by deleting the checluster custom resource in the OperatorHub causes errors in the CodeReady Workspaces Operator. As a consequence, attempting to re-install CodeReady Workspaces in OperatorHub fails.

3.13. Creating a namespace fails when a login name with unsupported characters is used

If the <username>-che namespace strategy is used, a problem can occur with the user names that contain characters incompatible with the Kubernetes namespace name pattern.

The specified namespace example@redhat.com-codeready is invalid: a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')

To work around this issue, do one of the following:

  • Use the CHE_INFRA_KUBERNETES_NAMESPACE_DEFAULT property with <userid> or <workspaceid> instead of <username> .
  • Use the CHE_INFRA_KUBERNETES_NAMESPACE_ALLOW_USER_DEFINED property to allow users to select namespaces by themselves.

3.14. Using of NFS mounts may cause installation or workspace start failures

For best performance, Red Hat recommends using block storage for Persistent Volumes used with CodeReady Workspaces. The use of NFS is not recommended.

3.15. CodeReady Workspaces deployed without TLS support causes some features to not work properly

In CodeReady Workspaces 2.1 and later, secure HTTPS is required to use the most recent Theia IDE, and therefore TLS mode is enabled by default. Disabling the TLS support will cause user experience to suffer and some UI will not work as expected or at all.

For example, the welcome page may be blank or broken, images may be missing, and other functionality may not work properly.

Chapter 4. Known Issues for CodeReady Workspaces on IBM Z

4.1. Java tasks using openJ9 on IBM Z may fail to terminate

CodeReady Workspaces workspaces created on IBM Z and OpenShift 4.4 in PSI, fail to terminate the Java tasks using openJ9.

To end a stuck process or unterminated running task, reload the browser tab to reconnect the workspace.

If the issue is still present, restart the workspace for changes to take effect.

Chapter 5. 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?

    Yes. The following two conditions must be met to run multiple workspaces simultaneously:

    • CodeReady Workspaces must use the per-workspace Persistent Volume Claim (PVC) strategy (default), and
    • Persistent volumes (PVs) must use ReadWriteMany (RWX) access mode.

      Thus to run multiple workspaces simultaneously, ensure the following configuration is set:

    • Set ReadWriteMany (RWX) access mode for PVs.
    • Use the per-workspace PVC strategy (default in CodeReady Workspaces), or optionally, the unique 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.