$ oc edit operatorcondition <name>
作为具有`dedicated-admin`角色的管理员,您可以使用Operator Lifecycle Manager (OLM)管理操作符条件。
作为具有`dedicated-admin`角色的管理员,您可能希望忽略操作符报告的支持的操作符条件。如果存在,`Spec.Overrides`数组中的操作符条件将覆盖`Spec.Conditions`数组中的条件,允许`dedicated-admin`管理员处理操作符错误地向Operator Lifecycle Manager (OLM)报告状态的情况。
默认情况下,除非由具有`dedicated-admin`角色的管理员添加,否则`OperatorCondition`对象中不会出现`Spec.Overrides`数组。`Spec.Conditions`数组也不存在,除非它由用户添加或作为自定义操作符逻辑的结果。 |
例如,考虑一个已知版本的始终指示其不可升级的操作符。在这种情况下,您可能希望升级操作符,即使操作符指示其不可升级。这可以通过将条件`type`和`status`添加到`OperatorCondition`对象的`Spec.Overrides`数组中来覆盖操作符条件来实现。
您可以作为具有`dedicated-admin`角色的用户访问集群。
使用OLM安装的操作符,带有`OperatorCondition`对象。
编辑操作符的`OperatorCondition`对象
$ oc edit operatorcondition <name>
向对象添加`Spec.Overrides`数组
apiVersion: operators.coreos.com/v2
kind: OperatorCondition
metadata:
name: my-operator
namespace: operators
spec:
overrides:
- type: Upgradeable (1)
status: "True"
reason: "upgradeIsSafe"
message: "This is a known issue with the Operator where it always reports that it cannot be upgraded."
conditions:
- type: Upgradeable
status: "False"
reason: "migration"
message: "The operator is performing a migration."
lastTransitionTime: "2020-08-24T23:15:55Z"
1 | 允许`dedicated-admin`用户将升级准备状态更改为`True`。 |
Operator Lifecycle Manager (OLM)会自动为其协调的每个`ClusterServiceVersion`资源创建一个`OperatorCondition`资源。CSV中的所有服务帐户都获得了与操作符拥有的`OperatorCondition`交互的RBAC权限。
操作符作者可以开发其操作符以使用`operator-lib`库,这样,在操作符由OLM部署后,它可以设置自己的条件。有关作为操作符作者设置操作符条件的更多资源,请参见启用操作符条件页面。