$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
Operator SDK 命令行界面 (CLI) 是一款旨在简化编写 Operator 的开发工具包。
Red Hat 支持的 Operator SDK CLI 工具版本(包括与 Operator 项目相关的脚手架和测试工具)已弃用,并计划在未来版本的 Red Hat OpenShift Service on AWS 中移除。Red Hat 将在此版本的生命周期内为此功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的 Red Hat OpenShift Service on AWS 版本中移除。 不建议使用 Red Hat 支持的 Operator SDK 版本创建新的 Operator 项目。拥有现有 Operator 项目的 Operator 作者可以使用 Red Hat OpenShift Service on AWS 发布的 Operator SDK CLI 工具版本来维护其项目并创建针对较新版本的 Red Hat OpenShift Service on AWS 的 Operator 版本。 以下与 Operator 项目相关的基本镜像未被弃用。这些基本镜像的运行时功能和配置 API 仍然支持错误修复和解决 CVE。
有关不受支持的社区维护的 Operator SDK 版本的信息,请参阅 Operator SDK (Operator Framework)。 |
$ operator-sdk <command> [<subcommand>] [<argument>] [<flags>]
拥有基于 Kubernetes 的集群(例如 Red Hat OpenShift Service on AWS)的集群管理员访问权限的 Operator 作者可以使用 Operator SDK CLI 基于 Go、Ansible 或 Helm 开发他们自己的 Operator。 Kubebuilder 作为 Go 基于 Operator 的脚手架解决方案嵌入到 Operator SDK 中,这意味着现有的 Kubebuilder 项目可以与 Operator SDK 一起使用,并且可以继续工作。
operator-sdk bundle
命令管理 Operator 包元数据。
bundle validate
子命令验证 Operator 包。
标志 | 描述 |
---|---|
|
|
|
用于拉取和解压包镜像的工具。仅在验证包镜像时使用。可用选项为 |
|
列出所有可用的可选验证器。设置后,不运行任何验证器。 |
|
标签选择器,用于选择要运行的可选验证器。与 |
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.Dockerfile
文件。
通常,您首先运行 |
标志 | 描述 |
---|---|
|
包所属的渠道的逗号分隔列表。默认值为 |
|
|
|
包的默认渠道。 |
|
Operator 清单(例如部署和 RBAC)的根目录。此目录与传递给 |
|
|
|
从中读取现有包的目录。此目录是包 |
|
包含 Kustomize 基础和用于包清单的 |
|
生成包清单。 |
|
生成包元数据和 Dockerfile。 |
|
将包写入到的目录。 |
|
如果包元数据和 Dockerfile 存在,则覆盖它们。默认值为 |
|
包的名称。 |
|
以静默模式运行。 |
|
将包清单写入标准输出。 |
|
生成的包中 Operator 的语义版本。仅在创建新包或升级 Operator 时设置。 |
请参阅打包 Operator,了解完整的流程,其中包括使用make bundle
命令调用generate bundle
子命令。
generate kustomize
子命令包含用于生成Kustomize Operator 数据的子命令。
generate kustomize manifests
子命令在config/manifests
目录中生成或重新生成 Kustomize 基础和kustomization.yaml
文件,这些文件由其他 Operator SDK 命令用于构建包清单。除非已存在基础或您设置了--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) 部署包格式的 Operator。
标志 | 描述 |
---|---|
|
用于注入包的索引镜像。默认镜像为 |
|
Operator 的集群服务版本 (CSV) 支持的安装模式,例如 |
|
安装超时。默认值为 |
|
用于 CLI 请求的 |
|
如果存在,则运行 CLI 请求的命名空间。 |
|
指定用于目录 Pod 的安全上下文。允许的值包括 |
|
|
restricted
安全上下文与default
命名空间不兼容。要配置生产环境中 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
请参阅Operator 组成员资格,了解可能的安装模式的详细信息。
run bundle-upgrade
子命令升级以前使用 Operator Lifecycle Manager (OLM) 以包格式安装的 Operator。
标志 | 描述 |
---|---|
|
升级超时。默认值为 |
|
用于 CLI 请求的 |
|
如果存在,则运行 CLI 请求的命名空间。 |
|
指定用于目录 Pod 的安全上下文。允许的值包括 |
|
|
restricted
安全上下文与default
命名空间不兼容。要配置生产环境中 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
operator-sdk scorecard
命令运行 scorecard 工具来验证 Operator 包并提供改进建议。该命令接受一个参数,即包含清单和元数据的包镜像或目录。如果参数包含镜像标签,则该镜像必须远程存在。
标志 | 描述 |
---|---|
|
scorecard 配置文件的路径。默认路径为 |
|
|
|
|
|
列出可运行的测试。 |
|
运行测试镜像的命名空间。 |
|
结果的输出格式。可用值为 |
|
使用指定的安全上下文运行 scorecard 的选项。允许的值包括 |
|
标签选择器,用于确定运行哪些测试。 |
|
用于测试的服务帐户。默认值为 |
|
在测试运行后禁用资源清理。 |
|
等待测试完成的秒数,例如 |
restricted
安全上下文与default
命名空间不兼容。要配置生产环境中 Operator 的 Pod 安全准入,请参见“遵守 Pod 安全准入”。有关 Pod 安全准入的更多信息,请参见“了解和管理 Pod 安全准入”。
有关运行评分卡工具的详细信息,请参阅使用评分卡工具验证 Operators。