×

当源类型为`grpc`的操作符生命周期管理器(OLM)目录源定义了`spec.image`时,目录操作符会创建一个提供已定义镜像内容的Pod。默认情况下,此Pod在其规范中定义以下内容:

  • 只有`kubernetes.io/os=linux`节点选择器。

  • 默认优先级类名称:`system-cluster-critical`。

  • 没有容忍度。

作为管理员,您可以通过修改`CatalogSource`对象可选`spec.grpcPodConfig`部分中的字段来覆盖这些值。

市场操作符`openshift-marketplace`管理默认`OperatorHub`自定义资源(CR)。此CR管理`CatalogSource`对象。如果您尝试修改`CatalogSource`对象`spec.grpcPodConfig`部分中的字段,市场操作符会自动恢复这些修改。默认情况下,如果您修改`CatalogSource`对象的`spec.grpcPodConfig`部分中的字段,市场操作符会自动恢复这些更改。

要对`CatalogSource`对象应用持久性更改,您必须首先禁用默认`CatalogSource`对象。

在本地级别禁用默认CatalogSource对象

您可以通过禁用默认`CatalogSource`对象,在本地级别对`CatalogSource`对象(例如目录源Pod)应用持久性更改。在默认`CatalogSource`对象的配置不满足组织需求的情况下,请考虑默认配置。默认情况下,如果您修改`CatalogSource`对象的`spec.grpcPodConfig`部分中的字段,市场操作符会自动恢复这些更改。

市场操作符`openshift-marketplace`管理`OperatorHub`的默认自定义资源(CR)。`OperatorHub`管理`CatalogSource`对象。

要对`CatalogSource`对象应用持久性更改,您必须首先禁用默认`CatalogSource`对象。

步骤
  • 要在本地级别禁用所有默认`CatalogSource`对象,请输入以下命令:

    $ oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": true}}' --type=merge

    您还可以配置默认`OperatorHub` CR 以禁用所有`CatalogSource`对象或禁用特定对象。

覆盖目录源Pod的节点选择器

先决条件
  • 定义了一个源类型为`grpc`且具有`spec.image`的`CatalogSource`对象。

步骤
  • 编辑`CatalogSource`对象并添加或修改`spec.grpcPodConfig`部分以包含以下内容:

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

    其中`

覆盖目录源Pod的优先级类名称

先决条件
  • 定义了一个源类型为`grpc`且具有`spec.image`的`CatalogSource`对象。

步骤
  • 编辑`CatalogSource`对象并添加或修改`spec.grpcPodConfig`部分以包含以下内容:

      grpcPodConfig:
        priorityClassName: <priority_class>

    其中``是以下之一:

    • Kubernetes提供的默认优先级类之一:`system-cluster-critical`或`system-node-critical`

    • 空集(`""`)以分配默认优先级

    • 预先存在的和自定义定义的优先级类

以前,唯一可以覆盖的 Pod 调度参数是priorityClassName。这是通过向CatalogSource对象添加operatorframework.io/priorityclass注释来实现的。例如

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: example-catalog
  namespace: openshift-marketplace
  annotations:
    operatorframework.io/priorityclass: system-cluster-critical

如果CatalogSource对象同时定义了注释和spec.grpcPodConfig.priorityClassName,则注释优先于配置参数。

其他资源

覆盖目录源 Pod 的容忍度

先决条件
  • 定义了一个源类型为`grpc`且具有`spec.image`的`CatalogSource`对象。

步骤
  • 编辑`CatalogSource`对象并添加或修改`spec.grpcPodConfig`部分以包含以下内容:

      grpcPodConfig:
        tolerations:
          - key: "<key_name>"
            operator: "<operator_type>"
            value: "<value>"
            effect: "<effect>"