logo
Alauda DevOps Pipelines Docs
logo
Alauda DevOps Pipelines Docs
Navigation

Overview

Introduction
Architecture
Feature Overview
Lifecycle Policy
Quick Start
Release Notes

Concepts

TektonConfig
TektonPipeline
Install
Upgrade

Configure

Adjusting Optional Configuration Items of Subcomponents
Configuring Resource Quotas for Pipeline Components
Pod Template Configuration Guide
Regular Cleanup of TaskRun and PipelineRun Resources

How To

Deploying tekton-pipelines in a global cluster through TektonConfig

Pipelines

Introduction
Architecture

Concepts

Tasks
TaskRuns
Pipelines
PipelineRuns
StepActions
Resolvers
Workspaces
Pod Templates
Quick Start
permissions

how_to

Adjust Dockerfile for Building Task-Compatible Custom Images

trouble_shooting

Failed to create pod due to config error when using custom images in Tekton

Triggers

Introduction
Architecture

Core Concepts

Core Concepts
EventListener
Trigger
Interceptor
TriggerBinding
TriggerTemplate
Quick Start

How To

Setup EventListener
Use GitLab Event Triggers
Create TriggerTemplate

Troubleshooting

The Pipeline is not automatically triggered
Permission Description

Hub

Introduction
Architecture

Core Concepts

Concepts
Understanding Tekton Hub
Permission Description

Configure

Tekton Hub Configuration
Adding Custom Catalogs

Tutorials

Creating a Custom Catalog
Writing Tasks for Tekton Hub
Writing Pipelines for Tekton Hub

Results

Introduction
Architecture

Concepts

Core Concepts
Tekton Results
Quick Start
permissions

Configure

Database Configuration

Supply Chain Security

Introduction
Architecture

Concepts

Core Concepts
Understanding Tekton Chains
Quick Start

API Reference

Introduction

Kubernetes APIs

Pipelines

Pipeline [tekton.dev/v1]
Task [tekton.dev/v1]
PipelineRun [tekton.dev/v1]
TaskRun [tekton.dev/v1]
ClusterTask [tekton.dev/v1]
Run [tekton.dev/v1]
CustomRun [tekton.dev/v1]
StepAction [tekton.dev/v1]
VerificationPolicy [tekton.dev/v1alpha1]
ResolutionRequest [resolution.tekton.dev/v1beta1]

Triggers

Trigger [triggers.tekton.dev/v1beta1]
TriggerTemplate [triggers.tekton.dev/v1beta1]
EventListener [triggers.tekton.dev/v1beta1]
TriggerBinding [triggers.tekton.dev/v1beta1]
Interceptor [triggers.tekton.dev/v1alpha1]
ClusterTriggerBinding [triggers.tekton.dev/v1beta1]
ClusterInterceptor [triggers.tekton.dev/v1alpha1]

Operator

TektonConfig [operator.tekton.dev/v1alpha1]
TektonInstallerSet [operator.tekton.dev/v1alpha1]
TektonPipeline [operator.tekton.dev/v1alpha1]
TektonTrigger [operator.tekton.dev/v1alpha1]
TektonChain [operator.tekton.dev/v1alpha1]
TektonHub [operator.tekton.dev/v1alpha1]
TektonResult [operator.tekton.dev/v1alpha1]
TektonInstallerSet [operator.tekton.dev/v1alpha1]
OpenShift Pipelines as Code [operator.tekton.dev/v1alpha1]

Advanced APIs

Results

Introduction to API Usage
Results List
Results Details
Result records List
Result logs List
📝 Edit this page on GitHub
Previous PageUse GitLab Event Triggers
Next PageTroubleshooting

#Create TriggerTemplate

TIP

For a comprehensive understanding of TriggerTemplates, including their architecture, advantages, and underlying principles, see the In-Depth Understanding of TriggerTemplate document.

#TOC

#Overview

A TriggerTemplate is a resource used to define a blueprint for resources that can be instantiated and executed, such as TaskRun or PipelineRun, when the EventListener detects an event. It offers parameterization capabilities, allowing you to use these parameters anywhere within the resource template.

#Supported Resource Types

TriggerTemplate currently supports the following Tekton Pipelines resources:

v1beta1 Resource TypeDescription
PipelinePipeline definition
PipelineRunPipeline run instance
TaskTask definition
TaskRunTask run instance

#Basic Structure

Here is a typical example of a TriggerTemplate definition:

apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
  name: pipeline-template
spec:
  params:                           # Parameter definition
    - name: gitrevision            # Parameter name
      description: Git revision      # Parameter description
      default: main               # Default value (optional)
    - name: gitrepositoryurl
      description: Git repository URL
    - name: message
      description: Print message
      default: This is the default message
  resourcetemplates:              # Resource template definition
    - apiVersion: tekton.dev/v1beta1
      kind: PipelineRun
      metadata:
        generateName: simple-pipeline-run-  # Name prefix for generation
      spec:
        pipelineRef:
          name: simple-pipeline
        params:
          - name: message
            value: $(tt.params.message)    # Using template parameters
          - name: revision
            value: $(tt.params.gitrevision)

#Parameter Configuration

#1. Parameter Definition

Define parameters in spec.params:

spec:
  params:
    - name: param1                # Parameter name
      description: Parameter description # Parameter description
      default: Default value       # Optional default value

#2. Parameter Usage

Use parameters within the resource template:

  • Basic syntax: $(tt.params.parameter_name)
  • Example: $(tt.params.gitrevision)

#3. Parameter Types

Parameters in a TriggerTemplate only support string type values. Each parameter includes the following fields:

  • name: Parameter name (required)
  • description: Parameter description (optional)
  • default: Default value, must be a string (optional)
NOTE

Note: Although parameter values can only be strings, you may include formatted content (such as JSON strings) within the string, and parse it during usage.

#JSON Object Handling

When passing JSON data, you need to handle it as a string:

# Define parameters in TriggerTemplate
metadata:
  annotations: # Allow formatting JSON as a string by adding this configuration
    triggers.tekton.dev/old-escape-quotes: "true" # 
spec:
  params:
    - name: jsonData
      description: JSON formatted data (as a string)
      default: '{"key": "value"}'

# Use in resource template
spec:
  params:
    - name: data
      value: $(tt.params.jsonData)  # Passed as a string

#Best Practices

  1. Parameter Naming and Organization

    • Use clear, descriptive parameter names
    • Provide descriptions for all parameters
    • Use default values appropriately
  2. Template Design

    • Keep templates reusable
    • Use dynamic name generation
    • Split complex templates appropriately
  3. Error Handling

    • Provide default values for critical parameters
    • Use CEL interceptor to validate parameters
    • Implement appropriate error handling mechanisms

#Frequently Asked Questions

  1. Parameter Parsing Errors

    • Check parameter syntax
    • Validate JSON object format
    • Confirm parameter name matches
  2. Resource Creation Failures

    • Check resource template format
    • Validate parameter values
    • Review system permissions
  3. Naming Conflicts

    • Use generateName
    • Implement uniqueness checks

#Usage Examples

#1. Basic CI/CD Pipeline

apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
  name: ci-pipeline-template
spec:
  params:
    - name: git-revision
      description: Git commit SHA
    - name: git-repo-url
      description: Git repository URL
  resourcetemplates:
    - apiVersion: tekton.dev/v1beta1
      kind: PipelineRun
      metadata:
        generateName: ci-run-
      spec:
        pipelineRef:
          name: ci-pipeline
        params:
          - name: revision
            value: $(tt.params.git-revision)
          - name: repo-url
            value: $(tt.params.git-repo-url)

#2. Multi-Environment Deployment

apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
  name: deploy-template
spec:
  params:
    - name: environment
      description: Deployment environment
      default: development
    - name: image-tag
      description: Image tag
  resourcetemplates:
    - apiVersion: tekton.dev/v1beta1
      kind: PipelineRun
      metadata:
        generateName: deploy-$(tt.params.environment)-
      spec:
        pipelineRef:
          name: deploy-pipeline
        params:
          - name: target-environment
            value: $(tt.params.environment)
          - name: image-tag
            value: $(tt.params.image-tag)

#Reference Links

  • Tekton Triggers Official Documentation
  • TriggerTemplate API Reference
  • Tekton Pipeline Documentation