架构
Tekton Operator 架构概述
Tekton Operator 是一个 Kubernetes 扩展,用于在任何 Kubernetes 集群上安装、升级和管理 TektonCD 组件。它遵循 Kubernetes Operator 模式,以提供 Tekton 组件的生命周期管理。

核心组件
1. 自定义资源定义 (CRDs)
Tekton Operator 定义了若干自定义资源,以管理不同的 Tekton 组件:
- TektonConfig: 顶层资源,用于协调其他组件的安装
- TektonPipeline: 管理 Tekton Pipelines 组件
- TektonTrigger: 管理 Tekton Triggers 组件
- TektonResult: 管理 Tekton Results 组件
- TektonChain: 管理 Tekton Chains 组件
- OpenShiftPipelinesAsCode: 管理 Pipelines as Code 组件
2. 控制器
操作器控制器监视这些自定义资源的变化,并协调实际状态与期望状态:
- 检测自定义资源中的变化
- 安装或升级相应的 Tekton 组件
- 管理组件之间的依赖关系
- 处理配置变化
- 执行健康检查和错误恢复
3. Webhook
Webhook 组件为自定义资源提供验证和默认值设置:
- 验证自定义资源配置
- 在必要时设置默认值
- 防止无效配置
工作流程
-
操作器的安装
- 操作器可以通过 Operator Hub、发布文件或源代码进行安装
- 创建必要的 CRDs 和 RBAC 权限
-
资源创建
- 用户创建 TektonConfig 资源(或单个组件资源)
- 定义期望的状态和配置
-
组件安装
- 操作器检测到自定义资源
- 安装指定的 Tekton 组件
- 根据规范进行配置
-
生命周期管理
部署架构
基本组件
-
操作器部署
- 包含控制器和 webhook
- 需要集群级别的权限
- 监视自定义资源
-
自定义资源
组件关系
TektonConfig 资源协调其他资源的创建:
-
依赖管理
- 确保组件按正确顺序安装
- 管理共享资源
- 处理组件间的相互依赖
-
配置传播
- 将公共设置传递给组件特定资源
- 确保组件之间的一致性
安全架构
-
RBAC 权限
- 操作器需要集群级别的权限
- 组件使用命名空间级别的权限
- 遵循最小权限原则
-
资源隔离
可扩展性设计
- 配置选项
- 为每个组件提供广泛的配置选项
- 支持自定义设置和配置文件
参考资料