5.5. OpenShift での DevWorkspace Operator の修復

OLM の再起動やクラスターのアップグレードなど特定の条件下で、Dev Spaces Operator for OpenShift Dev Spaces Operator がすでにクラスターに存在する場合でも、自動的にインストールされる場合があります。その場合、次のように OpenShift で DevWorkspace Operator を修復できます。

前提条件

  • 宛先 OpenShift クラスターへのクラスター管理者としてのアクティブな oc セッション。Getting started with the CLI を参照。
  • OpenShift Web コンソールの Installed Operators ページに、DevWorkspace Operator の複数のエントリーが表示されるか、または 1 つのエントリーが ReplaceingPending のループに陥っています。

手順

  1. 失敗した Pod を含む devworkspace-controller namespace を削除します。
  2. DevWorkspace および DevWorkspaceTemplate カスタムリソース定義 (CRD) を更新するには、変換戦略を None に設定し、webhook セクション全体を削除します。

    spec:
      ...
      conversion:
        strategy: None
    status:
    ...
    ヒント

    AdministrationCustomResourceDefinitionsDevWorkspace を検索することにより、OpenShift Web コンソールの Administrator パースペクティブで DevWorkspace および DevWorkspaceTemplate CRD を見つけて編集できます。

    注記

    DevWorkspaceOperatorConfig および DevWorkspaceRouting CRD の変換ストラテジーは、デフォルトで None に設定されています。

  3. DevWorkspace Operator サブスクリプションを削除します。

    $ oc delete sub devworkspace-operator \
    -n openshift-operators 1
    1
    openshift-operators または DevWorkspace Operator がインストールされている OpenShift プロジェクト。
  4. <devworkspace-operator.vX.Y.Z> 形式で DevWorkspace Operator CSV を取得します。

    $ oc get csv | grep devworkspace
  5. 各 DevWorkspace Operator CSV を削除します。

    $ oc delete csv <devworkspace-operator.vX.Y.Z> \
    -n openshift-operators 1
    1
    openshift-operators または DevWorkspace Operator がインストールされている OpenShift プロジェクト。
  6. DevWorkspace Operator サブスクリプションを再作成します。

    $ 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 または Manual
    重要

    installPlanApproval: Manual の場合、OpenShift Web コンソールの Administrator パースペクティブで OperatorInstalled Operators に移動し、DevWorkspace Operator: Upgrade availablePreview InstallPlanApprove に対して以下を選択します。

  7. OpenShift Web コンソールの Administrator パースペクティブで、OperatorsInstalled Operators に移動し、DevWorkspace OperatorSucceeded ステータスを確認します。