4.7.2.4. Package Manifest Format カタログイメージのテスト
Operator カタログイメージのコンテンツは、これをコンテナーとして実行し、gRPC API をクエリーして検証できます。イメージをさらにテストするには、カタログソースでイメージを参照して Operator Lifecycle Manager (OLM) でサブスクリプションを解決できます。この例では、以前にビルドされ、サポートされているレジストリーにプッシュされたカスタム redhat-operators
カタログイメージを使用します。
前提条件
- サポートされているレジストリーにプッシュされるカスタム Package Manifest Format カタログイメージ
-
podman
version 1.9.3+ -
oc
version 4.3.5+ Docker v2-2 をサポートするミラーレジストリーへのアクセス
重要OpenShift Container Platform クラスターの内部レジストリーはターゲットレジストリーとして使用できません。これは、ミラーリングプロセスで必要となるタグを使わないプッシュをサポートしないためです。
-
grpcurl
手順
Operator カタログイメージをプルします。
$ podman pull <registry_host_name>:<port>/olm/redhat-operators:v1
イメージを実行します。
$ podman run -p 50051:50051 \ -it <registry_host_name>:<port>/olm/redhat-operators:v1
grpcurl
を使用して利用可能なパッケージの実行中のイメージをクエリーします。$ grpcurl -plaintext localhost:50051 api.Registry/ListPackages
出力例
{ "name": "3scale-operator" } { "name": "amq-broker" } { "name": "amq-online" }
チャネルの最新の Operator バンドルを取得します。
$ grpcurl -plaintext -d '{"pkgName":"kiali-ossm","channelName":"stable"}' localhost:50051 api.Registry/GetBundleForChannel
出力例
{ "csvName": "kiali-operator.v1.0.7", "packageName": "kiali-ossm", "channelName": "stable", ...
イメージのダイジェストを取得します。
$ podman inspect \ --format='{{index .RepoDigests 0}}' \ <registry_host_name>:<port>/olm/redhat-operators:v1
出力例
example_registry:5000/olm/redhat-operators@sha256:f73d42950021f9240389f99ddc5b0c7f1b533c054ba344654ff1edaf6bf827e3
Operator グループが Operator とその依存関係をサポートする namespace
my-ns
にあることを前提とし、イメージダイジェストを使用してCatalogSource
オブジェクトを作成します。以下に例を示します。apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: custom-redhat-operators namespace: my-ns spec: sourceType: grpc image: example_registry:5000/olm/redhat-operators@sha256:f73d42950021f9240389f99ddc5b0c7f1b533c054ba344654ff1edaf6bf827e3 displayName: Red Hat Operators
カタログイメージから、利用可能な最新の
servicemeshoperator
およびその依存関係を解決するサブスクリプションを作成します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: servicemeshoperator namespace: my-ns spec: source: custom-redhat-operators sourceNamespace: my-ns name: servicemeshoperator channel: "1.0"