Skip to content

Status of TEP-0128 (Scheduled Runs) — happy to contribute controller #1903

@yuzichen12123

Description

@yuzichen12123

Feature request

Hi maintainers 👋

I’m exploring a scheduled trigger capability and noticed we already have a proposal and some groundwork:

TEP-0128: Scheduled Runs: https://github.com/tektoncd/community/blob/main/teps/0128-scheduled-runs.md

Follow-up PR (CRD only, no controller logic yet): #1774

I’d love to understand the current status/roadmap for TEP-0128. Is there any active effort or updated direction beyond the CRD definition? I’m very interested in this feature and would like to help move it forward.

My proposal (high level)

I drafted a CRD design similar to TEP-0128, with one notable API twist: the CRD allows specifying a TriggerTemplate either by ref or by inline spec (embedded). This gives users a choice between referencing an existing template and self-contained definitions for simple schedules.

apiVersion: triggers.tekton.dev/v1beta1
kind: CronTrigger
metadata:
  name: nightly-build  # All created resources carry label triggers.tekton.dev/cron-trigger-name
spec:
  schedule: "0 2 * * *"           # Cron expression
  triggerTemplate:
    # Optional: reference an existing TriggerTemplate
    # ref: foo-tt
    # apiVersion: triggers.tekton.dev/v1beta1
    
    spec:
      params:
        - name: "text"
          default: "hello world"
      resourcetemplates:
        - apiVersion: "tekton.dev/v1beta1"
          kind: TaskRun
          metadata:
            generateName: "pr-run-"
          spec:
            taskSpec:
              steps:
                - image: ubuntu
                  script: echo "$(tt.params.text)"
  params:                          # Optional, parameters passed to the TriggerTemplate
    - name: text
      value: "hello world"
status:
  lastScheduleTime: "2025-10-27T18:00:00Z"
  lastSuccessfulTime: "2025-10-27T18:02:31Z"
  active:
    - id: nightly-build-20251028-020000  # All created resources carry label triggers.tekton.dev/cron-trigger-id

Implementation intent

I’m about to start coding a controller that:

  • Reconciles the Scheduled* CR, maintaining next-run state and condition/status.
  • Uses a cron-like schedule to enqueue executions.
  • Creates Runs (or Triggers/PipelineRuns) from either the referenced TriggerTemplate or from the embedded spec.
  • Surfaces status (last run time, next run time, last error) and reasonable metrics.

If this aligns with project direction, I’d be happy to contribute the controller here (or in the repo you prefer).

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions