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

手順

  1. Operator カタログイメージをプルします。

    $ podman pull <registry_host_name>:<port>/olm/redhat-operators:v1
  2. イメージを実行します。

    $ podman run -p 50051:50051 \
        -it <registry_host_name>:<port>/olm/redhat-operators:v1
  3. grpcurl を使用して利用可能なパッケージの実行中のイメージをクエリーします。

    $ grpcurl -plaintext localhost:50051 api.Registry/ListPackages

    出力例

    {
      "name": "3scale-operator"
    }
    {
      "name": "amq-broker"
    }
    {
      "name": "amq-online"
    }

  4. チャネルの最新の 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",
    ...

  5. イメージのダイジェストを取得します。

    $ podman inspect \
        --format='{{index .RepoDigests 0}}' \
        <registry_host_name>:<port>/olm/redhat-operators:v1

    出力例

    example_registry:5000/olm/redhat-operators@sha256:f73d42950021f9240389f99ddc5b0c7f1b533c054ba344654ff1edaf6bf827e3

  6. 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
  7. カタログイメージから、利用可能な最新の 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"