×

operator-sdk CLI 可以为每个操作符项目生成或搭建多个包和文件。

Red Hat 支持的 Operator SDK CLI 工具版本(包括与操作符项目相关的脚手架和测试工具)已弃用,计划在未来版本的 OpenShift Dedicated 中移除。Red Hat 将在此版本的生命周期内为此功能提供错误修复和支持,但此功能将不再接收增强功能,并将从未来的 OpenShift Dedicated 版本中移除。

不建议使用 Red Hat 支持的 Operator SDK 版本创建新的操作符项目。拥有现有操作符项目的作者可以使用随 OpenShift Dedicated 发布的 Operator SDK CLI 工具版本来维护其项目并创建针对较新版本的 OpenShift Dedicated 的操作符版本。

操作符项目的以下相关基础镜像_未_被弃用。这些基础镜像的运行时功能和配置 API 仍然支持错误修复和解决 CVE。

  • 基于 Ansible 的操作符项目的基准镜像

  • 基于 Helm 的操作符项目的基准镜像

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

基于 Go 的项目布局

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

文件或目录 用途

main.go

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

apis/

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

controllers/

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

config/

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

Makefile

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

Dockerfile

容器引擎用于构建操作符的指令。

manifests/

用于注册 CRD、设置 RBAC 和将操作符部署为部署的 Kubernetes 清单。