×

当源类型为grpc的 Operator Lifecycle Manager (OLM) 目录源定义了spec.image时,Catalog Operator 会创建一个提供已定义镜像内容的 Pod。默认情况下,此 Pod 在其规范中定义以下内容:

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

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

  • 无容忍度。

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

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

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

在本地禁用默认 CatalogSource 对象

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

Marketplace Operator (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.imageCatalogSource对象。

  • 您可以作为具有dedicated-admin角色的用户访问集群。

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

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

    其中<label>是您希望目录源 Pod 用于调度的节点选择器的标签。

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

先决条件
  • 定义了源类型为grpc且具有spec.imageCatalogSource对象。

  • 您可以作为具有dedicated-admin角色的用户访问集群。

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

      grpcPodConfig:
        priorityClassName: <priority_class>

    其中<priority_class>是以下之一:

    • Kubernetes 提供的默认优先级类之一:system-cluster-criticalsystem-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.imageCatalogSource对象。

  • 您可以作为具有dedicated-admin角色的用户访问集群。

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

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