7.2. コンポーネントとアーキテクチャー


7.2.1. OLM 1.0 コンポーネントの概要 (テクノロジープレビュー)

重要

OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Operator Lifecycle Manager (OLM) 1.0 は、次のコンポーネントプロジェクトで構成されています。

Operator Controller
Operator Controller は OLM 1.0 の中心的なコンポーネントで、API を使用して Kubernetes を拡張します。ユーザーはこれを使用して、Operator や拡張機能をインストールし、そのライフサイクルを管理できます。これは、次の各コンポーネントからの情報を使用します。
RukPak

RukPak は、クラウドネイティブコンテンツをパッケージ化して配布するためのプラグイン可能なソリューションです。インストール、更新、ポリシーに関する高度なストラテジーをサポートします。

RukPak は、Kubernetes クラスターにさまざまなアーティファクトをインストールするためのコンテンツエコシステムを提供します。アーティファクトの例には、Git リポジトリー、Helm チャート、OLM バンドルなどがあります。その後、RukPak はこれらのアーティファクトを安全な方法で管理、スケーリング、アップグレードして、強力なクラスター拡張を実現できます。

Catalogd
Catalogd は、クラスター上のクライアントが使用する、コンテナーイメージにパッケージ化されて出荷されるファイルベースのカタログ (FBC) コンテンツを展開する Kubernetes 拡張機能です。OLM 1.0 マイクロサービスアーキテクチャーのコンポーネントである catalogd は、Kubernetes 拡張機能の作成者がパッケージ化した拡張機能のメタデータをホストします。これは、ユーザーがインストール可能なコンテンツを発見するのに役立ちます。

7.2.2. Operator Controller (テクノロジープレビュー)

Operator Controller は、Operator Lifecycle Manager (OLM) 1.0 の中心的なコンポーネントであり、他の OLM 1.0 コンポーネント (RukPak および catalogd) を使用します。Operator Controller は API で Kubernetes を拡張し、これを通してユーザーは Operator や機能拡張をインストールできます。

重要

OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.2.2.1. Operator API

Operator Controller は、インストールされている Operator のインスタンスを表すシングルリソースである新しい Operator API オブジェクトを提供します。この Operator.operators.operatorframework.io API は、ユーザー向け API をシングルオブジェクトに統合することで、インストールされた Operator の管理を合理化します。

重要

OLM 1.0 では、Operator オブジェクトはクラスタースコープです。これは、関連する Subscription オブジェクトと OperatorGroup オブジェクトの設定に応じて、Operator が namespace スコープまたはクラスタースコープになる以前の OLM バージョンとは異なります。

以前の動作について、詳細はマルチテナント対応と Operator のコロケーション を参照してください。

Operator オブジェクトの例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: <operator_name>
spec:
  packageName: <package_name>
  channel: <channel_name>
  version: <version_number>

注記

OpenShift CLI (oc) を使用する場合、このテクノロジープレビューフェーズで OLM 1.0 が提供する Operator リソースでは、完全な <resource>.<group> 形式 (operator.operators.operatorframework.io) を指定する必要があります。以下に例を示します。

$ oc get operator.operators.operatorframework.io

API グループを指定せずに Operator リソースのみを指定すると、CLI は OLM 1.0 に関連付けられていない以前の API (operator.operators.coreos.com) の結果を返します。

7.2.2.1.1. OLM 1.0 のターゲットバージョンについて

Operator Lifecycle Manager (OLM) 1.0 では、クラスター管理者は Operator のターゲットバージョンを Operator のカスタムリソース (CR) で宣言的に設定します。

Operator の CR でチャネルを指定すると、OLM 1.0 は指定されたチャネルから最新リリースをインストールします。更新が指定されたチャネルに公開されると、OLM 1.0 はそのチャネルからの最新リリースに自動的に更新します。

チャネルを指定した CR の例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: quay-example
spec:
  packageName: quay-operator
  channel: stable-3.8 1

1
指定されたチャネルに公開された最新リリースをインストールします。チャネルへの更新は自動的にインストールされます。

CR で Operator のターゲットバージョンを指定すると、OLM 1.0 は指定されたバージョンをインストールします。ターゲットバージョンが Operator の CR で指定されている場合、OLM 1.0 は更新がカタログに公開されるときにターゲットバージョンを変更しません。

クラスターにインストールされている Operator のバージョンを更新する場合は、Operator の CR を手動で更新する必要があります。Operator のターゲットバージョンを指定すると、Operator のバージョンが指定されたリリースに固定されます。

ターゲットバージョンを指定した CR の例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: quay-example
spec:
  packageName: quay-operator
  version: 3.8.12 1

1
ターゲットのバージョンを指定します。クラスターにインストールされている Operator のバージョンを更新する場合は、Operator の CR のこのフィールドを目的のターゲットバージョンに手動で更新する必要があります。

Operator のインストールされているバージョンを変更する場合は、Operator の CR を編集して目的のターゲットバージョンにします。

警告

OLM の以前のバージョンでは、Operator の作成者は、サポートされていないバージョンへの更新を防ぐためにアップグレードエッジを定義できました。現在の開発状態では、OLM 1.0 はエッジ定義のアップグレードを強制しません。Operator の任意のバージョンを指定でき、OLM 1.0 は更新の適用を試みます。

次のコマンドを実行すると、使用可能なバージョンやチャネルを含む Operator のカタログの内容を検査できます。

コマンド構文

$ oc get package <catalog_name>-<package_name> -o yaml

CR を作成または更新した後、次のコマンドを実行して Operator を作成または設定します。

コマンド構文

$ oc apply -f <extension_name>.yaml

トラブルシューティング

  • 存在しないターゲットバージョンまたはチャネルを指定した場合は、次のコマンドを実行して Operator のステータスを確認できます。

    $ oc get operator.operators.operatorframework.io <operator_name> -o yaml

    出力例

    apiVersion: operators.operatorframework.io/v1alpha1
    kind: Operator
    metadata:
      annotations:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"operators.operatorframework.io/v1alpha1","kind":"Operator","metadata":{"annotations":{},"name":"quay-example"},"spec":{"packageName":"quay-operator","version":"999.99.9"}}
      creationTimestamp: "2023-10-19T18:39:37Z"
      generation: 3
      name: quay-example
      resourceVersion: "51505"
      uid: 2558623b-8689-421c-8ed5-7b14234af166
    spec:
      packageName: quay-operator
      version: 999.99.9
    status:
      conditions:
      - lastTransitionTime: "2023-10-19T18:50:34Z"
        message: package 'quay-operator' at version '999.99.9' not found
        observedGeneration: 3
        reason: ResolutionFailed
        status: "False"
        type: Resolved
      - lastTransitionTime: "2023-10-19T18:50:34Z"
        message: installation has not been attempted as resolution failed
        observedGeneration: 3
        reason: InstallationStatusUnknown
        status: Unknown
        type: Installed

7.2.3. Rukpak (テクノロジープレビュー)

Operator Lifecycle Manager (OLM) 1.0 は、RukPak コンポーネントとそのリソースを使用してクラウドネイティブコンテンツを管理します。

重要

OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.2.3.1. RukPak について

RukPak は、クラウドネイティブコンテンツをパッケージ化して配布するためのプラグイン可能なソリューションです。インストール、更新、ポリシーに関する高度なストラテジーをサポートします。

RukPak は、Kubernetes クラスターにさまざまなアーティファクトをインストールするためのコンテンツエコシステムを提供します。アーティファクトの例には、Git リポジトリー、Helm チャート、OLM バンドルなどがあります。その後、RukPak はこれらのアーティファクトを安全な方法で管理、スケーリング、アップグレードして、強力なクラスター拡張を実現できます。

RukPak のコアは、API とコントローラーの小さなセットです。API は、クラスターにインストールするコンテンツや、そのコンテンツの実行デプロイメントを作成する方法を示すカスタムリソース定義 (CRD) としてパッケージ化されています。コントローラーは API を監視します。

一般的な用語

バンドル
クラスターにデプロイされるコンテンツを定義する Kubernetes マニフェストのコレクション
バンドルイメージ
ファイルシステム内にバンドルがあるコンテナーイメージ
バンドル Git リポジトリー
ディレクトリー内にバンドルがある Git リポジトリー
プロビジョナー
Kubernetes クラスターにコンテンツをインストールして管理するコントローラー
バンドルデプロイメント
バンドルのデプロイされたインスタンスを生成します

7.2.3.2. プロビジョナーについて

RukPak は、プロビジョナー と呼ばれる一連のコントローラーで構成され、Kubernetes クラスターにコンテンツをインストールして管理します。RukPak は、BundleBundleDeployment という 2 つの主要な API も提供します。これらのコンポーネントが連携してコンテンツをクラスターに取り込み、インストールして、クラスター内にリソースを生成します。

2 つのプロビジョナーが現在実装され、RukPak にバンドルされています。これらは、plain+v0 バンドルをソースおよびアンパックする プレーンプロビジョナー と、Operator Lifecycle Manager (OLM) registry+v1 バンドルをソースおよびアンパックする レジストリープロビジョナー です。

各プロビジョナーには一意の ID が割り当てられ、特定の ID に一致する spec.provisionerClassName フィールドを使用して Bundle および BundleDeployment オブジェクトを調整します。たとえば、プレーンプロビジョナーは、指定された plain+v0 バンドルをクラスターにアンパックしてからインスタンス化し、バンドルのコンテンツをクラスターで利用できるようにすることができます。

プロビジョナーは、プロビジョナーを明示的に参照する Bundle リソースと BundleDeployment リソースの両方にウォッチを配置します。特定のバンドルについて、プロビジョナーは Bundle リソースのコンテンツをクラスターにアンパックします。次に、そのバンドルを参照する BundleDeployment リソースを指定すると、プロビジョナーはバンドルのコンテンツをインストールし、それらのリソースのライフサイクルを管理します。

7.2.3.3. バンドル

RukPak Bundle オブジェクトは、クラスター内の他のコンシューマーが利用できるようにするコンテンツを表します。Pod が使用を開始するためにコンテナーイメージのコンテンツをプルしてアンパックする必要があるのと同じように、Bundle オブジェクトは、プルしてアンパックする必要がある可能性があるコンテンツを参照するために使用されます。この意味で、バンドルはイメージの概念を一般化したものであり、あらゆるタイプのコンテンツを表すために使用できます。

バンドルは単独では何もできません。プロビジョナーがアンパックしてコンテンツをクラスターで利用できるようにする必要があります。これらは、プロビジョナー Pod にマウントされたディレクトリー内の tar.gz ファイルなど、任意のストレージメディアに解凍できます。各 Bundle オブジェクトには、その特定のバンドルタイプを監視およびアンパックする Provisioner オブジェクトを示す、関連付けられた spec.provisionerClassName フィールドがあります。

プレーンプロビジョナーと連携するように設定された Bundle オブジェクトの例

apiVersion: core.rukpak.io/v1alpha1
kind: Bundle
metadata:
  name: my-bundle
spec:
  source:
    type: image
    image:
      ref: my-bundle@sha256:xyz123
  provisionerClassName: core-rukpak-io-plain

注記

バンドルは、作成後は不変と見なされます。

7.2.3.3.1. バンドルの不変性

Bundle オブジェクトが API サーバーによって受け入れられると、そのバンドルは RukPak システムの残りの部分によって不変のアーティファクトと見なされます。この動作により、バンドルはクラスターにソーシングする一意の静的なコンテンツを表すという概念が適用されます。ユーザーは、特定のバンドルが特定の一連のマニフェストを指していて、新しいバンドルを作成しないと更新できないという確信を持つことができます。このプロパティーは、スタンドアロンバンドルと、組み込みの BundleTemplate オブジェクトによって作成された動的バンドルの両方に当てはまります。

バンドルの不変性は、コア RukPak Webhook によって適用されます。この Webhook は Bundle オブジェクトイベントを監視し、バンドルの更新について、既存のバンドルの spec フィールドが提案された更新されたバンドルのそれと意味的に等しいかどうかをチェックします。それらが等しくない場合、更新は Webhook によって拒否されます。metadatastatus などの他の Bundle オブジェクトフィールドは、バンドルのライフサイクル中に更新されます。不変と見なされるのは spec フィールドのみです。

Bundle オブジェクトを適用してからその仕様を更新しようとすると失敗するはずです。たとえば、次の例はバンドルを作成します。

$ oc apply -f -<<EOF
apiVersion: core.rukpak.io/v1alpha1
kind: Bundle
metadata:
  name: combo-tag-ref
spec:
  source:
    type: git
    git:
      ref:
        tag: v0.0.2
      repository: https://github.com/operator-framework/combo
  provisionerClassName: core-rukpak-io-plain
EOF

出力例

bundle.core.rukpak.io/combo-tag-ref created

次に、新しいタグを指すようにバンドルにパッチを適用すると、エラーが返されます。

$ oc patch bundle combo-tag-ref --type='merge' -p '{"spec":{"source":{"git":{"ref":{"tag":"v0.0.3"}}}}}'

出力例

Error from server (bundle.spec is immutable): admission webhook "vbundles.core.rukpak.io" denied the request: bundle.spec is immutable

コアの RukPak 受付 Webhook は、バンドルの仕様が不変であるため、パッチを拒否しました。バンドルのコンテンツを変更するための推奨される方法は、インプレースで更新するのではなく、新しい Bundle オブジェクトを作成することです。

不変性に関するその他の考慮事項

Bundle オブジェクトの spec フィールドは不変ですが、基本となる spec フィールドを変更せずに、BundleDeployment オブジェクトを新しいバージョンのバンドルコンテンツにピボットすることは可能です。この意図しないピボットは、次のシナリオで発生する可能性があります。

  1. ユーザーは、イメージタグ、Git ブランチ、または Git タグを Bundle オブジェクトの spec.source フィールドに設定します。
  2. イメージタグが新しいダイジェストに移動するか、ユーザーが変更を Git ブランチにプッシュするか、ユーザーが別のコミットで Git タグを削除して再プッシュします。
  3. ユーザーが、アンパック Pod の削除など、バンドルアンパック Pod を再作成するために何らかの操作を行います。

このシナリオが発生した場合、手順 2 の新しいコンテンツは、手順 3 の結果としてアンパックされます。バンドルのデプロイメントにより、変更が検出され、新しいバージョンのコンテンツにピボットされます。

これは、Pod のコンテナーイメージの 1 つがタグを使用し、そのタグが別のダイジェストに移動され、将来のある時点で既存の Pod が別のノードで再スケジュールされる Pod の動作に似ています。その時点で、ノードは新しいダイジェストで新しいイメージをプルし、ユーザーが明示的に要求することなく別の何かを実行します。

基になる Bundle 仕様コンテンツが変更されないことを確信するには、バンドルを作成するときにダイジェストベースのイメージまたは Git コミット参照を使用します。

7.2.3.3.2. プレーンバンドル仕様

RukPak のプレーンバンドルは、特定のディレクトリーにある静的で任意の Kubernetes YAML マニフェストのコレクションです。

現在実装されているプレーンバンドル形式は、plain+v0 形式です。バンドル形式の名前 plain+v0 は、バンドルのタイプ (plain) と現在のスキーマバージョン (v0) を組み合わせたものです。

注記

plain+v0 バンドル形式はスキーマバージョン v0 です。これは、変更される可能性がある実験的な形式であることを意味します。

たとえば、以下は、plain+v0 バンドルのファイルツリーを示しています。アプリケーションのデプロイに必要な Kubernetes リソースを含む manifests/ ディレクトリーが必要です。

plain+v0 バンドルファイルツリーの例

$ tree manifests

manifests
├── namespace.yaml
├── service_account.yaml
├── cluster_role.yaml
├── cluster_role_binding.yaml
└── deployment.yaml

静的マニフェストは、プロビジョナーがアンパックできる有効な plain+v0 バンドルになるように、少なくとも 1 つのリソースを含む manifests/ ディレクトリーに配置する必要があります。manifests/ ディレクトリーもフラットである必要があります。すべてのマニフェストは、サブディレクトリーのない最上位にある必要があります。

重要

静的なマニフェストではないプレーンバンドルの manifests/ ディレクトリーにコンテンツを含めないでください。そうしないと、そのバンドルからクラスター上でコンテンツを作成するときにエラーが発生します。oc apply コマンドで正常に適用されないファイルは、エラーになります。マルチオブジェクト YAML または JSON ファイルも有効です。

7.2.3.3.3. レジストリーバンドルの仕様

レジストリーバンドル、または registry+v1 バンドルには、従来の Operator Lifecycle Manager (OLM) バンドル形式で編成された一連の静的 Kubernetes YAML マニフェストが含まれています。

7.2.3.4. BundleDeployment

警告

BundleDeployment オブジェクトは、オブジェクトのインストールと削除によって Kubernetes クラスターの状態を変更します。インストールされるコンテンツを検証して信頼し、RBAC を使用して BundleDeployment API へのアクセスを、それらのアクセス許可を必要とするユーザーのみに制限することが重要です。

RukPak BundleDeployment API は Bundle オブジェクトを指し、それがアクティブであることを示します。これには、アクティブなバンドルの古いバージョンからのピボットが含まれます。BundleDeployment オブジェクトには、目的のバンドルの組み込み仕様も含まれる場合があります。

Pod がコンテナーイメージのインスタンスを生成するのと同じように、バンドルのデプロイではデプロイされたバージョンのバンドルが生成されます。バンドルのデプロイは、Pod の概念の一般化と見なすことができます。

バンドルのデプロイが参照されたバンドルに基づいてクラスターに変更を加える方法の詳細は、そのバンドルのデプロイを監視するように設定されているプロビジョナーによって定義されます。

プレーンプロビジョナーと連携するように設定された BundleDeployment オブジェクトの例

apiVersion: core.rukpak.io/v1alpha1
kind: BundleDeployment
metadata:
  name: my-bundle-deployment
spec:
  provisionerClassName: core-rukpak-io-plain
  template:
    metadata:
      labels:
        app: my-bundle
    spec:
      source:
        type: image
        image:
          ref: my-bundle@sha256:xyz123
      provisionerClassName: core-rukpak-io-plain

7.2.4. OLM 1.0 での依存関係の解決 (テクノロジープレビュー)

Operator Lifecycle Manager (OLM) 1.0 は、RukPak バンドルのカタログに対する制約を解決するために依存関係マネージャーを使用します。

重要

OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.2.4.1. 概念

ユーザーは、パッケージマネージャーが以下を決して実行しないことを希望しています。

  • 依存関係を満たさないパッケージ、または別のパッケージの依存関係と競合するパッケージをインストールする。
  • 現行のインストール可能なパッケージセットでは制約が満たされないパッケージをインストールする。
  • 依存する別のパッケージを破壊するパッケージ更新を実行する。
7.2.4.1.1. 解決に成功する例

ユーザーは、次の依存関係を持つパッケージ A および B をインストールしたいと考えています。

パッケージ A v0.1.0

パッケージ B latest

↓(依存する)

↓(依存する)

パッケージ C v0.1.0

パッケージ D latest

さらに、ユーザーは A のバージョンを v0.1.0 に固定したいと考えています。

OLM 1.0 に渡されたパッケージと制約

パッケージ

  • A
  • B

制約

  • A v0.1.0 は C v0.1.0 に依存します。
  • A は v0.1.0 に固定されています。
  • B は D に依存します。

出力

  • 解決されたセット:

    • A v0.1.0
    • B latest
    • C v0.1.0
    • D latest
7.2.4.1.2. 解決に失敗する例

ユーザーは、次の依存関係を持つパッケージ A および B をインストールしたいと考えています。

パッケージ A v0.1.0

パッケージ B latest

↓(依存する)

↓(依存する)

パッケージ C v0.1.0

パッケージ C v0.2.0

さらに、ユーザーは A のバージョンを v0.1.0 に固定したいと考えています。

OLM 1.0 に渡されたパッケージと制約

パッケージ

  • A
  • B

制約

  • A v0.1.0 は C v0.1.0 に依存します。
  • A は v0.1.0 に固定されています。
  • B latest は C v0.2.0 に依存します。

出力

  • 解決されたセット:

    • A v0.1.0 には C v0.1.0 が必要であり、それは C v0.2.0 を必要とする B latest と競合するため、解決できません。

7.2.5. Catalogd (テクノロジープレビュー)

Operator Lifecycle Manager (OLM) 1.0 は、catalogd コンポーネントとそのリソースを使用して、Operator カタログと機能拡張カタログを管理します。

重要

OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.2.5.1. OLM 1.0 のカタログについて

catalogd コンポーネントを使用して、Operator やコントローラーなどの Kubernetes 拡張機能のカタログをクエリーすることで、インストール可能なコンテンツを検出できます。Catalogd は、クラスター上のクライアント用にカタログコンテンツを展開する Kubernetes 機能拡張であり、マイクロサービスの Operator Lifecycle Manager (OLM) 1.0 スイートの一部です。現在、catalogd は、コンテナーイメージとしてパッケージ化および配布されているカタログコンテンツを解凍します。

7.2.5.1.1. OLM 1.0 で Red Hat が提供する Operator カタログ

Operator Lifecycle Manager (OLM) 1.0 には、デフォルトでは Red Hat が提供する Operator カタログが含まれていません。Red Hat が提供するカタログをクラスターに追加する場合は、カタログのカスタムリソース (CR) を作成し、クラスターに適用します。次のカスタムリソース (CR) の例は、OLM 1.0 のカタログリソースを作成する方法を示しています。

Red Hat Operators カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: redhat-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/redhat-operator-index:v4.14

認定 Operator カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: certified-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/certified-operator-index:v4.14

コミュニティー Operator カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: community-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/community-operator-index:v4.14

次のコマンドは、クラスターにカタログを追加します。

コマンド構文

$ oc apply -f <catalog_name>.yaml 1

1
redhat-operators.yaml などのカタログ CR を指定します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.