Chapter 3. Installing CodeReady Workspaces on OpenShift 4 from OperatorHub

CodeReady Workspaces is now compatible with OpenShift 4.1 and has a dedicated operator compatible with the Operator Lifecycle Manager (OLM), which allows for easy installation and automated updates.

Note

OLM is a management framework for extending Kubernetes with Operators. The OLM project is a component of the Operator Framework, which is an open-source toolkit to manage Kubernetes-native applications, called operators, in an effective, automated, and scalable way.

When using CodeReady Workspaces on OpenShift 4, updates are performed explicitly via OperatorHub. This is different from CodeReady Workspaces on OpenShift 3.11, where updates are performed using the migrate*.sh script or manual steps.

Procedure

To install CodeReady Workspaces 1.2 from OperatorHub:

  1. Launch the OpenShift Web Console.
  2. In the console, click CodeReady Workspaces in the OperatorHub tab. The CodeReady Workspaces 1.2 window is shown.

    Figure 3.1. CodeReady Workspaces 1.2 listed on OperatorHub

    CodeReady Workspaces 1.2 listed on OperatorHub
  3. Click Install.

    Figure 3.2. Install button on the CodeReady Workspaces 1.2 window

    Install button on the CodeReady Workspaces 1.2 window
  4. In the Create Operator Subscription window:

    1. From the A specific namespace in the cluster drop-down list, select the openshift-codeready-workspaces namespace to install the Operator to.
    2. Choose the appropriate approval strategy in the Approval Strategy field.
    3. Click Subscribe.

      Figure 3.3. Selections in the Create Operator Subscription window

      Selections in the Create Operator Subscription window

      A subscription is created in the Operator Lifecycle Manager (OLM), and the operator is installed in the chosen namespace. Successful installation implies that the following requirements in the Cluster Service Version (CSV) are created:

      • Service account (SA)
      • Role-based access control (RBAC)
      • Deployment

        By default, a deployment creates only one instance of an application, scaled to 1. After the operator installation completes, the operator is marked as installed in the OperatorHub window.

  5. Navigate to Catalog > Installed Operators. The CodeReady Workspaces operator with an InstallSucceded message is displayed.

    Figure 3.4. Installed Operators on OperatorHub

    Installed Operators on OperatorHub
  6. To deploy CodeReady Workspaces 1.2 on the operator:

    1. In the selected namespace, create a custom resource Che Cluster that the operator will watch. To do so, click Operator > CodeReady Workspaces Cluster.
    2. Click Create Che Cluster.

      Figure 3.5. Clicking Create Che Cluster

      Create Che Cluster

      A template for creating a Che-cluster type custom resource is available. When using OpenShift OAuth or a self-signed certificate, grant cluster administrator privileges to the codeready-operator service account. For instructions, see the operator description when you initially install the operator.

  7. Click Create.

    Figure 3.6. Clicking Create to create the Che cluster

    Clicking Create to create the Che cluster

    After the custom resource is created, the operator starts executing the following controller business logic:

    • Creates the Kubernetes and OpenShift resources
    • Provisions the database and Red Hat SSO resources
    • Updates the resource status while the installation is in progress
  8. To track the progress in the OLM UI, navigate to the resource details window.

    Figure 3.7. Display of route for CodeReady Workspaces

    Display of route for CodeReady Workspaces
  9. Wait for the status to become Available. The CodeReady Workspaces route is displayed.
  10. To track the installation progress, follow the operator logs.

    Notice that the coderedy-operator pod is the same namespace. Follow the logs and wait until the operator updates the resource status to Available and sets the URLs.

    Figure 3.8. CodeReady Operator pod shown running

    CodeReady Operator pod shown running