Repairing the Dev Workspace Operator on OpenShift

Under certain conditions, such as OLM restart or cluster upgrade, the Eclipse Che Operator for Che might automatically install the Dev Workspace Operator even when it is already present on the cluster. In that case, you can repair the Dev Workspace Operator on OpenShift as follows:

Prerequisites
  • An active kubectl session as a cluster administrator to the destination OpenShift cluster. See Overview of kubectl.

  • On the Installed Operators page of the Kubernetes or OpenShift web console, you see multiple entries for the Dev Workspace Operator or one entry that is stuck in a loop of Replacing and Pending.

Procedure
  1. Delete the devworkspace-controller namespace that contains the failing pod.

  2. Update DevWorkspace and DevWorkspaceTemplate Custom Resource Definitions (CRD) by setting the conversion strategy to None and removing the entire webhook section:

    spec:
      ...
      conversion:
        strategy: None
    status:
    ...
    You can find and edit the DevWorkspace and DevWorkspaceTemplate CRDs in the Administrator perspective of the OpenShift web console by searching for DevWorkspace in Administration  CustomResourceDefinitions.
    The DevWorkspaceOperatorConfig and DevWorkspaceRouting CRDs have the conversion strategy set to None by default.
  3. Remove the Dev Workspace Operator subscription:

    $ oc delete sub devworkspace-operator \
    -n openshift-operators (1)
    1 openshift-operators or an OpenShift namespace where the Dev Workspace Operator is installed.
  4. Get the Dev Workspace Operator CSVs in the <devworkspace_operator.vX.Y.Z> format:

    $ oc get csv | grep devworkspace
  5. Remove each Dev Workspace Operator CSV:

    $ oc delete csv <devworkspace_operator.vX.Y.Z> \
    -n openshift-operators (1)
    1 openshift-operators or an OpenShift namespace where the Dev Workspace Operator is installed.
  6. Re-create the Dev Workspace Operator subscription:

    $ cat <<EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: devworkspace-operator
      namespace: openshift-operators
    spec:
      channel: fast
      name: devworkspace-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      installPlanApproval: Automatic (1)
      startingCSV: devworkspace-operator.v0.15.2
    EOF
    1 Automatic or Manual.
    For installPlanApproval: Manual, in the Administrator perspective of the OpenShift web console, go to Operators  Installed Operators and select the following for the Dev Workspace Operator: Upgrade available  Preview InstallPlan  Approve.
  7. In the Administrator perspective of the OpenShift web console, go to Operators  Installed Operators and verify the Succeeded status of the Dev Workspace Operator.