Add Custom Task Images to Selector
本指南说明如何为 UI 中 Task 表单的 image 参数配置 selector 选项,涵盖以下两种场景:
- 为 hub Tasks 添加镜像
- 为 您自己的命名空间 Tasks 添加镜像
目录
功能概述使用场景前提条件场景 A:为 Hub Task selector 添加镜像1. 从 Task 描述符中查找标签选择器2. 在 kube-public 中创建 ConfigMap3. 应用并验证场景 B:为您自己的 Task selector 添加镜像1. 在 Task 上配置style.tekton.dev/descriptors2. 在 kube-public 创建匹配的 ConfigMap3. 应用并验证维护建议功能概述
- 每个 selector 选项来自一个带有
data.name(标签)和data.image(值)的ConfigMap。 - 任务特定标签(例如,
catalog.tekton.dev/tool-image-python)使 UI 能将ConfigMaps匹配到正确的Task参数。 - UI 使用
Task注解中指定的命名空间(例如kube-public)和Task描述符中定义的标签选择器查询该命名空间,然后用查询结果渲染 selector。
使用场景
- 为
Taskselector 添加自定义镜像仓库镜像。 - 在现有 selector 选项旁引入新的运行时小版本。
- 为自定义
Task提供加固镜像选项。
前提条件
- 已安装 Tekton Pipelines。
- 您可以在
kube-public中创建ConfigMaps。 - 您可以在目标
Task上设置style.tekton.dev/descriptors(Hub Tasks已提供,定制Tasks需要您自行添加)。
场景 A:为 Hub Task selector 添加镜像
当扩展 Hub Task 的 selector 时,使用此路径。
1. 从 Task 描述符中查找标签选择器
定位 Task 上的 style.tekton.dev/descriptors 注解,找到 path 指向 image 参数的条目。
以 urn:alm:descriptor:expression:props.options:api 结尾的描述符包含 labelSelector=... 查询;该标签键必须存在于您的 ConfigMap 上。
以下示例中,您需要在 kube-public 命名空间创建带有 catalog.tekton.dev/tool-image-python 标签的 ConfigMap。
有关 style.tekton.dev/descriptors 的更多信息,请参见 How to Configure Dynamic Forms。
2. 在 kube-public 中创建 ConfigMap
使用该标签键创建一个 ConfigMap。
默认 Tasks 会附带带有
catalog.tekton.dev/source: system标签的ConfigMaps,表示平台提供的条目。请勿修改或删除这些标签,且您的自定义ConfigMaps不应包含此标签。
3. 应用并验证
打开 Task 表单;selector 应包含 Python 3.10,并将镜像设置为 registry.example.com/tekton/python:3.10。
场景 B:为您自己的 Task selector 添加镜像
当您控制 Task 定义且需要配置 descriptors 及 ConfigMaps 时,使用此路径。
1. 在 Task 上配置 style.tekton.dev/descriptors
镜像 selector 的示例 Task 描述符:
描述符条目及含义:
有关 style.tekton.dev/descriptors 的更多信息,请参见 How to Configure Dynamic Forms。
2. 在 kube-public 创建匹配的 ConfigMap
使用与描述符查询相同的标签键。对于自定义 Tasks,建议使用不会与默认 Task selector 冲突的标签键,以避免在 Hub Tasks 中意外显示。
默认 Tasks 会附带带有
catalog.tekton.dev/source: system标签的ConfigMaps,表示平台提供的条目。请勿修改或删除这些标签,且您的自定义ConfigMaps不应包含此标签。
您也可以将 ConfigMap 放置在您喜欢的其他命名空间;只需确保 ConfigMap 的命名空间与 Task 的 style.tekton.dev/descriptors 注解中指定的命名空间相同。
例如,您可以将 Task 的注解设置如下,请将 <NAMESPACE> 替换为您的命名空间。
3. 应用并验证
打开您的 Task 表单;selector 应列出 Python 3.13 (Team Edition),并将镜像设置为 registry.example.com/internal/python:3.13。
维护建议
- 通过编辑并重新应用其
ConfigMap来更新自定义选项。 - 通过删除仅您自定义的
ConfigMap来废弃选项;保留任何带有catalog.tekton.dev/source: system标签的ConfigMap不变。