Skip to content

v0.19.0: Fix release pipelines

Latest

Choose a tag to compare

@tekton-robot tekton-robot released this 15 Jun 12:22

Tekton Results release v0.19.0

-Docs @ v0.19.0

Installation one-liner

kubectl apply -f https://infra.tekton.dev/tekton-releases/results/previous/v0.19.0/release.yaml

Attestation

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";
done

Changes

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

    1. ConfigMap key renamed

    The observability config key in config-observability has been renamed:
    from metrics.backend-destination to metrics-protocol

    prometheus is now the active default. If you were already using Prometheus and have not customized this ConfigMap, no action is needed.

    1. 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_latency http_client_request_duration_seconds
    HTTP Client watcher_client_results kn_k8s_client_http_response_status_code_total
    Workqueue watcher_work_queue_depth kn_workqueue_depth
    Workqueue watcher_workqueue_adds_total kn_workqueue_adds_total
    Workqueue watcher_workqueue_depth kn_workqueue_depth
    Workqueue watcher_workqueue_queue_latency_seconds kn_workqueue_queue_duration_seconds
    Workqueue watcher_workqueue_retries_total kn_workqueue_retries_total
    Workqueue watcher_workqueue_unfinished_work_seconds kn_workqueue_unfinished_work_seconds
    Workqueue watcher_workqueue_work_duration_seconds kn_workqueue_process_duration_seconds
    Reconciler watcher_reconcile_latency kn_workqueue_process_duration_seconds
    Go runtime watcher_go_alloc go_memstats_alloc_bytes
    Go runtime watcher_go_bucket_hash_sys go_memstats_buck_hash_sys_bytes
    Go runtime watcher_go_frees go_memstats_frees_total
    Go runtime watcher_go_gc_sys go_memstats_gc_sys_bytes
    Go runtime watcher_go_heap_alloc go_memstats_heap_alloc_bytes
    Go runtime watcher_go_heap_idle go_memstats_heap_idle_bytes
    Go runtime watcher_go_heap_in_use go_memstats_heap_inuse_bytes
    Go runtime watcher_go_heap_objects go_memstats_heap_objects
    Go runtime watcher_go_heap_released go_memstats_heap_released_bytes
    Go runtime watcher_go_heap_sys go_memstats_heap_sys_bytes
    Go runtime watcher_go_last_gc go_memstats_last_gc_time_seconds
    Go runtime watcher_go_mallocs go_memstats_mallocs_total
    Go runtime watcher_go_mcache_in_use go_memstats_mcache_inuse_bytes
    Go runtime watcher_go_mcache_sys go_memstats_mcache_sys_bytes
    Go runtime watcher_go_mspan_in_use go_memstats_mspan_inuse_bytes
    Go runtime watcher_go_mspan_sys go_memstats_mspan_sys_bytes
    Go runtime watcher_go_next_gc go_memstats_next_gc_bytes
    Go runtime watcher_go_num_gc go_gc_duration_seconds_count
    Go runtime watcher_go_other_sys go_memstats_other_sys_bytes
    Go runtime watcher_go_stack_in_use go_memstats_stack_inuse_bytes
    Go runtime watcher_go_stack_sys go_memstats_stack_sys_bytes
    Go runtime watcher_go_sys go_memstats_sys_bytes
    Go runtime watcher_go_total_alloc go_memstats_alloc_bytes_total
    1. Removed metrics

    The following metrics are no longer emitted:

    • watcher_reconcile_count → use kn_workqueue_adds_total instead
    • watcher_workqueue_longest_running_processor_seconds → no direct replacement
    • watcher_go_gc_cpu_fraction → no direct replacement
    • watcher_go_lookups → no direct replacement
    • watcher_go_num_forced_gc → no direct replacement
    • watcher_go_total_gc_pause_ns → no direct replacement
    1. Counter metric names changed

    OpenTelemetry's Prometheus exporter automatically appends _total to 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_count watcher_pipelinerun_delete_count_total
    TaskRun deletion count watcher_taskrun_delete_count watcher_taskrun_delete_count_total
    Runs not stored count runs_not_stored_count watcher_runs_not_stored_count_total

    Example Prometheus query migration:

    • watcher_pipelinerun_delete_countrate(watcher_pipelinerun_delete_count_total[5m])
    • watcher_taskrun_delete_countrate(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!

Extra shout-out for awesome release notes: