10.5. 测试 Operator 目录镜像。
要验证 Operator 目录镜像内容,您可以将其作为容器运行并查询其 gRPC API。要进一步测试镜像,您可以通过引用 CatalogSource 中的镜像来解析 OLM 订阅。本例中的流程使用之前构建并推送到受支持的 registry 的自定义 redhat-operators 目录镜像。
先决条件
- 推送到受支持的 registry 的自定义 Operator 目录镜像
-
podman1.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"