×

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。

  • 基于 Ansible 的 Operator 项目的基础镜像

  • 基于 Helm 的 Operator 项目的基础镜像

有关不受支持的社区维护的 Operator SDK 版本的信息,请参阅 Operator SDK (Operator Framework)

基于 Go 的项目布局

使用 operator-sdk init 命令生成的基于 Go 的 Operator 项目(默认类型)包含以下文件和目录

文件或目录 用途

main.go

Operator 的主程序。它实例化一个新的管理器,该管理器注册 apis/ 目录中的所有自定义资源定义 (CRD),并启动 controllers/ 目录中的所有控制器。

apis/

定义 CRD API 的目录树。您必须编辑 apis/<version>/<kind>_types.go 文件以定义每种资源类型的 API,并在您的控制器中导入这些包以监视这些资源类型。

controllers/

控制器实现。编辑 controller/<kind>_controller.go 文件以定义控制器处理指定类型的资源的协调逻辑。

config/

用于在集群上部署控制器的 Kubernetes 清单,包括 CRD、RBAC 和证书。

Makefile

用于构建和部署控制器的目标。

Dockerfile

容器引擎用于构建您的 Operator 的指令。

manifests/

用于注册 CRD、设置 RBAC 并将 Operator 部署为部署的 Kubernetes 清单。