$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
Operator SDK 命令行界面 (CLI) 是一款旨在简化 Operator 编写的开发工具包。
红帽支持的 Operator SDK CLI 工具版本(包括与 Operator 项目相关的脚手架和测试工具)已弃用,并计划在未来版本的 OpenShift Dedicated 中移除。红帽将在当前版本生命周期内为此功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的 OpenShift Dedicated 版本中移除。 不建议使用红帽支持的 Operator SDK 版本创建新的 Operator 项目。拥有现有 Operator 项目的 Operator 作者可以使用 OpenShift Dedicated 发布的 Operator SDK CLI 工具版本来维护其项目并创建针对较新版本的 OpenShift Dedicated 的 Operator 版本。 以下与 Operator 项目相关的基础镜像 *未* 被弃用。这些基础镜像的运行时功能和配置 API 仍受支持,用于修复错误和解决 CVE。
有关不受支持的社区维护的 Operator SDK 版本的信息,请参见 Operator SDK (Operator Framework)。 |
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
拥有 Kubernetes 基于集群(例如 OpenShift Dedicated)的集群管理员访问权限的 Operator 作者可以使用 Operator SDK CLI 开发基于 Go、Ansible 或 Helm 的自己的 Operator。Kubebuilder 作为 Go 基于 Operator 的脚手架解决方案嵌入到 Operator SDK 中,这意味着现有 Kubebuilder 项目可以按原样与 Operator SDK 一起使用并继续工作。
operator-sdk bundle
命令管理 Operator bundle 元数据。
bundle validate
子命令验证 Operator bundle。
标志 | 描述 |
---|---|
|
|
|
用于拉取和解压 bundle 镜像的工具。仅在验证 bundle 镜像时使用。可用选项包括 |
|
列出所有可用的可选验证器。设置后,不会运行任何验证器。 |
|
标签选择器,用于选择要运行的可选验证器。与 |
operator-sdk cleanup
命令用于销毁和移除使用 run
命令部署的 Operator 所创建的资源。
标志 | 描述 |
---|---|
|
|
|
CLI 请求使用的 |
|
如果存在,则指定 CLI 请求运行的命名空间。 |
|
等待命令完成的时间,超过此时间则失败。默认值为 |
operator-sdk completion
命令生成 shell 自动补全功能,使 CLI 命令的发出更快更容易。
子命令 | 描述 |
---|---|
|
生成 bash 自动补全脚本。 |
|
生成 zsh 自动补全脚本。 |
标志 | 描述 |
---|---|
|
使用方法帮助输出。 |
例如
$ operator-sdk completion bash
# bash completion for operator-sdk -*- shell-script -*-
...
# ex: ts=4 sw=4 et filetype=sh
operator-sdk generate
命令调用特定生成器来生成代码或清单文件。
generate bundle
子命令为您的 Operator 项目生成一组 bundle 清单文件、元数据和 bundle.Dockerfile
文件。
通常,您首先运行 |
标志 | 描述 |
---|---|
|
bundle 属于的通道的逗号分隔列表。默认值为 |
|
|
|
bundle 的默认通道。 |
|
Operator 清单文件(如部署和 RBAC)的根目录。此目录与传递给 |
|
|
|
从中读取现有 bundle 的目录。此目录是 bundle |
|
包含 Kustomize 基准和 bundle 清单文件的 |
|
生成 bundle 清单文件。 |
|
生成 bundle 元数据和 Dockerfile。 |
|
将 bundle 写入的目录。 |
|
如果 bundle 元数据和 Dockerfile 存在,则覆盖它们。默认值为 |
|
bundle 的包名。 |
|
以静默模式运行。 |
|
将 bundle 清单文件写入标准输出。 |
|
生成的 bundle 中 Operator 的语义版本。仅在创建新的 bundle 或升级 Operator 时设置。 |
请参阅 打包 Operator,了解包含使用 make bundle
命令调用 generate bundle
子命令的完整过程。
generate kustomize
子命令包含用于生成 Kustomize Operator 数据的子命令。
generate kustomize manifests
子命令在 config/manifests
目录中生成或重新生成 Kustomize 基准和 kustomization.yaml
文件,这些文件由其他 Operator SDK 命令用于构建 bundle 清单文件。除非基准已存在或您设置了 --interactive=false
标志,否则此命令默认情况下会交互式地询问 UI 元数据(清单基准的重要组成部分)。
标志 | 描述 |
---|---|
|
API 类型定义的根目录。 |
|
|
|
包含现有 Kustomize 文件的目录。 |
|
设置为 |
|
写入 Kustomize 文件的目录。 |
|
包名。 |
|
以静默模式运行。 |
operator-sdk init
命令初始化 Operator 项目并为给定的插件生成或搭建默认的项目目录布局。
此命令写入以下文件:
样板许可证文件
包含域和存储库的 PROJECT
文件
用于构建项目的 Makefile
包含项目依赖项的 go.mod
文件
用于自定义清单文件的 kustomization.yaml
文件
用于自定义管理器清单文件的镜像的补丁文件
用于启用 Prometheus 指标的补丁文件
用于运行的 main.go
文件
标志 | 描述 |
---|---|
|
|
|
用于初始化项目的插件的名称和可选版本。可用的插件包括 |
|
项目版本。可用值为 |
operator-sdk run
命令提供可在各种环境中启动 Operator 的选项。
run bundle
子命令使用 Operator Lifecycle Manager (OLM) 部署 bundle 格式的 Operator。
标志 | 描述 |
---|---|
|
用于注入 bundle 的索引镜像。默认镜像为 |
|
Operator 的集群服务版本 (CSV) 支持的安装模式,例如 |
|
安装超时。默认值为 |
|
CLI 请求使用的 |
|
如果存在,则指定 CLI 请求运行的命名空间。 |
|
指定用于目录 Pod 的安全上下文。允许的值包括 |
|
|
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
有关可能的安装模式的详细信息,请参见Operator 组成员身份。
run bundle-upgrade
子命令用于升级以前使用 Operator Lifecycle Manager (OLM) 以 bundle 格式安装的 Operator。
标志 | 描述 |
---|---|
|
升级超时。默认值为 |
|
CLI 请求使用的 |
|
如果存在,则指定 CLI 请求运行的命名空间。 |
|
指定用于目录 Pod 的安全上下文。允许的值包括 |
|
|
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
operator-sdk scorecard
命令运行 scorecard 工具来验证 Operator bundle 并提供改进建议。该命令接受一个参数,即包含清单和元数据的 bundle 镜像或目录。如果参数包含镜像标签,则该镜像必须远程存在。
标志 | 描述 |
---|---|
|
指向 scorecard 配置文件的路径。默认路径为 |
|
|
|
指向 |
|
列出可运行的测试。 |
|
运行测试镜像的命名空间。 |
|
结果的输出格式。可用值为 |
|
使用指定的安全上下文运行 scorecard 的选项。允许的值包括 |
|
标签选择器,用于确定要运行哪些测试。 |
|
用于测试的服务帐户。默认值为 |
|
在测试运行后禁用资源清理。 |
|
等待测试完成的秒数,例如 |
restricted
安全上下文与default
命名空间不兼容。要在生产环境中配置 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
有关运行 scorecard 工具的详细信息,请参见使用 scorecard 工具验证 Operator。