了解 Tekton Hub

Tekton Hub 是一个基于网页的图形界面,作为 Tekton 资源的集中存储库和发现平台。它提供了一种用户友好的方式来访问、搜索和共享来自 Tekton Catalog 的可重用 Tekton 组件,使开发人员能够快速找到并将预构建的 CI/CD 构建模块集成到他们的流水线中。

术语

术语描述
Catalog按照 Tekton Catalog Organization TEP 结构组织的 Tekton 资源集合
Resource存储在 catalog 中的 Tekton 组件,如 Task、Pipeline 或其他构建模块
Rating用户对 Tekton Hub 中资源提供的反馈评分
Category按资源的用途或功能进行的分类
API Service为 Tekton Hub 提供数据访问和管理的后端服务
UI用户与 Tekton Hub 交互的网页界面

为什么需要 Tekton Hub

资源发现与复用的挑战

在传统的 CI/CD 环境中,团队经常面临发现和共享可重用组件的挑战。没有集中存储库时,开发人员常常:

  • 重新造轮子,从头创建类似的流水线组件
  • 难以找到高质量、经过测试的常用任务组件
  • 缺乏对组织内部或更广泛社区中已有组件的可见性
  • 难以判断哪些组件维护良好且可靠

这导致团队和项目之间效率低下、不一致以及重复劳动。

Tekton Hub 的解决方案

Tekton Hub 通过提供一个集中平台来解决这些挑战,该平台:

  • 汇聚来自多个 catalog 的 Tekton 资源,形成可搜索的存储库
  • 使用户能够发现、评估和使用预构建组件
  • 提供评分系统,帮助识别高质量资源
  • 提供每个资源的详细信息,包括版本、文档和示例
  • 简化将这些资源集成到流水线中的流程

通过集中资源发现和管理,Tekton Hub 促进了 Tekton 生态系统中的复用、标准化和协作。

优势

  • 简化发现:易用的网页界面,方便查找 Tekton 资源
  • 提升复用性:促进经过充分测试组件的共享和复用
  • 质量保障:评分系统帮助用户识别可靠资源
  • 版本管理:跟踪资源的多个版本以保证兼容性
  • 分类管理:按类型和用途组织资源,便于导航
  • 身份认证:支持多种认证方式(GitHub、GitLab、BitBucket)
  • API 访问:提供版本化和内部 API 以便集成

场景

场景 1:开发人员寻找 CI 组件

开发人员需要为新项目搭建 CI 流水线。无需从头创建所有任务,他们访问 Tekton Hub 搜索预构建组件。找到用于运行测试、构建容器和漏洞扫描的任务后,只需几次点击即可查看文档、检查评分并将这些组件安装到 Kubernetes 集群中。

场景 2:平台团队管理自定义 Catalog

平台工程团队希望在组织内创建并共享标准化的 CI/CD 组件。他们按照 Tekton Catalog 结构创建自定义 catalog,将其添加到 Tekton Hub 部署中,并向所有开发人员开放。这确保了团队间的一致性和最佳实践。

场景 3:贡献给社区

开发人员创建了一个针对特定工具的有用 Task,想要与社区共享。经过测试和文档编写后,他们将该 Task 贡献到公共 catalog。经审核后,该资源通过 Tekton Hub 向其他用户开放,供其发现和使用。

约束与限制

  • 需要 Kubernetes 集群进行部署
  • Catalog 必须遵循 Tekton Catalog Organization TEP 中定义的结构
  • 某些操作(如资源评分)需要身份认证
  • 自定义 catalog 需手动添加到配置中
  • 资源仅限于已配置 catalog 中可用的内容

原则

架构

Tekton Hub 由三个主要组件组成:

  1. Database:存储 catalog、resource 和用户信息的 PostgreSQL 数据库
  2. API Service:提供数据访问和管理的后端服务

API Service 与数据库通信,存储和检索资源及 catalog 信息。它定期刷新 catalog 数据,确保最新资源可用。

资源管理工作流

  1. Catalog 注册:在 Tekton Hub 配置中注册 catalog
  2. Catalog 刷新:系统定期扫描 catalog 以获取新增或更新的资源
  3. 资源索引:对资源进行元数据索引以提高搜索效率
  4. 资源发现:用户通过 UI 搜索和浏览资源
  5. 资源安装:用户可将资源直接安装到 Kubernetes 集群中

参考资料