创建 TriggerTemplate
TIP
有关 TriggerTemplate 的全面理解,包括其架构、优势和底层原理,请参阅TriggerTemplate 深入理解文档。
目录
概述
TriggerTemplate 是一种资源,用于定义资源的蓝图,这些资源可以在 EventListener 检测到事件时被实例化和执行,例如 TaskRun 或 PipelineRun。它提供参数化功能,允许你在资源模板中的任何位置使用这些参数。
支持的资源类型
TriggerTemplate 当前支持以下 Tekton Pipelines 资源:
建议:对以下资源使用
tekton.dev/v1;tekton.dev/v1beta1仍被接受,但已弃用,将在未来版本中移除。
基本结构
以下是一个典型的 TriggerTemplate 定义示例:
参数配置
1. 参数定义
在 spec.params 中定义参数:
2. 参数使用
在资源模板中使用参数:
- 基本语法:
$(tt.params.parameter_name) - 示例:
$(tt.params.gitrevision)
3. 参数类型
TriggerTemplate 中的参数仅支持字符串类型值。每个参数包含以下字段:
name:参数名称(必填)description:参数描述(可选)default:默认值,必须是字符串(可选)
Note
注意:虽然参数值只能是字符串,但你可以在字符串中包含格式化内容(例如 JSON 字符串),并在使用时进行解析。
JSON 对象处理
传递 JSON 数据时,需要将其作为字符串处理:
最佳实践
-
参数命名与组织
- 使用清晰、描述性的参数名称
- 为所有参数提供描述
- 适当使用默认值
-
模板设计
- 保持模板的可复用性
- 使用动态名称生成
- 适当拆分复杂模板
-
错误处理
- 为关键参数提供默认值
- 使用 CEL 拦截器验证参数
- 实施适当的错误处理机制
常见问题
-
参数解析错误
- 检查参数语法
- 验证 JSON 对象格式
- 确认参数名称匹配
-
资源创建失败
- 检查资源模板格式
- 验证参数值
- 审查系统权限
-
命名冲突
- 使用 generateName
- 实施唯一性检查