Menu Close

3.6. 管理 Operator 条件

作为集群管理员,您可以使用 Operator Lifecycle Manager(OLM)来管理 Operator 状况。

3.6.1. 覆盖 Operator 条件

作为集群管理员,您可能想要忽略由 Operator 报告的、支持的 Operator 条件。Spec.Overrides 阵列中的 Operator 条件会覆盖 Status.Conditions 阵列中的条件,以便集群管理员可以处理 Operator 向 Operator Lifecycle Manager(OLM)报告了不正确状态的情况。

例如,一个 Operator 的已知版本,它始终会告知它是不可升级的。在这种情况下,尽管报告是不可升级的,您仍然希望升级 Operator。这可以通过在 OperatorCondition 资源中的 Spec.Overrides 阵列中添加 typestatus 来覆盖 Operator 条件来实现。

先决条件

  • 具有 OperatorCondition 资源的 Operator,使用 OLM 安装。

流程

  1. 编辑 Operator 的 OperatorCondition 资源:

    $ oc edit operatorcondition <name>
  2. 在对象中添加 Spec.Overrides 数组:

    Operator 条件覆盖示例

    apiVersion: operators.coreos.com/v1
    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."
    status:
      conditions:
      - type: Upgradeable
        status: "False"
        reason: "migration"
        message: "The operator is performing a migration."
        lastTransitionTime: "2020-08-24T23:15:55Z"

    1
    允许集群管理员将升级就绪状态更改为 True