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 的多个条目,或看到一个处于 Replacing 和 Pending 循环中的一个条目。
流程
-
删除包含故障 pod 的
devworkspace-controller
命名空间。 通过将转换策略设置为
None
并删除整个webhook
部分,更新DevWorkspace
和DevWorkspaceTemplate
自定义资源定义(CRD):spec: ... conversion: strategy: None status: ...
提示您可以通过在
中搜索 DevWorkspace
和DevWorkspaceTemplate
CRD,在 OpenShift Web 控制台的 Administrator 视角中找到并编辑DevWorkspace
和 DevWorkspaceTemplate CRD。注意DevWorkspaceOperatorConfig
和DevWorkspaceRouting
CRD 默认将转换策略设置为None
。删除 Dev Workspace Operator 订阅:
$ oc delete sub devworkspace-operator \ -n openshift-operators 1
- 1
- 安装 Dev Workspace Operator 的
openshift-operators
或 OpenShift 项目。
获取 < devworkspace_operator.vX.Y.Z > 格式的 Dev Workspace Operator CSV:
$ oc get csv | grep devworkspace
删除每个 Dev Workspace Operator CSV:
$ oc delete csv <devworkspace_operator.vX.Y.Z> \ -n openshift-operators 1
- 1
- 安装 Dev Workspace Operator 的
openshift-operators
或 OpenShift 项目。
重新创建 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.21.0 EOF
- 1
Automatic
或Manual
。
重要对于
installPlanApproval: Manual
,在 OpenShift Web 控制台的 Administrator 视角中,进入,为 Dev Workspace Operator 选择以下内容: 。 -
在 OpenShift Web 控制台的 Administrator 视角中,进入
并验证 Dev Workspace Operator 的 Succeeded 状态。