-
Previously, the tekton.dev/task
label was removed from the task runs of cluster tasks, and the tekton.dev/clusterTask
label was introduced. The problems resulting from that change is resolved by fixing the clustertask describe
and delete
commands. In addition, the lastrun
function for tasks is modified, to fix the issue of the tekton.dev/task
label being applied to the task runs of both tasks and cluster tasks in older versions of pipelines.
-
When doing an interactive tkn pipeline start pipelinename
, a PipelineResource
is created interactively. The tkn p start
command prints the resource status if the resource status is not nil
.
-
Previously, the tekton.dev/task=name
label was removed from the task runs created from cluster tasks. This fix modifies the tkn clustertask start
command with the --last
flag to check for the tekton.dev/task=name
label in the created task runs.
-
When a task uses an inline task specification, the corresponding task run now gets embedded in the pipeline when you run the tkn pipeline describe
command, and the task name is returned as embedded.
-
The tkn version
command is fixed to display the version of the installed Tekton CLI tool, without a configured kubeConfiguration namespace
or access to a cluster.
-
If an argument is unexpected or more than one arguments are used, the tkn completion
command gives an error.
-
Previously, pipeline runs with the finally
tasks nested in a pipeline specification would lose those finally
tasks, when converted to the v1alpha1
version and restored back to the v1beta1
version. This error occurring during conversion is fixed to avoid potential data loss. Pipeline runs with the finally
tasks nested in a pipeline specification is now serialized and stored on the alpha version, only to be deserialized later.
-
Previously, there was an error in the pod generation when a service account had the secrets
field as {}
. The task runs failed with CouldntGetTask
because the GET request with an empty secret name returned an error, indicating that the resource name may not be empty. This issue is fixed by avoiding an empty secret name in the kubeclient
GET request.
-
Pipelines with the v1beta1
API versions can now be requested along with the v1alpha1
version, without losing the finally
tasks. Applying the returned v1alpha1
version will store the resource as v1beta1
, with the finally
section restored to its original state.
-
Previously, an unset selfLink
field in the controller caused an error in the Kubernetes v1.20 clusters. As a temporary fix, the CloudEvent
source field is set to a value that matches the current source URI, without the value of the auto-populated selfLink
field.
-
Previously, a secret name with dots such as gcr.io
led to a task run creation failure. This happened because of the secret name being used internally as part of a volume mount name. The volume mount name conforms to the RFC1123 dns label and disallows dots as part of the name. This issue is fixed by replacing the dot with a dash that results in a readable name.
-
Context variables are now validated in the finally
tasks.
-
Previously, when the task run reconciler was passed a task run that did not have a previous status update containing the name of the pod it created, the task run reconciler listed the pods associated with the task run. The task run reconciler used the labels of the task run, which were propagated to the pod, to find the pod. Changing these labels while the task run was running, caused the code to not find the existing pod. As a result, duplicate pods were created. This issue is fixed by changing the task run reconciler to only use the tekton.dev/taskRun
Tekton-controlled label when finding the pod.
-
Previously, when a pipeline accepted an optional workspace and passed it to a pipeline task, the pipeline run reconciler stopped with an error if the workspace was not provided, even if a missing workspace binding is a valid state for an optional workspace. This issue is fixed by ensuring that the pipeline run reconciler does not fail to create a task run, even if an optional workspace is not provided.
-
The sorted order of step statuses matches the order of step containers.
-
Previously, the task run status was set to unknown
when a pod encountered the CreateContainerConfigError
reason, which meant that the task and the pipeline ran until the pod timed out. This issue is fixed by setting the task run status to false
, so that the task is set as failed when the pod encounters the CreateContainerConfigError
reason.
-
Previously, pipeline results were resolved on the first reconciliation, after a pipeline run was completed. This could fail the resolution resulting in the Succeeded
condition of the pipeline run being overwritten. As a result, the final status information was lost, potentially confusing any services watching the pipeline run conditions. This issue is fixed by moving the resolution of pipeline results to the end of a reconciliation, when the pipeline run is put into a Succeeded
or True
condition.
-
Execution status variable is now validated. This avoids validating task results while validating context variables to access execution status.
-
Previously, a pipeline result that contained an invalid variable would be added to the pipeline run with the literal expression of the variable intact. Therefore, it was difficult to assess whether the results were populated correctly. This issue is fixed by filtering out the pipeline run results that reference failed task runs. Now, a pipeline result that contains an invalid variable will not be emitted by the pipeline run at all.
-
The tkn eventlistener describe
command is fixed to avoid crashing without a template. It also displays the details about trigger references.
-
Upgrades from OpenShift Pipelines 1.3.x and earlier versions to OpenShift Pipelines 1.4.0 breaks event listeners because of the unavailability of template.name
. In OpenShift Pipelines 1.4.1, the template.name
has been restored to avoid breaking event listeners in triggers.
-
In OpenShift Pipelines 1.4.1, the ConsoleQuickStart
custom resource has been updated to align with OpenShift Container Platform 4.7 capabilities and behavior.