Menu Close
Settings Close

Language and Page Formatting Options

10.5. Operator カタログイメージのテスト

Operator カタログイメージのコンテンツは、これをコンテナーとして実行し、gRPC API をクエリーして検証できます。イメージをさらにテストするには、CatalogSource でイメージを参照して OLM サブスクリプションを解決できます。この例では、以前にビルドされ、サポートされているレジストリーにプッシュされたカスタム redhat-operators カタログイメージを使用します。

前提条件

  • サポートされているレジストリーにプッシュされるカスタム Operator カタログイメージ
  • podman version 1.4.4+
  • oc version 4.3.5+
  • Docker v2-2 をサポートするミラーレジストリーへのアクセス
  • 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. OperatorGroup が 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"