Release Notes
The maintenance period for version v4.7.x is from 15 Jan, 2026 to 15 May, 2026.
TOC
Compatibility and support matrix
The following table shows the compatibility and support matrix between the Alauda DevOps Pipelines operator and ACP versions.
v4.7.0
New and Optimized Features
Pipeline
-
Pipeline Integration with
Sonarqube Connector: When creating or executing a pipeline, supports selectingSONAR_HOST_URLandsonar-credentialsofsonarqubethrough sonarqube connectors.- More about it, see Pipeline Integration with Connector.
- This feature depends on operator of
Alauda DevOps Connectors(version >= v1.7.0).
-
With this update,
TaskRunfailures due to out of memory (OOMKilled) will include explicit reasons in the failure message. -
With this update, the
managed-byannotation is no longer propagated from thePipelinecontroller to Pods, preventing label misattribution. -
With this update, errors are properly handled when PVC resources have been deleted, avoiding exceptions during resource cleanup.
-
With this update, you can use the
THREADS_PER_CONTROLLERenvironment variable to override thethreads-per-controllervalue. -
With this update,
podTemplateinTaskRunSpecssupports parameter references, enabling multi-architecture builds using Matrix. -
With this update,
PipelineRunsupports overriding individual Task timeout settings (viaspec.taskRunSpecs[].timeout), providing more granular timeout control. -
With this update,
TaskRunandPipelineRunintroduce themanagedByfield, allowing lifecycle control to be delegated to external controllers or systems. -
With this update, a configurable shared caching mechanism is introduced for bundle, git, and cluster resolvers, reducing redundant resource fetching and improving pipeline resolution performance.
-
Git Resolver cache configuration example:
-
-
With this update, the
inputfield in When expressions supports resolving array-type parameter values in Pipelines. -
With this update, Pipelines-in-Pipelines is now supported: Pipelines can now execute embedded Pipelines through the
pipelineSpecfield in Tasks.
Trigger
-
With this update, the system automatically populates the HTTP request's
Content-Lengthheader value into the accessible context ofTriggerBindingin Triggers. -
With this update,
tknintroduces dedicated bootstrap commands for Triggers, reducing the complexity of configuring Triggers usingtkncommands.
Chains
- With this update, you can disable image signing while retaining provenance/attestation signing. Previously, when Chains enabled signing capabilities, image signing, provenance generation, and attestation signing were typically "bundled" together. For more details, please refer to Chains Configuration.
Results
-
With this update, you can control the Result Watcher's storage behavior for incomplete runs by setting the
disable_storing_incomplete_runsflag in TektonConfig, reducing system load. -
With this update, you can configure fine-grained retention policies for
PipelineRunandTaskRunresults based on namespace, labels, annotations, and status, achieving a balance between storage costs and compliance and debugging requirements.-
Example of a
ConfigMapthat defines multiple, comprehensive retention policies:In this example:
- A failed Result in the
productionorprod-eastnamespace with the labelcriticality: highwill be kept for 180 days. - Any Result with the annotation
debug/retain: "true"will be kept for 14 days. - Any other Result in the
productionorprod-eastnamespace will be kept for 60 days. - Any Result in the
cinamespace will be kept for 7 days. - All other Results that do not match any of these policies will be kept for the default
defaultRetentionperiod of 30 days.
- A failed Result in the
-
Pipelines as Code
- Pipelines as Code supports detailed logging for GitHub API calls, providing insights into API interactions, durations, and rate-limiting. By setting the controller log level to 'debug', you can troubleshoot complex issues more efficiently. This enhancement refactors code to instrument GitHub calls and affects all types of GitHub API calls within the provider. For more information, see Debugging API interactions.
- You can use relative paths to reference tasks from within a remote
Pipelinedefinition. The Pipelines as Code resolver automatically builds the full URL for the task based on the location of the remotePipelineSpecdefinition. For more information, see Overriding tasks from a remote pipeline on a PipelineRun.
Pruner
- With this update,
Tekton Pruneris integrated. For more configuration details aboutPruner, please refer to Tekton Pruner.
Breaking Changes
Chainsv0.26.0 upgrades toCosignv2.6.0, which no longer supportsHS256JWT tokens for keyless signing; users with private OIDC providers usingHS256must switch toRS256before upgrading. For more information, please refer to Chains.
Fixed Issues
Product Issues
- In MicroOS environments with strict SELinux enforcement, Tekton tasks that depend on Java-based tools (such as Maven and SonarQube) fail to start with the error "Error occurred during initialization of VM - Failed to mark memory page as executable". This issue is caused by incompatibility between OpenJDK's JVM interpreter and MicroOS security restrictions. This affects all Java-based Tekton tasks in MicroOS environments and prevents critical CI/CD workflows from executing.
Workaround:
Apply a temporary SELinux policy module to allow container domain (spc_t) to use execmem and execstack permissions:
# 1. Install required tools (requires reboot after installation)
sudo transactional-update pkg install checkpolicy selinux-policy-devel
sudo reboot
# 2. Create policy module
cat >/tmp/spc_execmem.te <<'EOF'
module spc_execmem 1.0;
require {
type spc_t;
class process { execmem execstack };
}
allow spc_t self:process { execmem execstack };
EOF
# 3. Compile and load the module
checkmodule -M -m -o /tmp/spc_execmem.mod /tmp/spc_execmem.te
semodule_package -o /tmp/spc_execmem.pp -m /tmp/spc_execmem.mod
sudo semodule -i /tmp/spc_execmem.pp
Removing the Temporary Fix:
To restore the default policy, you can unload the policy module:
# 1. Verify the module name
semodule -l | grep spc_execmem
# 2. Remove the module
sudo semodule -r spc_execmem
Note: This is a temporary workaround and not a permanent fix.
Community Issues
The issue of Pipeline and Trigger repair from upstream Tekton Community has been resolved in this version:
Pipeline
-
Before this update, the
PipelineRunstatus was incorrect whenfinallytasks failed but the overall run was successful. In this release, thePipelineRunstatus calculation for scenarios with failedfinallytasks has been corrected. -
Before this update,
TaskRundid not set Pod affinity/anti-affinity configurations correctly, leading to unintended scheduling behavior. In this release, the Pod affinity/anti-affinity settings forTaskRunare applied as expected. -
Before this update, validation for
PipelineResourceof git type failed incorrectly when therevisionfield was empty. In this release, the validation logic for emptyrevisionin git-typePipelineResourcehas been fixed. -
Before this update,
PipelineRuncancellation did not propagate tofinallytasks, leaving them running even after the main pipeline was canceled. In this release, cancellation signals are correctly passed tofinallytasks to ensure proper termination. -
Before this update, the
TaskRunpod was not deleted when theTaskRunresource was deleted while in the Running state, leading to orphaned pods. In this release, theTaskRuncontroller ensures pods are cleaned up when the parentTaskRunis deleted. -
Before this update, the start time of a retried
PipelineRunwas calculated incorrectly, leading to misleading duration metrics. In this release, the start time calculation for retriedPipelineRunshas been fixed to reflect the actual execution start. -
Before this update,
PipelineRundid not respect the configuredtimeoutforfinallytasks, allowing them to run indefinitely. In this release,finallytasks now adhere to thePipelineRuntimeout configuration. -
Before this update,
TaskRunmetrics lacked the correct namespace label, making it difficult to filter metrics by namespace. In this release, the namespace label is properly included inTaskRunmetrics. -
Before this update, validation did not catch duplicate task names in the
finallysection of a Pipeline, leading to runtime errors. In this release, validation logic has been updated to detect and reject duplicate task names infinally. -
Before this update,
PipelineRunremained stuck in the Running state when a main task failed andfinallytasks were skipped. In this release, thePipelineRunstate is correctly updated to Failed in such scenarios. -
Before this update,
TaskRunpods did not inherit annotations from the associated service account, leading to missing configuration. In this release, service account annotations are properly propagated toTaskRunpods. -
Before this update, the
PipelineRunduration displayed in the Tekton CLI was calculated incorrectly, showing inaccurate values. In this release, the duration calculation forPipelineRunin the CLI has been corrected. -
Before this update, completed
finallytasks were not cleaned up when aPipelineRunwas canceled, leading to resource leakage. In this release, the controller ensures completedfinallytasks are cleaned up afterPipelineRuncancellation. -
Before this update,
TaskRunfailed to start when using a workspace with an emptysubPathvalue, throwing an unnecessary error. In this release,TaskRuncan start successfully with workspaces that have emptysubPath. -
Before this update, metrics for retried
PipelineRunswere not recorded correctly, leading to incomplete monitoring data. In this release, retry-related metrics forPipelineRunsare captured accurately. -
Before this update,
PipelineRunstatus incorrectly showed "Cancelling" even after the run was fully canceled, causing confusion about the actual state. In this release, thePipelineRunstatus is updated correctly to "Canceled" once cancellation is complete. -
Before this update, retrieving logs for
TaskRunpods with non-standard log paths failed, preventing access to task output. In this release, log retrieval logic has been adjusted to support non-standard log paths forTaskRunpods. -
Before this update, validation rejected
PipelineParamswith empty default values, even though empty defaults are valid in many scenarios. In this release, the validation for empty default values inPipelineParamshas been fixed.
Trigger
-
Before this update, standard
GitHubwebhooks are unaffected as they send both headers by default, custom webhook implementations must update HMAC signature generation from SHA-1 to SHA-256 to avoid "no X-Hub-Signature-256 header set" errors. -
Before this update, Tekton variable syntax in trigger parameters was not escaped properly, now it is escaped to prevent unexpected behavior.
-
Before this update, a data race in
TriggerGroupselecting multiple Triggers with extensions caused panic from concurrent map writes, now the panic is fixed. -
Before this update, a data race issue existed, now a deep-copy fix is implemented to resolve it.
Known Issues
No issues in this release.