搜索

5.3.3. 基于 Go 的 Operator 的项目布局

download PDF

operator-sdk CLI 可为每个 Operator 项目生成或 scaffold 多个 软件包和文件。

5.3.3.1. 基于 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

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

Docker

容器引擎用来构建 Operator 的说明。

manifests/

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.