10.5. 测试 Operator 目录镜像。
要验证 Operator 目录镜像内容,您可以将其作为容器运行并查询其 gRPC API。要进一步测试镜像,您可以通过引用 CatalogSource 中的镜像来解析 OLM 订阅。本例中的流程使用之前构建并推送到受支持的 registry 的自定义 redhat-operators
目录镜像。
先决条件
- 推送到受支持的 registry 的自定义 Operator 目录镜像
-
podman
1.4.4+ 版 -
oc
版本 4.3.5+ - 访问支持 Docker v2-2 的镜像(mirror)registry
-
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
假设命名空间
my-ns
中存在一个支持您的 Operator 及其依赖项的 OperatorGroup,请使用镜像摘要创建一个 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"