TektonConfig
TektonConfig 是 Tekton Operator 提供的顶层自定义资源,使用户能够从单一控制点安装、配置并管理所有 Tekton 组件。它为 Kubernetes 集群内的 Tekton 生态系统管理提供了一种统一的方法。
目录
术语说明为什么需要 TektonConfig管理 Tekton 组件的挑战TektonConfig 如何解决这些问题优势适用场景约束与限制原则TektonConfig 结构关键组件及其关系配置示例最小配置包含所有组件的生产配置重要参数说明Pipeline 配置适用场景约束与限制原则/参数说明Pruner 配置适用场景配置示例参考资料术语说明
为什么需要 TektonConfig
管理 Tekton 组件的挑战
如果没有 TektonConfig,在 Kubernetes 集群中管理 Tekton 组件需要:
- 手动分别安装和配置每个组件
- 单独管理组件版本和兼容性
- 通过自定义脚本处理升级和配置变更
- 分别维护每个组件的配置
- 复杂协调组件之间的依赖关系
这种方法会导致:
- 运维复杂度增加
- 配置错误风险更高
- 难以维护版本兼容性
- 升级和变更耗时
- 不同环境之间的配置不一致
TektonConfig 如何解决这些问题
TektonConfig 提供了一种统一的声明式方法,用于:
- 安装多个组件:通过单个资源部署 Pipelines、Triggers 以及其他组件
- 确保兼容性:Operator 管理组件之间的版本兼容性
- 集中配置:通过单一规范配置所有组件
- 简化升级:通过修改单个资源更新组件版本
- 标准化管理:对所有组件使用一致的模式
- 启用平台特定功能:无缝配置 Kubernetes 或 OpenShift 特定功能
这种集中式方法可显著降低运维复杂度,并确保不同环境之间的配置一致性。
优势
- 管理简化:通过单一资源控制所有 Tekton 组件
- 降低运维开销:由 Operator 负责安装、配置和升级
- 一致性:确保所有组件的配置一致
- 版本兼容性:Operator 确保各组件版本可协同工作
- 平台感知:为 Kubernetes 和 OpenShift 提供平台特定功能
- 声明式配置:使用 Kubernetes 原生方法管理整个 Tekton 技术栈
- 降低错误风险:集中验证可防止错误配置
- 资源清理:内置 pruner 功能用于管理集群资源
适用场景
TektonConfig 在以下场景中至关重要:
- 生产 CI/CD 环境:简化生产级 Tekton 安装的管理。
- 多租户集群:在共享环境中配置并隔离 Tekton 组件。
- 企业级部署:确保多个集群之间的配置一致。
- 受监管环境:维护并验证特定配置以满足合规要求。
- 自动化基础设施:使用 GitOps 方法管理 Tekton 组件。
- 复杂 CI/CD 工作流:协调多个 Tekton 组件以构建完整流水线。
约束与限制
- 需要集群级权限才能安装和管理组件
- 某些配置可能与平台相关(Kubernetes 与 OpenShift)
- 对 TektonConfig 资源的更改可能会触发组件重新部署
- 某些高级配置仍可能需要直接与特定组件资源交互
- 跨 major 版本升级可能需要额外步骤
原则
TektonConfig 结构
TektonConfig 资源具有以下结构:
关键组件及其关系
-
Profile:决定要安装哪些组件
- lite:仅安装基础 Pipeline controller
- basic:安装 Pipeline 和 Triggers controllers
- all:安装所有可用组件
-
targetNamespace:安装组件的 namespace
- 默认通常为
tekton-pipelines - 所有组件都安装在此 namespace 中
- 默认通常为
-
组件配置:各组件的特定设置
- pipeline:Pipeline controller 的配置
- trigger:Triggers controller 的配置
- DevOps Hub catalog:由独立的
artifacthub-shim插件提供;在使用自定义安装位置时,请在pipeline.hub-resolver-config下配置 resolver 默认值。 - result:Tekton Results 的配置
- chain:Tekton Chains 的配置
-
Pruner:自动清理资源的配置
- resources:需要清理的资源类型(TaskRuns、PipelineRuns)
- schedule:清理任务的 Cron 调度
- keep:要保留的资源数量
- keep-since:资源保留时长(秒)
配置示例
最小配置
包含所有组件的生产配置
重要参数说明
Pipeline 配置
pipeline 部分用于配置核心 Pipeline controller。
适用场景
- 控制生产环境的高可用性
- 管理资源受限环境中的资源使用
- 为测试启用实验性功能
- 设置已完成运行的自动清理
约束与限制
- 某些功能可能仅适用于特定 Kubernetes 平台
- 更改 HA 设置可能会导致短暂中断
- Alpha API 字段可能会在不同版本之间发生变化
原则/参数说明
关键参数包括:
- disable-affinity-assistant:控制 workspace 的 affinity assistant
- disable-creds-init:控制凭证初始化
- enable-api-fields:控制 feature gates(stable、alpha、beta)
- performance:控制器性能和扩展设置
- pruner:自动清理资源的配置
Pruner 配置
pruner 会自动清理已完成的 TaskRun 和 PipelineRun,以管理集群资源。
适用场景
- 运行时间较长且包含大量流水线执行的集群
- 执行量较高的 CI/CD 系统
- 存储资源有限的环境
- 需要保留策略的合规场景