Chapter 1. Red Hat OpenShift Pipelines release notes
For additional information about the OpenShift Pipelines lifecycle and supported platforms, refer to the OpenShift Operator Life Cycles and Red Hat OpenShift Container Platform Life Cycle Policy.
Release notes contain information about new and deprecated features, breaking changes, and known issues. The following release notes apply for the most recent OpenShift Pipelines releases on OpenShift Container Platform.
Red Hat OpenShift Pipelines is a cloud-native CI/CD experience based on the Tekton project, which provides:
- Standard Kubernetes-native pipeline definitions (CRDs).
- Serverless pipelines with no CI server management overhead.
- Extensibility to build images using any Kubernetes tool, such as S2I, Buildah, JIB, and Kaniko.
- Portability across any Kubernetes distribution.
- Powerful CLI for interacting with pipelines.
- Integrated user experience with the OpenShift Container Platform web console.
For an overview of Red Hat OpenShift Pipelines, see Understanding OpenShift Pipelines.
1.1. Compatibility and support matrix Copy linkLink copied to clipboard!
Some features in this release are currently in Technology Preview. These experimental features are not intended for production use.
In the table, the following statuses mark each feature:
| TP | Technology Preview |
| GA | General Availability |
| * | Deprecated |
| Red Hat OpenShift Pipelines Version | Component Version | OpenShift Version | Support Status | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Operator | Pipelines | Triggers | CLI | Chains | Hub | Pipelines as Code | Results | Manual Approval Gate | Pruner | Cache | ||
| 1.24 | 1.15.x | 0.37.x | 0.46.x | 0.29.x (GA) | - | 0.50.x (GA) | 0.20.x (GA) | 0.9.x (TP) | 0.4.x (GA) | 0.4.x (GA) | 4.14, 4.16, 4.18, 4.19, 4.20, 4.21, 4.22 | GA |
| 1.23 | 1.12.x | 0.36.x | 0.45.x | 0.27.x (GA) | 1.24.x (TP)* | 0.48.x (GA) | 0.19.x (GA) | 0.9.x (TP) | 0.4.x (GA) | 0.3.x (GA) | 4.14, 4.16, 4.18, 4.19, 4.20, 4.21, 4.22 | GA |
| 1.22 | 1.9.x | 0.35.x | 0.44.x | 0.26.x (GA) | 1.23.x (TP) | 0.42.x (GA) | 0.18.x (GA) | 0.8.x (TP) | 0.3.x (GA) | 0.3.x (GA) | 4.14, 4.16, 4.18, 4.19, 4.20, 4.21, 4.22 | GA |
The OpenShift console plugin for OpenShift Pipelines follows the same version as the OpenShift Pipelines Operator.
For questions and feedback, you can send an email to the product team at pipelines-interest@redhat.com.
1.2. Release notes for Red Hat OpenShift Pipelines 1.24.1 Copy linkLink copied to clipboard!
Red Hat OpenShift Pipelines General Availability 1.24.1 is available on OpenShift Container Platform 4.14 and later supported versions.
1.2.1. Breaking changes Copy linkLink copied to clipboard!
Manual Approval Gate
- Manual Approval Gate controller role binding update
Before this update, the Manual Approval Gate controller role binding included the
system:authenticatedgroup. As a result, any authenticated user or service account in the cluster could approve, reject, list, or describe approval tasks across namespaces without requiring specific RBAC permissions. With this update, thesystem:authenticatedgroup is removed from the controller role binding. As a result, users and service accounts require explicit role bindings to manage approval tasks. To grant users approval task access, create aRoleBindingto themanual-approval-gate-approverClusterRole in the relevant namespace. This ClusterRole is shipped with Manual Approval Gate and provides the minimum required permissions.
1.2.2. Fixed issues Copy linkLink copied to clipboard!
Manual Approval Gate
- Approval task spec fields are no longer mutable during updates
Before this update, the Manual Approval Gate webhook did not enforce immutability on task parameters during updates. As a consequence, an approver could modify
spec.numberOfApprovalsRequiredorspec.descriptionwhile submitting an approval, bypassing multi-approver requirements. With this update, the webhook enforces immutability on these fields for existing approval tasks.
- Approvers can no longer inject pre-approved entries into the approver list
Before this update, the Manual Approval Gate webhook did not validate new entries in
spec.approversduring task updates. As a consequence, an approver could inject additional approver entries with a pre-approved status during their own approval action. With this update, the webhook rejects attempts to add, remove, or modify approver entries inspec.approverson existing approval tasks.
1.3. Release notes for Red Hat OpenShift Pipelines 1.24.0 Copy linkLink copied to clipboard!
Red Hat OpenShift Pipelines General Availability (GA) 1.24 is available on OpenShift Container Platform 4.14, 4.16, 4.18, 4.19, 4.20, 4.21, and 4.22.
1.3.1. New features and enhancements Copy linkLink copied to clipboard!
Tekton Chains
- OCI 1.1 Referrers API and Sigstore Protobuf Bundle support for Tekton Chains
With this update, Tekton Chains OCI storage adds support for both the OCI 1.1 Referrers API and the Sigstore protobuf bundle (v0.3) serialization format:
-
OCI 1.1 Referrers API: Allows storing signatures and attestations as registry-native referrers instead of
.sigand.attimage tags, eliminating tag pollution in OCI registries. -
Sigstore Protobuf bundle support: Set
storage.oci.encoding-format: sigstore-bundlein thechains-configConfigMap to store signatures and attestations as Sigstore protobuf bundles (v0.3) withartifactType: application/vnd.dev.sigstore.bundle.v0.3+json, discoverable viaoras discoverorcosign download. -
Backward compatibility: The default value
dssepreserves existing tag-based behavior. -
Transparency log integration: Transparency log entries (Rekor) are embedded in the bundle when
transparency.enabledis set to"true". -
Verification: Image verification using
cosign verifyandcosign verify-attestationis supported for bothdsseandsigstore-bundlemodes. -
Re-signing behavior: Re-signing in
sigstore-bundlemode accumulates referrers per signing invocation due to non-deterministic ECDSA signatures; exact crash-recovery retries are deduplicated. Configuration validation: Invalid values for
storage.oci.encoding-formatare rejected by the controller at config-load time, retaining the last valid configuration.
-
OCI 1.1 Referrers API: Allows storing signatures and attestations as registry-native referrers instead of
In addition to fixes and stability improvements, this section highlights what is new in OpenShift Pipelines 1.24.
- Server-Side Apply for Tekton Results finalizer management
The Tekton Results controller now manages finalizers on
PipelineRunandTaskRunresources using Server-Side Apply (SSA) instead of Merge patch. This reduces retries and Kubernetes API requests during reconciliation while seamlessly handling in-flight resources during upgrades.- Time-based query support for the Splunk logging plugin
The Tekton Results Splunk logging plugin now supports time-based queries that limit search windows using start and end timestamps, optimizing Splunk queries and reducing infrastructure load.
- Custom JSON field extraction and line formatting for Loki logging plugin
Tekton Results introduces
LOGGING_PLUGIN_JSON_MAPto define custom JSON field extraction mappings, andLOGGING_PLUGIN_LINE_FORMATto define custom log line output formatting for the Loki logging plugin.
- Support service accounts for Bitbucket Data Center scoped tokens
Before this update, configuring a Bitbucket Data Center provider with HTTP scoped tokens required specifying a user in the
Repositorycustom resource configuration. With this update, the user field requirement is removed when using project or repository scoped tokens, allowing direct use of the scoped token context for authentication. As a result, service accounts using scoped tokens can authenticate without a dedicated user account.- Direct OpenTelemetry SDK tracing setup
Before this update, Pipelines as Code used Knative’s
config-observabilityConfigMap for tracing configuration. With this update, tracing is set up directly using the OpenTelemetry SDK, enablingparentbased_*samplers via theOTEL_TRACES_SAMPLERenvironment variable. As a result, the entire trace chain is kept or dropped together, providing more consistent distributed tracing behavior.- Default NetworkPolicies for Manual Approval Gate
-
The
ManualApprovalGatecustom resource now creates default NetworkPolicies that restrict ingress and egress traffic for its controller and webhook workloads. These policies are enabled by default. To opt out, setspec.networkPolicy.disabled: truein theManualApprovalGatecustom resource. - MultiCluster: CEL-based routing policies in Tekton Kueue (Technology Preview)
Tekton Kueue supports CEL-based routing policies for
PipelineRunplacement. New CEL functions allow per-PipelineRunrouting decisions based on runtime attributes such as labels, annotations, or event types, replacing the all-or-nothingmultiKueueOverrideboolean setting.The following new CEL functions are available:
-
managedBy(value): Setsspec.managedByto route aPipelineRunresource to a custom controller. -
multiKueue(): Setsspec.managedByfor MultiKueue routing. -
multiKueue(queueName): Setsspec.managedByand overrides the Kueue queue label.
You can use these functions in conditional CEL expressions to route
PipelineRunresources to different clusters based on runtime attributes.-
- NetworkPolicy support for OpenShift Pipelines Operator
Red Hat OpenShift Pipelines Operator now ships default
NetworkPolicyresources restricting network access for its controller and proxy-webhook pods to only DNS, Kubernetes API server, Prometheus metrics, and webhook traffic. Additionally, theTektonPipelinecustom resource gains aspec.networkPolicyfield (mirroringTektonTrigger) so proxy-webhook network policies can be reconciled, overridden, or disabled per component.- Support for CustomRuns in Tekton Results
Tekton Results now stores and records
CustomRun(tekton.dev/v1beta1) resources alongsideTaskRunandPipelineRunresources.CustomRunresources created by custom task controllers are automatically recorded in the Tekton Results database.- Persistent date-range filter on PipelineRuns and TaskRuns list pages
The PipelineRuns list page and TaskRuns list page now feature a persistent date-range filter with standard time presets, querying both live cluster activity and archived data from Tekton Results. Filter selections are automatically saved to individual user profiles and persist across all sessions and devices.
- Persistent datasource filter on PipelineRuns and TaskRuns list pages
The datasource filter on the PipelineRuns and TaskRuns list pages is now persistent. The selected data source (Cluster or Archived) is automatically saved to the user profile and preserved across all sessions and devices.
- Default PVC configuration for Pipeline workspaces in UI
You can now configure a default PersistentVolumeClaim (PVC) for a Pipeline workspace. When a default workspace and PVC are configured, the Start Pipeline modal automatically pre-populates the workspace with the selected PVC, reducing manual configuration steps.
- Option to toggle optional task parameters in Pipeline Builder
A new Show required task params only toggle is available in the Pipeline Builder UI. When enabled, optional task parameters are hidden from the sidebar and the YAML editor switches to read-only mode to prevent parameter corruption while keeping the view uncluttered.
- Compressed termination messages for Tekton Tasks
Termination messages are now compressed with zlib when
enable-termination-message-compressionis enabled, increasing effective result capacity from approximately 33 to approximately 187 results, a 5.7 times improvement. This compression has no effect whenresults-fromis set tosidecar-logs.- OpenTelemetry observability migration and metric updates
OpenShift Pipelines components (including Tekton Pipelines, Pipelines as Code, and Manual Approval Gate) have migrated observability infrastructure from OpenCensus to OpenTelemetry. Standard Knative/OTel metrics prefixes (
kn_workqueue_*,http_client_*,go_*) replace legacytekton_pipelines_controller_*infrastructure metrics.- Centrally managed TLS profile support in Pipelines as Code controller
The Pipelines as Code controller now inherits TLS configuration settings directly from the OpenShift APIServer TLS Profile (
config.openshift.io/v1), ensuring central TLS profile consistency and supporting Post-Quantum Cryptography (PQC) readiness.- GitHub API rate limit event emission in Pipelines as Code
Pipelines as Code now emits Kubernetes events and log entries when GitHub API rate limits are exhausted. This surfaces rate limit exhaustion distinctly as a Repository event rather than reporting generic authentication failures.
- Forgejo and Gitea ListOrgTeams API caching
Pipelines as Code now caches
ListOrgTeamsAPI responses per organization during ACL checks, preventing redundant API calls when evaluating multiple allowed teams in Forgejo or Gitea provider integrations.
1.3.2. Fixed issues Copy linkLink copied to clipboard!
- Reconciler shared state race condition
Before this update, the reconciler stored per-reconciliation state (
globalRepo,secretNS) on the shared controller struct. As a consequence, concurrent reconciliations could overwrite each other’s namespace decisions, leading to incorrect secret lookups. With this update, per-reconciliation state is removed from the shared struct. As a result, concurrent reconciliations no longer interfere with each other.- GitLab token rotation write access verification
Before this update, the GitLab token auto-rotation feature revoked the old token before updating the Kubernetes Secret. As a consequence, if the Secret update failed due to a permission error, the old token was already revoked, causing irrecoverable credential loss. With this update, a server-side dry-run Secret update is performed before revoking the old token. As a result, permission errors are detected early, preventing credential loss during token rotation.
- GitLab branch creation push events
Before this update, GitLab Push Hook payloads with an empty
commitsarray (sent when a new branch is created at an existing commit) were rejected. As a consequence,PipelineRunresources were not triggered for new branch creation events. With this update, these payloads are accepted andPipelineRunresources are triggered using theafterSHA. As a result, branch creation events on GitLab correctly trigger pipeline runs.- GitLab source lookups pinned to event SHA
Before this update, GitLab source provenance used a mutable branch reference for looking up
.tektonPipelineRundefinitions and repository-local Task or Pipeline references. As a consequence, the definitions could change between the event and the lookup if new commits were pushed. With this update, the immutable event SHA is used for all source lookups. As a result,PipelineRundefinitions and task references are pinned to the exact revision that triggered the event.- Nil content handling in Gitea file retrieval
Before this update, the Forgejo SDK could return nil content for a missing file instead of an error in
GetFileInsideRepo. As a consequence, the controller crashed with aSIGSEGV, leading toCrashLoopBackOff. With this update, a nil check guards against the nil content case. As a result, the controller handles missing files gracefully without crashing.- Bitbucket Cloud token CLI updates
Before this update, updating a Bitbucket Cloud token via the
tkn pacCLI did not prompt for the Atlassian account email. As a consequence, the stored username became stale after token rotation, causing 401 authentication errors. With this update, the CLI prompts for and saves the Atlassian account email during token update. As a result, authentication continues to work correctly after token rotation.- Controller HTTP listener graceful shutdown
Before this update, the controller’s HTTP listener did not monitor context cancellation. As a consequence, the controller hung on
SIGTERMuntil it was force-killed withSIGKILL. With this update, the listener monitors context cancellation and shuts down cleanly. As a result, the controller terminates gracefully onSIGTERMwithout requiring a force kill.- Provider logger consistency
Before this update, some provider code used
run.Clients.Loginstead of the provider logger (v.Logger). As a consequence, log messages were missing standard context variables (provider,repository,event-id). With this update, all provider code usesv.Loggerfor logging. As a result, log messages from all providers include consistent context information for debugging.- Webhook deployment Prometheus metrics port
Before this update, the webhook deployment was missing the
containerPortand Service port definitions for Prometheus metrics on port 9090. As a consequence, Prometheus could not scrape metrics from the webhook, unlike the controller and watcher which had the port configured. With this update, the missing port definitions are added. As a result, Prometheus can scrape metrics from the webhook deployment.- Kubernetes event timestamp population
Before this update, Kubernetes events emitted by Pipelines as Code were missing
FirstTimestamp,LastTimestamp,Count, andReportingControllerfields. As a consequence,kubectldisplayed<unknown>in theLAST SEENcolumn. With this update, these fields are properly populated. As a result, event timestamps display correctly inkubectloutput.
1.3.3. Deprecated features Copy linkLink copied to clipboard!
- Tekton Hub commands in tkn CLI
Tekton Hub integration in the
tknCLI is now deprecated in favor of Artifact Hub. Commands such ascheck-upgrade,downgrade,get,info,reinstall,search, andupgradecurrently target Tekton Hub and displays a deprecation warning. To use Artifact Hub, pass--type artifacttotkn hub install.
1.3.4. Removed features Copy linkLink copied to clipboard!
- Tekton Hub integration in Pipelines as Code
Tekton Hub integration has been removed from Pipelines as Code. All Tekton Hub-specific resolver code, configuration fields, and documentation have been removed, leaving Artifact Hub as the supported hub integration.