×

opm 命令行界面 (CLI) 是一个用于创建和维护操作符目录的工具。

opm CLI 语法
$ opm <command> [<subcommand>] [<argument>] [<flags>]

opm CLI 不向前兼容。用于生成目录内容的 opm CLI 版本必须早于或等于用于在集群上提供内容的版本。

表 1. 全局标志
标志 描述

-skip-tls-verify

在拉取 bundle 或索引时,跳过容器镜像仓库的 TLS 证书验证。

--use-http

拉取 bundle 时,对容器镜像仓库使用纯 HTTP。

基于 SQLite 的目录格式及其相关的 CLI 命令是一个已弃用的功能。已弃用的功能仍在 OpenShift Dedicated 中包含并继续受到支持;但是,它将在该产品的未来版本中移除,并且不建议用于新的部署。

generate

为声明式配置索引生成各种工件。

命令语法
$ opm generate <subcommand> [<flags>]
表 2. generate 子命令
子命令 描述

Dockerfile

为声明式配置索引生成 Dockerfile。

表 3. generate 标志
标志 描述

-h, --help

generate 的帮助。

dockerfile

为声明式配置索引生成 Dockerfile。

此命令在与 <dcRootDir> 相同的目录中创建一个 Dockerfile(名为 <dcDirName>.Dockerfile),用于构建索引。如果已存在同名的 Dockerfile,则此命令将失败。

在指定额外标签时,如果存在重复的键,则每个重复键的最后一个值将添加到生成的 Dockerfile 中。

命令语法
$ opm generate dockerfile <dcRootDir> [<flags>]
表 4. generate dockerfile 标志
标志 描述

-i, --binary-image (字符串)

用于构建目录的镜像。默认值为 quay.io/operator-framework/opm:latest

-l, --extra-labels (字符串)

要包含在生成的 Dockerfile 中的额外标签。标签格式为 key=value

-h, --help

Dockerfile 的帮助。

要使用官方的 Red Hat 镜像进行构建,请使用 registry.redhat.io/openshift4/ose-operator-registry:v 值以及 -i 标志。

index

从预先存在的 Operator bundle 生成用于 SQLite 数据库格式容器镜像的操作符索引。

从 OpenShift Dedicated 4.11 开始,默认的 Red Hat 提供的操作符目录以基于文件的目录格式发布。OpenShift Dedicated 4.6 到 4.10 的默认 Red Hat 提供的操作符目录以已弃用的 SQLite 数据库格式发布。

与 SQLite 数据库格式相关的 opm 子命令、标志和功能也已弃用,并将从未来的版本中移除。这些功能仍然受支持,并且必须用于使用已弃用的 SQLite 数据库格式的目录。

许多用于处理 SQLite 数据库格式的 opm 子命令和标志,例如 opm index prune,都不能与基于文件的目录格式一起使用。

命令语法
$ opm index <subcommand> [<flags>]
表 5. index 子命令
子命令 描述

添加

将 Operator bundle 添加到索引。

修剪

修剪索引,只保留指定的包。

修剪孤立的

修剪索引中孤立的 bundle,这些 bundle 与特定镜像没有关联。

删除

从索引中删除整个 Operator。

add

将 Operator bundle 添加到索引。

命令语法
$ opm index add [<flags>]
表 6. index add 标志
标志 描述

-i, --binary-image

用于镜像上 opm 命令的容器镜像

-u, --build-tool (字符串)

用于构建容器镜像的工具:podman(默认值)或 docker。覆盖 --container-tool 标志的一部分。

-b, --bundles (字符串)

要添加的 bundle 的逗号分隔列表。

-c, --container-tool (字符串)

用于与容器镜像交互的工具,例如保存和构建:dockerpodman

-f, --from-index (字符串)

要添加到其中的先前索引。

--generate

如果启用,则只创建 Dockerfile 并将其保存到本地磁盘。

--mode (字符串)

定义如何更新通道图的图更新模式:replaces(默认值)、semversemver-skippatch

-d, --out-dockerfile (字符串)

可选:如果生成 Dockerfile,请指定文件名。

--permissive

允许注册表加载错误。

-p, --pull-tool (字符串)

拉取容器镜像的工具:none(默认值)、dockerpodman。会覆盖 --container-tool 标志的部分内容。

-t, --tag (字符串)

正在构建的容器镜像的自定义标签。

prune

修剪索引,只保留指定的包。

命令语法
$ opm index prune [<flags>]
表 7. index prune 标志
标志 描述

-i, --binary-image

用于镜像上 opm 命令的容器镜像

-c, --container-tool (字符串)

用于与容器镜像交互的工具,例如保存和构建:dockerpodman

-f, --from-index (字符串)

要修剪的索引。

--generate

如果启用,则只创建 Dockerfile 并将其保存到本地磁盘。

-d, --out-dockerfile (字符串)

可选:如果生成 Dockerfile,请指定文件名。

-p, --packages (字符串)

要保留的包的逗号分隔列表。

--permissive

允许注册表加载错误。

-t, --tag (字符串)

正在构建的容器镜像的自定义标签。

prune-stranded

修剪索引中孤立的 bundle,这些 bundle 与特定镜像没有关联。

命令语法
$ opm index prune-stranded [<flags>]
表 8. index prune-stranded 标志
标志 描述

-i, --binary-image

用于镜像上 opm 命令的容器镜像

-c, --container-tool (字符串)

用于与容器镜像交互的工具,例如保存和构建:dockerpodman

-f, --from-index (字符串)

要修剪的索引。

--generate

如果启用,则只创建 Dockerfile 并将其保存到本地磁盘。

-d, --out-dockerfile (字符串)

可选:如果生成 Dockerfile,请指定文件名。

-p, --packages (字符串)

要保留的包的逗号分隔列表。

--permissive

允许注册表加载错误。

-t, --tag (字符串)

正在构建的容器镜像的自定义标签。

rm

从索引中删除整个 Operator。

命令语法
$ opm index rm [<flags>]
表 9. index rm 标志
标志 描述

-i, --binary-image

用于镜像上 opm 命令的容器镜像

-u, --build-tool (字符串)

用于构建容器镜像的工具:podman(默认值)或 docker。覆盖 --container-tool 标志的一部分。

-c, --container-tool (字符串)

用于与容器镜像交互的工具,例如保存和构建:dockerpodman

-f, --from-index (字符串)

要从中删除的上一个索引。

--generate

如果启用,则只创建 Dockerfile 并将其保存到本地磁盘。

-o, --operators (字符串)

要删除的运算符的逗号分隔列表。

-d, --out-dockerfile (字符串)

可选:如果生成 Dockerfile,请指定文件名。

-p, --packages (字符串)

要保留的包的逗号分隔列表。

--permissive

允许注册表加载错误。

-p, --pull-tool (字符串)

拉取容器镜像的工具:none(默认值)、dockerpodman。会覆盖 --container-tool 标志的部分内容。

-t, --tag (字符串)

正在构建的容器镜像的自定义标签。

init

生成一个 olm.package 声明式配置块。

命令语法
$ opm init <package_name> [<flags>]
表 10. init 标志
标志 描述

-c, --default-channel (字符串)

如果未指定,订阅将默认为此通道。

-d, --description (字符串)

运算符的 README.md 或其他文档的路径。

-i, --icon (字符串)

包图标的路径。

-o, --output (字符串)

输出格式:json(默认值)或 yaml

migrate

将 SQLite 数据库格式的索引镜像或数据库文件迁移到基于文件的目录。

基于 SQLite 的目录格式及其相关的 CLI 命令是一个已弃用的功能。已弃用的功能仍在 OpenShift Dedicated 中包含并继续受到支持;但是,它将在该产品的未来版本中移除,并且不建议用于新的部署。

命令语法
$ opm migrate <index_ref> <output_dir> [<flags>]
表 11. migrate 标志
标志 描述

-o, --output (字符串)

输出格式:json(默认值)或 yaml

render

根据提供的索引镜像、捆绑包镜像和 SQLite 数据库文件生成声明式配置块。

命令语法
$ opm render <index_image | bundle_image | sqlite_file> [<flags>]
表 12. render 标志
标志 描述

-o, --output (字符串)

输出格式:json(默认值)或 yaml

serve

通过 GRPC 服务器提供声明式配置。

声明式配置目录在启动时由 serve 命令加载。在此命令启动后对声明式配置所做的更改不会反映在已提供的內容中。

命令语法
$ opm serve <source_path> [<flags>]
表 13. serve 标志
标志 描述

--cache-dir (字符串)

如果设置此标志,它将同步和持久化服务器缓存目录。

--cache-enforce-integrity

如果缓存不存在或已失效,则以错误退出。当设置 --cache-dir 标志且 --cache-only 标志为 false 时,默认值为 true。否则,默认为 false

--cache-only

同步服务缓存并退出而不提供服务。

--debug

启用调试日志记录。

h, --help

serve 的帮助信息。

-p, --port (字符串)

服务的端口号。默认值为 50051

--pprof-addr (字符串)

启动分析端点的地址。格式为 Addr:Port

-t, --termination-log (字符串)

容器终止日志文件的路径。默认值为 /dev/termination-log

validate

验证给定目录中的声明式配置 JSON 文件。

命令语法
$ opm validate <directory> [<flags>]