编写 Catalog 资源
artifacthub-shim 会从文件系统和 Git catalog 源中索引 Tekton 资源。一个 catalog 可以包含 Task、Pipeline 和 StepAction 资源。每个资源按目录进行版本管理,并通过 DevOps Hub UI、兼容 Artifact Hub 的 API,以及 Tekton resolver: hub 进行公开。
目录布局
Catalog 仓库请使用以下布局:
规则:
- 顶级目录为小写的资源类型:
task、pipeline或stepaction。 - 版本目录必须包含一个以资源命名的 YAML manifest。
metadata.name必须与包目录名称一致。metadata.labels["app.kubernetes.io/version"]应与版本目录一致。- 建议提供
README.md,因为它会显示在 UI 详情页中。 - 可选的资源目录(例如
config/)可以包含 ConfigMaps,这些 ConfigMaps 会通过extraResources进行同步,而不会被索引为 catalog 包。可将其用于支持性资源,例如概览模板和工具镜像选择器选项。请参阅 配置自定义 Git 仓库、 使用模板自定义 Task 概览 和 向选择器添加自定义 Task 镜像。
必需元数据
每个被索引的资源都应包含描述和版本元数据:
请不要在新的 catalog 内容中使用 ClusterTask。Tekton Pipelines v1 使用命名空间级的 Task 资源。
Resolver 引用
通过 artifacthub-shim 解析资源时,请使用 type: artifact。
内置 catalog 名称:
只有当打包的 catalog 包含 stepaction/ 目录时,才会注册内置的 StepAction catalog。
有关完整的 resolver 语法,请参阅 使用 Hub Resolver 消费资源。
验证清单
- 路径符合
<kind>/<name>/<version>/<name>.yaml。 - manifest 名称与目录名称一致。
- 版本标签与版本目录一致。
spec.description已提供且内容有用。- 参数、workspaces 和 results 都有描述。
- 示例和 README 示例使用
type: artifact。 - 必须同步到集群的其他 ConfigMaps 具有
artifacthub-shim.alauda.io/import: "true"。