5.17. Operator SDK CLI 参考
Operator SDK 命令行界面(CLI)是一个开发组件,旨在更轻松地编写 Operator。
operator SDK CLI 语法
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
具有集群管理员访问权限的 operator 作者(如 OpenShift Container Platform)可以使用 Operator SDK CLI 根据 Go、Ansible 或 Helm 开发自己的 Operator。Kubebuilder 作为基于 Go 的 Operator 的构建解决方案嵌入到 Operator SDK 中,这意味着现有的 Kubebuilder 项目可以象 Operator SDK 一样使用并继续工作。
5.17.1. bundle
operator-sdk bundle
命令管理 Operator 捆绑包元数据。
5.17.1.1. validate
bundle validate
子命令会验证 Operator 捆绑包。
标记 | 描述 |
---|---|
|
|
|
拉取和解包捆绑包镜像的工具。仅在验证捆绑包镜像时使用。可用选项是 |
| 列出所有可用的可选验证器。设置后,不会运行验证器。 |
|
选择要运行的可选验证器的标签选择器。当使用 |
5.17.2. cleanup
operator-sdk cleanup
命令会销毁并删除为通过 run
命令部署的 Operator 创建的资源。
标记 | 描述 |
---|---|
|
|
|
用于 CLI 请求的 |
| 如果存在,代表在其中运行 CLI 请求的命名空间。 |
|
失败前,等待命令完成的时间。默认值为 |
5.17.3. completion
operator-sdk completion
命令生成 shell completion,以便更迅速、更轻松地发出 CLI 命令。
子命令 | 描述 |
---|---|
| 生成 bash completion。 |
| 生成 zsh completion。 |
标记 | 描述 |
---|---|
| 使用方法帮助输出。 |
例如:
$ operator-sdk completion bash
输出示例
# bash completion for operator-sdk -*- shell-script -*- ... # ex: ts=4 sw=4 et filetype=sh
5.17.4. create
operator-sdk create
命令用于创建或 scaffold Kubernetes API。
5.17.4.1. api
create api
子命令构建 Kubernetes API。子命令必须在 init
命令初始化的项目中运行。
标记 | 描述 |
---|---|
|
|
5.17.5. generate
operator-sdk generate
命令调用特定的生成器来生成代码或清单。
5.17.5.1. bundle
generate bundle
子命令为您的 Operator 项目生成一组捆绑包清单、元数据和 bundle.Dockerfile
文件。
通常,您首先运行 generate kustomize manifests
子命令来生成由 generate bundle
子命令使用的输入 Kustomize 基础。但是,您可以使用初始项目中的 make bundle
命令按顺序自动运行这些命令。
标记 | 描述 |
---|---|
|
捆绑包所属频道的以逗号分隔的列表。默认值为 |
|
|
| 捆绑包的默认频道。 |
|
Operator 清单的根目录,如部署和 RBAC。这个目录与传递给 |
|
|
|
从中读取现有捆绑包的目录。这个目录是捆绑包 |
|
包含 Kustomize 基础的目录以及用于捆绑包清单的 |
| 生成捆绑包清单。 |
| 生成捆绑包元数据和 Dockerfile。 |
| 将捆绑包写入的目录。 |
|
如果捆绑包元数据和 Dockerfile 存在,则覆盖它们。默认值为 |
| 捆绑包的软件包名称。 |
| 在静默模式下运行。 |
| 将捆绑包清单写入标准输出。 |
| 生成的捆绑包中的 Operator 语义版本。仅在创建新捆绑包或升级 Operator 时设置。 |
其他资源
-
如需了解包括使用
make bundle
命令调用generate bundle
子命令的完整流程,请参阅捆绑 Operator。
5.17.5.2. kustomize
generate kustomize
子命令包含为 Operator 生成 Kustomize 数据的子命令。
5.17.5.2.1. 清单
generate kustomize manifests
子命令生成或重新生成 Kustomize 基础以及 config/manifests
目录中的 kustomization.yaml
文件,用于其他 Operator SDK 命令构建捆绑包清单。在默认情况下,这个命令会以互动方式询问 UI 元数据,即清单基础的重要组件,除非基础已存在或设置了 --interactive=false
标志。
标记 | 描述 |
---|---|
| API 类型定义的根目录。 |
|
|
| 包含现有 Kustomize 文件的目录。 |
|
当设置为 |
| 写入 Kustomize 文件的目录。 |
| 软件包名称。 |
| 在静默模式下运行。 |
5.17.6. init
operator-sdk init
命令初始化 Operator 项目,并为给定插件生成或 scaffolds 默认项目目录布局。
这个命令会写入以下文件:
- boilerplate 许可证文件
-
带有域和库的
PROJECT
文件 -
构建项目的
Makefile
-
go.mod
文件带有项目依赖项 -
用于自定义清单的
kustomization.yaml
文件 - 用于为管理器清单自定义镜像的补丁文件
- 启用 Prometheus 指标的补丁文件
-
运行的
main.go
文件
标记 | 描述 |
---|---|
|
|
|
插件的名称和可选版本,用于初始化项目。可用插件包括 |
|
项目版本。可用值为 |
5.17.7. run
operator-sdk run
命令提供可在各种环境中启动 Operator 的选项。
5.17.7.1. bundle
run bundle
子命令使用 Operator Lifecycle Manager(OLM)以捆绑包格式部署 Operator。
标记 | 描述 |
---|---|
|
在其中注入捆绑包的索引镜像。默认镜像为 |
|
安装 Operator 的集群服务版本(CSV)支持的模式,如 |
|
安装超时。默认值为 |
|
用于 CLI 请求的 |
| 如果存在,代表在其中运行 CLI 请求的命名空间。 |
|
指定用于目录 pod 的安全上下文。允许的值包括 |
|
|
-
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 pod 安全准入,请参阅"Complying with pod 安全准入"。如需有关 pod 安全准入的更多信息,请参阅"了解和管理 pod 安全准入"。
其他资源
- 有关可能安装模式的详情,请参阅 Operator 组成员资格。
- 遵守 pod 安全准入
- 了解并管理 pod 安全准入
5.17.7.2. bundle-upgrade
run bundle-upgrade
子命令升级之前使用 Operator Lifecycle Manager(OLM)以捆绑包格式安装的 Operator。
标记 | 描述 |
---|---|
|
升级超时。默认值为 |
|
用于 CLI 请求的 |
| 如果存在,代表在其中运行 CLI 请求的命名空间。 |
|
指定用于目录 pod 的安全上下文。允许的值包括 |
|
|
-
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 pod 安全准入,请参阅"Complying with pod 安全准入"。如需有关 pod 安全准入的更多信息,请参阅"了解和管理 pod 安全准入"。
5.17.8. scorecard
operator-sdk scorecard
命令运行 scorecard 工具来验证 Operator 捆绑包并提供改进建议。该命令使用一个参数,可以是捆绑包镜像,也可以是包含清单和元数据的目录。如果参数包含镜像标签,则镜像必须远程存在。
标记 | 描述 |
---|---|
|
scorecard 配置文件的路径。默认路径为 |
|
|
|
|
| 列出哪些测试可以运行。 |
| 运行测试镜像的命名空间。 |
|
结果的输出格式。可用值为 |
|
使用指定安全上下文运行 scorecard 的选项。允许的值包括 |
| 标识选择器以确定要运行哪个测试。 |
|
用于测试的服务帐户。默认值为 |
| 运行测试后禁用资源清理。 |
|
等待测试完成的时间,如 |
-
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 pod 安全准入,请参阅"Complying with pod 安全准入"。如需有关 pod 安全准入的更多信息,请参阅"了解和管理 pod 安全准入"。
其他资源
- 如需有关运行scorecard 工具的详细信息,请参阅使用 scorecard 工具验证 Operator。
- 遵守 pod 安全准入
- 了解并管理 pod 安全准入