6.6. 在 OpenShift 中修复 Dev Workspace Operator

在某些情况下,如 OLM 重启或集群升级,OpenShift Dev Spaces 的 Dev Spaces Operator 可能会自动安装 Dev Workspace Operator,即使它已存在于集群中。在这种情况下,您可以在 OpenShift 上修复 Dev Workspace Operator,如下所示:

先决条件

  • 一个活跃的 oc 会话,作为集群管理员连接到目标 OpenShift 集群。请参阅 CLI 入门
  • 在 OpenShift Web 控制台的 Installed Operators 页面中,您会看到 Dev Workspace Operator 的多个条目,或者一个处于 Re put 和 Pending 的条目。

流程

  1. 删除包含故障 pod 的 devworkspace-controller 命名空间。
  2. 通过将转换策略设置为 None 并删除整个 webhook 部分,来更新 DevWorkspaceDevWorkspaceTemplate 自定义资源定义(CRD):

    spec:
      ...
      conversion:
        strategy: None
    status:
    ...
    提示

    您可以在 OpenShift Web 控制台的 Administrator 视角中查找并编辑 DevWorkspaceDevWorkspaceTemplate CRD,方法是在 管理CustomResourceDefinitions 中搜索 DevWorkspace

    注意

    DevWorkspaceOperatorConfigDevWorkspaceRouting CRD 默认会将转换策略设置为 None

  3. 删除 Dev Workspace Operator 订阅:

    $ oc delete sub devworkspace-operator \
    -n openshift-operators 1
    1
    openshift-operators 或安装 Dev Workspace Operator 的 OpenShift 项目。
  4. 以 < devworkspace_operator.vX.Y.Z > 格式获取 Dev Workspace Operator CSV:

    $ oc get csv | grep devworkspace
  5. 删除每个 Dev Workspace Operator CSV:

    $ oc delete csv <devworkspace_operator.vX.Y.Z> \
    -n openshift-operators 1
    1
    openshift-operators 或安装 Dev Workspace Operator 的 OpenShift 项目。
  6. 重新创建 Dev Workspace 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
    自动或手动 .
    重要

    对于 installPlanApproval: Manual,在 OpenShift Web 控制台的 Administrator 视角中,进入 OperatorsInstalled Operators,并为 Dev Workspace Operator 选择以下内容:UpgradePreview InstallPlanApprove

  7. 在 OpenShift Web 控制台的 Administrator 视角中,进入 OperatorsInstalled Operators,验证 Dev Workspace OperatorSucceeded 状态。