Tekton Results release v0.19.0
Installation one-liner
kubectl apply -f https://infra.tekton.dev/tekton-releases/results/previous/v0.19.0/release.yamlAttestation
The Rekor UUID for this release is 108e9186e8c5677a73158266315a85394886e1497d84b82bfafb2cfd7d828badb84592fc8fc148f3
Obtain the attestation:
REKOR_UUID=108e9186e8c5677a73158266315a85394886e1497d84b82bfafb2cfd7d828badb84592fc8fc148f3
rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | jq .Verify that all container images in the attestation are in the release file:
RELEASE_FILE=https://infra.tekton.dev/tekton-releases/results/previous/v0.19.0/release.yaml
REKOR_UUID=108e9186e8c5677a73158266315a85394886e1497d84b82bfafb2cfd7d828badb84592fc8fc148f3
# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | jq -r '.subject[]|.name + ":v0.19.0@sha256:" + .digest.sha256')
# Download the release file
curl -L "$RELEASE_FILE" > release.yaml
# For each image in the attestation, match it to the release file
for image in $REKOR_ATTESTATION_IMAGES; do
printf $image; grep -q $image release.yaml && echo " ===> ok" || echo " ===> no match";
doneChanges
Features
- ✨ Add support for storing CustomRuns (#1320)
The Result Watcher now watches and stores CustomRun resources (tekton.dev/v1beta1) alongside TaskRun and PipelineRun. CustomRuns created by custom task controllers are automatically recorded in the Results API.
- ✨ perf(cli): use exact match for describe/logs command (#1283)
Enhacement: Improved performance for describe and logs commands with optimized filtering; when multiple runs share the same name, the most recent one is returned (use --uid to target a specific run)
-
✨ feat(metrics): Migrate from OpenCensus to OpenTelemetry (#1249)
Migrate Results Watcher metrics from OpenCensus to OpenTelemetry
⚠️ Breaking Changes- ConfigMap key renamed
The observability config key in
config-observabilityhas been renamed:
frommetrics.backend-destinationtometrics-protocolprometheusis now the active default. If you were already using Prometheus and have not customized this ConfigMap, no action is needed.- Knative infrastructure metric names changed
Metrics emitted by the Knative controller runtime have been renamed. Update any dashboards, recording rules, or alerts that reference the old names:
Category Old name New name HTTP Client watcher_client_latencyhttp_client_request_duration_secondsHTTP Client watcher_client_resultskn_k8s_client_http_response_status_code_totalWorkqueue watcher_work_queue_depthkn_workqueue_depthWorkqueue watcher_workqueue_adds_totalkn_workqueue_adds_totalWorkqueue watcher_workqueue_depthkn_workqueue_depthWorkqueue watcher_workqueue_queue_latency_secondskn_workqueue_queue_duration_secondsWorkqueue watcher_workqueue_retries_totalkn_workqueue_retries_totalWorkqueue watcher_workqueue_unfinished_work_secondskn_workqueue_unfinished_work_secondsWorkqueue watcher_workqueue_work_duration_secondskn_workqueue_process_duration_secondsReconciler watcher_reconcile_latencykn_workqueue_process_duration_secondsGo runtime watcher_go_allocgo_memstats_alloc_bytesGo runtime watcher_go_bucket_hash_sysgo_memstats_buck_hash_sys_bytesGo runtime watcher_go_freesgo_memstats_frees_totalGo runtime watcher_go_gc_sysgo_memstats_gc_sys_bytesGo runtime watcher_go_heap_allocgo_memstats_heap_alloc_bytesGo runtime watcher_go_heap_idlego_memstats_heap_idle_bytesGo runtime watcher_go_heap_in_usego_memstats_heap_inuse_bytesGo runtime watcher_go_heap_objectsgo_memstats_heap_objectsGo runtime watcher_go_heap_releasedgo_memstats_heap_released_bytesGo runtime watcher_go_heap_sysgo_memstats_heap_sys_bytesGo runtime watcher_go_last_gcgo_memstats_last_gc_time_secondsGo runtime watcher_go_mallocsgo_memstats_mallocs_totalGo runtime watcher_go_mcache_in_usego_memstats_mcache_inuse_bytesGo runtime watcher_go_mcache_sysgo_memstats_mcache_sys_bytesGo runtime watcher_go_mspan_in_usego_memstats_mspan_inuse_bytesGo runtime watcher_go_mspan_sysgo_memstats_mspan_sys_bytesGo runtime watcher_go_next_gcgo_memstats_next_gc_bytesGo runtime watcher_go_num_gcgo_gc_duration_seconds_countGo runtime watcher_go_other_sysgo_memstats_other_sys_bytesGo runtime watcher_go_stack_in_usego_memstats_stack_inuse_bytesGo runtime watcher_go_stack_sysgo_memstats_stack_sys_bytesGo runtime watcher_go_sysgo_memstats_sys_bytesGo runtime watcher_go_total_allocgo_memstats_alloc_bytes_total- Removed metrics
The following metrics are no longer emitted:
watcher_reconcile_count→ usekn_workqueue_adds_totalinsteadwatcher_workqueue_longest_running_processor_seconds→ no direct replacementwatcher_go_gc_cpu_fraction→ no direct replacementwatcher_go_lookups→ no direct replacementwatcher_go_num_forced_gc→ no direct replacementwatcher_go_total_gc_pause_ns→ no direct replacement
- Counter metric names changed
OpenTelemetry's Prometheus exporter automatically appends
_totalto counter metrics. Update any dashboards, recording rules, or alerts that reference the old names:Metric Type Old name New name PipelineRun deletion count watcher_pipelinerun_delete_countwatcher_pipelinerun_delete_count_totalTaskRun deletion count watcher_taskrun_delete_countwatcher_taskrun_delete_count_totalRuns not stored count runs_not_stored_countwatcher_runs_not_stored_count_totalExample Prometheus query migration:
watcher_pipelinerun_delete_count→rate(watcher_pipelinerun_delete_count_total[5m])watcher_taskrun_delete_count→rate(watcher_taskrun_delete_count_total[5m])
✅ What is unchanged ─
All histogram/duration metrics keep their existing names — no changes needed to Prometheus rules, alerts, or dashboards that reference these:
watcher_pipelinerun_delete_duration_seconds_{bucket,sum,count}
watcher_taskrun_delete_duration_seconds_{bucket,sum,count}
watcher_run_storage_latency_seconds_{bucket,sum,count}All metric labels remain the same:
pipeline,task,namespace,status,kind🆕 New: OTLP push export
Metrics can now be pushed directly to any OTLP-compatible backend (OpenTelemetry Collector, Grafana Alloy, Jaeger, etc.) without a Prometheus scrape step:
data:
metrics-protocol: grpc # or http/protobuf
metrics-endpoint: otel-collector.observability.svc.cluster.local:4317
metrics-export-interval: 30s # optional, defaults to 30s
Migrated from deprecated OpenCensus to OpenTelemetry for metrics collection due to Knative's deprecation of their OpenCensus-based metrics package.
Fixes
- 🐛 fix(CLI): trim whitespace from host, token, and API path inputs (#1314)
Fixed CLI configuration issue where accidental whitespace in host, token, or API path inputs could cause connection failures
- 🐛 Fix race condition in the TestController (#1351)
Misc
-
🔨 Ci/zizmor security fixes (#1293)
-
🔨 chore: update deprecated grpc_middleware components (#1274)
-
🔨 Change all occurences of GCS buckets with OCI buckets (#1257)
-
🔨 feature: update release cheatsheet and pipeline (#1176)
-
🔨 Fix release pipelines (#1359)
-
🔨 Add agentic workflows context files (#1345)
-
🔨 Fix typos in API docs (#1337)
-
🔨 Bump Kind k8s version to 1.35 (#1319)
-
🔨 Improve finalizer error visibility (#1252)
-
🔨 CI: Remove manual PR author check from presubmit workflow (#1197)
-
🔨 chore: switch base image to ghcr.io/tektoncd/plumbing/static-base (#1357)
-
🔨 ci: Add CI summary fan-in job to presubmit workflow (#1225)
-
🔨 chore(deps): bump golang.org/x/net from 0.53.0 to 0.54.0 (#1338)
-
🔨 chore(deps): bump k8s.io/api from 0.35.4 to 0.35.5 (#1334)
-
🔨 chore(deps): bump k8s.io/apiserver from 0.35.4 to 0.35.5 (#1332)
-
🔨 chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.14 to 1.32.17 (#1330)
-
🔨 chore(deps): bump github.com/tidwall/gjson from 1.18.0 to 1.19.0 (#1328)
-
🔨 chore(deps): bump github.com/mattn/go-sqlite3 from 1.14.40 to 1.14.44 (#1326)
-
🔨 chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.14 to 1.19.16 (#1325)
-
🔨 chore(deps): bump k8s.io/client-go from 0.35.3 to 0.35.4 (#1315)
-
🔨 chore(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 (#1309)
-
🔨 chore(deps): bump k8s.io/client-go from 0.34.6 to 0.34.7 (#1305)
-
🔨 chore(deps): bump google.golang.org/api from 0.274.0 to 0.276.0 (#1303)
-
🔨 chore(deps): bump golang.org/x/net from 0.52.0 to 0.53.0 (#1302)
-
🔨 chore(deps): bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 (#1300)
-
🔨 chore(deps): bump github.com/google/cel-go from 0.27.0 to 0.28.0 (#1298)
-
🔨 chore(deps): bump google.golang.org/api from 0.274.0 to 0.275.0 (#1297)
-
🔨 chore(deps): bump github.com/tektoncd/cli from 0.44.0 to 0.44.1 (#1296)
-
🔨 chore(deps): bump github.com/mattn/go-sqlite3 from 1.14.38 to 1.14.40 (#1292)
-
🔨 chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 (#1291)
-
🔨 chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.13 to 1.32.14 (#1290)
-
🔨 chore(deps): bump google.golang.org/api from 0.273.1 to 0.274.0 (#1288)
-
🔨 Bump google.golang.org/grpc from 1.79.3 to 1.80.0 (#1287)
-
🔨 Bump google.golang.org/api from 0.273.0 to 0.273.1 (#1286)
-
🔨 Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.97.3 to 1.98.0 (#1284)
-
🔨 Bump github.com/mattn/go-sqlite3 from 1.14.37 to 1.14.38 (#1282)
-
🔨 Bump google.golang.org/grpc from 1.79.1 to 1.79.2 (#1248)
-
🔨 Nominate divyansh42 as results approver (#1247)
-
🔨 Move inactive approvers and reviewers to alumni (#1246)
-
🔨 Bump k8s.io/apiserver from 0.32.11 to 0.32.12 (#1214)
-
🔨 Bump github.com/grpc-ecosystem/go-grpc-middleware/v2 from 2.3.2 to 2.3.3 (#1213)
-
🔨 Bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (#1212)
-
🔨 Bump golang.org/x/net from 0.49.0 to 0.50.0 (#1211)
-
🔨 Bump google.golang.org/api from 0.265.0 to 0.266.0 (#1209)
-
🔨 Bump k8s.io/client-go from 0.34.2 to 0.34.3 (#1207)
-
🔨 Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.27.7 to 2.27.8 (#1206)
-
🔨 Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.93.0 to 1.96.0 (#1205)
-
🔨 Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.27.3 to 2.27.7 (#1203)
-
🔨 Bump github.com/aws/aws-sdk-go-v2/config from 1.32.2 to 1.32.7 (#1202)
-
🔨 Bump github.com/mattn/go-sqlite3 from 1.14.32 to 1.14.33 (#1201)
-
🔨 Bump github.com/tektoncd/cli from 0.41.1 to 0.43.0 (#1200)
-
🔨 Bump golang.org/x/oauth2 from 0.34.0 to 0.35.0 (#1199)
Docs
Thanks
Thanks to these contributors who contributed to v0.19.0!
- ❤️ @0x49b
- ❤️ @AlanGreene
- ❤️ @ab-ghosh
- ❤️ @adityavshinde
- ❤️ @anithapriyanatarajan
- ❤️ @app/dependabot
- ❤️ @divyansh42
- ❤️ @enarha
- ❤️ @khrm
- ❤️ @tylerauerbeck
- ❤️ @vdemeester
Extra shout-out for awesome release notes:
- 😍 @0x49b
- 😍 @AlanGreene
- 😍 @ab-ghosh
- 😍 @adityavshinde
- 😍 @anithapriyanatarajan
- 😍 @divyansh42
- 😍 @enarha
- 😍 @khrm
- 😍 @tylerauerbeck