4.4. カタログコンテンツの解決


カスタムリソース (CR) でインストールするクラスター拡張機能を指定すると、Operator Lifecycle Manager (OLM) v1 がカタログの選択を使用して、インストールするコンテンツを解決します。

次の操作を実行すると、カタログコンテンツの選択を制御できます。

  • カタログを選択するためのラベルを指定する。
  • 一致式を使用して、すべてのカタログに対して複雑なフィルタリングを実行する。
  • カタログの優先度を設定する。

カタログの選択基準を指定しなかった場合、Operator Lifecycle Manager (OLM) v1 により、要求されるパッケージを提供するクラスター上の利用可能なカタログから拡張機能が選択されます。

解決中、デフォルトでは、非推奨ではないバンドルが非推奨のバンドルよりも優先されます。

4.4.1. 名前によるカタログ選択

カタログがクラスターに追加されると、カタログカスタムリソース (CR) の metadata.name フィールドの値を使用してラベルが作成されます。拡張機能の CR で、spec.source.catalog.selector.matchLabels フィールドを使用してカタログ名を指定できます。matchLabels フィールドの値では、次の形式を使用します。

metadata.name フィールドから導出されたラベルの例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
  labels:
    olm.operatorframework.io/metadata.name: <example_extension> 
1

...
Copy to Clipboard Toggle word wrap

1
metadata.name フィールドから導出された、カタログが適用されると自動的に追加されるラベル。

次の例では、openshift-redhat-operators ラベルを持つカタログから <example_extension>-operator パッケージを解決します。

拡張機能 CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
spec:
  namespace: <example_namespace>
  serviceAccount:
    name: <example_extension>-installer
  source:
    sourceType: Catalog
    catalog:
      packageName: <example_extension>-operator
      selector:
        matchLabels:
          olm.operatorframework.io/metadata.name: openshift-redhat-operators
Copy to Clipboard Toggle word wrap

4.4.2. ラベルまたは式によるカタログの選択

クラスターカタログのカスタムリソース (CR) 内のラベルを使用すると、カタログにメタデータを追加できます。その後、割り当てられたラベルを指定するか、クラスター拡張機能の CR で式を使用して、カタログ選択をフィルタリングできます。

次のクラスターカタログ CR では、値が trueexample.com/support ラベルを catalog-a クラスターカタログに追加します。

ラベルを使用したクラスターカタログ CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: catalog-a
  labels:
    example.com/support: "true"
spec:
  source:
    type: Image
    image:
      ref: quay.io/example/content-management-a:latest
Copy to Clipboard Toggle word wrap

次のクラスター拡張機能 CR では、matchLabels セレクターを使用して、example.com/support ラベルと true の値を持つカタログを選択します。

matchLabels セレクターを使用したクラスター拡張機能 CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
spec:
  namespace: <example_namespace>
  serviceAccount:
    name: <example_extension>-installer
  source:
    sourceType: Catalog
    catalog:
      packageName: <example_extension>-operator
      selector:
        matchLabels:
          example.com/support: "true"
Copy to Clipboard Toggle word wrap

matchExpressions フィールドを使用すると、ラベルに対してより複雑なフィルタリングを実行できます。次のクラスター拡張機能 CR では、example.com/support ラベルと production または supported という値を持つカタログを選択します。

matchExpression セレクターを使用したクラスター拡張機能 CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
spec:
  namespace: <example_namespace>
  serviceAccount:
    name: <example_extension>-installer
  source:
    sourceType: Catalog
    catalog:
      packageName: <example_extension>-operator
      selector:
        matchExpressions:
          - key: example.com/support
            operator: In
            values:
              - "production"
              - "supported"
Copy to Clipboard Toggle word wrap

注記

matchLabels フィールドと matchExpressions フィールドの両方を使用する場合、カタログが選択されるには、指定されたすべての条件を満たしている必要があります。

4.4.3. ラベルまたは式によるカタログの除外

NotIn または DoesNotExist 演算子を使用してメタデータに一致式を使用することで、カタログを除外できます。

以下の CR では、example.com/testing ラベルを unwanted-catalog-1 および unwanted-catalog-2 クラスターカタログに追加します。

クラスターカタログ CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: unwanted-catalog-1
  labels:
    example.com/testing: "true"
spec:
  source:
    type: Image
    image:
      ref: quay.io/example/content-management-a:latest
Copy to Clipboard Toggle word wrap

クラスターカタログ CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: unwanted-catalog-2
  labels:
    example.com/testing: "true"
spec:
  source:
    type: Image
    image:
      ref: quay.io/example/content-management-b:latest
Copy to Clipboard Toggle word wrap

次のクラスター拡張機能 CR では、unwanted-catalog-1 カタログからの選択を除外します。

特定のカタログを除外するクラスター拡張機能 CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
spec:
  namespace: <example_namespace>
  serviceAccount:
    name: <example_extension>-installer
  source:
    sourceType: Catalog
    catalog:
      packageName: <example_extension>-operator
      selector:
        matchExpressions:
          - key: olm.operatorframework.io/metadata.name
            operator: NotIn
            values:
              - unwanted-catalog-1
Copy to Clipboard Toggle word wrap

次のクラスター拡張機能 CR では、example.com/testing ラベルを持たないカタログから選択します。その結果、unwanted-catalog-1unwanted-catalog-2 の両方がカタログ選択から除外されます。

特定のラベルを持つカタログを除外するクラスター拡張機能 CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
  name: <example_extension>
spec:
  namespace: <example_namespace>
  serviceAccount:
    name: <example_extension>-installer
  source:
    sourceType: Catalog
    catalog:
      packageName: <example_extension>-operator
      selector:
        matchExpressions:
          - key: example.com/testing
            operator: DoesNotExist
Copy to Clipboard Toggle word wrap

4.4.4. 優先度によるカタログ選択

複数のカタログが同じパッケージを提供する場合、各カタログのカスタムリソース (CR) で優先度を指定することにより、あいまいさを解決できます。指定されていない場合、カタログのデフォルトの優先度値は 0 になります。優先度は、任意の正または負の 32 ビット整数にすることができます。

注記
  • バンドルの解決中、優先度値の高いカタログが優先度値の低いカタログよりも選択されます。
  • 非推奨ではないバンドルが非推奨のバンドルよりも優先されます。
  • カタログ内に同じ優先度のバンドルが複数存在し、カタログの選択があいまいな場合は、エラーが出力されます。

優先度の高いクラスターカタログ CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: high-priority-catalog
spec:
  priority: 1000
  source:
    type: Image
    image:
      ref: quay.io/example/higher-priority-catalog:latest
Copy to Clipboard Toggle word wrap

優先度の低いクラスターカタログ CR の例

apiVersion: olm.operatorframework.io/v1
kind: ClusterCatalog
metadata:
  name: lower-priority-catalog
spec:
  priority: 10
  source:
    type: Image
    image:
      ref: quay.io/example/lower-priority-catalog:latest
Copy to Clipboard Toggle word wrap

4.4.5. カタログ選択エラーのトラブルシューティング

あいまいさのため、またはカタログが選択されていないためにバンドル解決が失敗した場合は、クラスター拡張機能の status.conditions フィールドにエラーメッセージが出力されます。

カタログ選択エラーのトラブルシューティングを行うには、次の操作を実行します。

  • ラベルまたは式を使用して選択基準を絞り込みます。
  • カタログの優先度を調整します。
  • パッケージ名とバージョン要件に一致するバンドルが 1 つだけであることを確認します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat