A cloud-native Pipeline resource.
APACHE-2.0 License
Bot releases are visible (Hide)
Published by tekton-robot over 2 years ago
-Docs @ v0.33.0
-Examples @ v0.33.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.33.0/release.yaml
The Rekor UUID for this release is 5d258716457107c85cf59b80c0091c333463eb7c2a9f2d6f5b642ca69ef2671f
Obtain the attestation:
REKOR_UUID=5d258716457107c85cf59b80c0091c333463eb7c2a9f2d6f5b642ca69ef2671f
rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | base64 --decode | jq
Verify that all container images in the attestation are in the release file:
RELEASE_FILE=https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.33.0/release.yaml
REKOR_UUID=5d258716457107c85cf59b80c0091c333463eb7c2a9f2d6f5b642ca69ef2671f
# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | base64 --decode | jq -r '.subject[]|.name + ":v0.33.0@sha256:" + .digest.sha256')
# Download the release file
curl "$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
The scope-when-expressions-to-task
flag will be removed in the next release.
We recommend migrating Pipelines
to using when
expressions scoped to the guarded Task
only.
π¨ Tekton v0.33.0 requires Kubernetes v1.21+ π¨
The configuration flags disable-working-dir-overwrite
and disable-home-env-overwrite
and associated features are not available anymore. Users that rely on automatic workingDir
and HOME
overwrite must update their Tasks
to explicitly them before updating to
this release.
The when
expressions in a given Task
are scoped to guard the Task
only by default. Users that rely the Branch
scope can use the scope-when-expressions-to-task
to continue guarding the Task
and its dependent Tasks
.
The when
expressions in a given Task
are scoped to guard the Task
only by default. Set scope-when-expressions-to-task
to continue guarding the Task
and its dependent Tasks
. The scope-when-expressions-to-task
flag will be removed soon so we recommend migrating Pipelines
to using when
expressions scoped to the guarded Task
only.
[Feature] Adds API fields for Step and Sidecar Overrides to TaskRun. This feature is not yet implemented.
Syntax support for remote resolution, an alpha feature in development, has been added to pipelineRef and taskRef fields. Using the remote resolution fields is not yet possible, however, and will only result in errors.
Working dir initialization is now done using a Go binary in a new container image included in the release, which makes it portable to run on Windows nodes.
Include Windows support for the nop image, to enable Affinity Assistant for Windows, and more.
In current release:
The configuration flags disable-working-dir-overwrite
and disable-home-env-overwrite
, after defaulting
to True
for nine months (i.e. feature disabled), have now been removed completely, along with the associated
features which are not available in Tekton anymore.
Fix problems on some arm64 machines.
Tweaks platform-specific command selection logic to handle images that provide multiple images for the same os+architecture, differing only by osversion (e.g., golang:1.17)
Loosen runtime platform selection logic to account for platforms with CPU variants
[Bug Fix] Add validation for 0 timeout for pipelinerun.timeouts.tasks
and pipelinerun.timeouts.finally
[Bug Fix] Account for elapsed time, pipeline.timeouts.tasks, and pipeline.tasks[].timeout when setting taskrun timeout
[Bug fix]: Respect pipelinerun.timeouts.tasks
for sequential TaskRuns or TaskRun retries
Fix labels and annotation propagation from Task/Pipeline to TaskRun/PipelineRun and thus the generated Pod
[Bug fix]: Use pipeline.spec.timeouts.pipeline to determine pipeline timeout during custom task reconcile
The configuration flags disable-working-dir-overwrite
and disable-home-env-overwrite
, after defaulting
to True
for nine months (i.e. feature disabled), have now been removed completely, along with the associated
features which are not available in Tekton anymore.
Drops dependency on k8s cred providers, statically link GCR/ECR/ACR cred helpers' Go code instead
The pipelines controller config previously included AWS environment variables as a workaround for a performance-related issue. The underlying issue appears to be fixed and so the environment variables have been removed from the controller.
π¨ Tekton now requires Kubernetes v1.21+ π¨
requests:
from gohelloworld
. (#4549)Thanks to these contributors who contributed to v0.33.0!
Extra shout-out for awesome release notes:
Published by tekton-robot over 2 years ago
-Docs @ v0.28.3
-Examples @ v0.28.3
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.3/release.yaml
Thanks to these contributors who contributed to v0.32.1!
Published by tekton-robot over 2 years ago
-Docs @ v0.32.1
-Examples @ v0.32.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.32.1/release.yaml
Thanks to these contributors who contributed to v0.32.1!
Published by tekton-robot over 2 years ago
-Docs @ v0.31.1
-Examples @ v0.31.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.31.1/release.yaml
Thanks to these contributors who contributed to v0.31.1!
Published by tekton-robot over 2 years ago
-Docs @ v0.30.1
-Examples @ v0.30.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.30.1/release.yaml
Thanks to these contributors who contributed to v0.29.1!
Published by tekton-robot over 2 years ago
-Docs @ v0.29.1
-Examples @ v0.29.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.1/release.yaml
Thanks to these contributors who contributed to v0.29.1!
Published by tekton-robot almost 3 years ago
-Docs @ v0.32.0
-Examples @ v0.32.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.32.0/release.yaml
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.tekton-pipelines PodSecurityPolicy now drops all capabilities and enables default
seccomp/apparmor annotations. This should not affect user Runs unless you are
running in the tekton-pipelines namespace (which we generally do not recommend).
Avoids calls to the API server to stop sidecars when sidecars are already stopped
The /tekton/steps directory is now read-only and subdirectories in /tekton/steps are now symlinks. The content for the resolved paths remains the same.
π git: Remove usage of git symbolic-ref. (#4464)
π scripts: remove set -x by default 𧣠(#4451)
Scripts will no longer print their commands and arguments by default in order to limit unexpected exposure of sensitive values.
Set activeDeadlineSeconds to max. permitted value (MaxInt32) for a task with 0s timeout (no timeouts).
This commit fixes the bug where a task with 0s timeout was failing with out of range error.
π test/sidecar_test.go: replace t.Errorfs with t.Fatalfs (#4436)
π Select entrypoint command based on runtime platform (#4420)
Changes the way image commands are passed to the entrypoint executor, enabling more correct behavior in heterogeneous clusters, and allowing for multi-platform image references to be passed to generated Pods.
Fixes an issue that default PodTemplate's affinity field is ignored.
π¨ Fix links in expressions migrations announcements (#4462)
π¨ Pick up latest (k8s 0.22 libs) (#4449)
The pipelines clients are now compatible with k8s.io/client-go v0.22.x
[Bug fix] Handle cases where PipelineRun task timeouts are greater than Pipeline.Timeouts.Task or Pipeline.Timeouts.Finally
π¨ Remove --enable-basic-auth from the development guide (#4442)
π¨ subcommands_test: Group command tests with t.Run. (#4437)
π¨ Reduce RBAC permissions for Tekton controller/webhook roles. (#4434)
Tekton tekton-pipelines-controller-tenant-access and tekton-pipelines-webhook-cluster-access
ClusterRole permissions are reduced to better fit least privilege.
This should have no effect on the Pipelines Controller/Webhook itself, but may impact users
if they were relying on these roles for other uses.
π¨ Don't install golangci-lint with curl|bash, use go install, introduce the tools folder (#4411)
π¨ Clean up RunsToCompletion interface (#4479)
π¨ Reduce duplication in TaskRun reconciler tests (#4441)
π¨ Add image replacement for amd64 specific image (#4456)
π¨ Skip creds-init-only-mounts-provided-credentials test for linux/s390x (#4452)
π¨ Remove unused informers (#4459)
Reduce memory footprint of the pipeline controller
Adding links to the latest release - v0.31.0
Thanks to these contributors who contributed to v0.32.0!
Extra shout-out for awesome release notes:
Published by tekton-robot almost 3 years ago
-Docs @ v0.31.0
-Examples @ v0.31.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.31.0/release.yaml
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.More consistently apply the pipeline.tekton.dev/release annotation to TaskRun resources.
Debug scripts were unusable due to addition of the new /tekton/run behavior. This commit makes them usable again.
Retry Task resolution on transient etcd errors
π Fix TestDAGPipelineRun
flakiness. (#4419)
π Refactor CloudEvent related tests to use common set of helpers (#4387)
π Put workspace-in-sidecar example into no-ci (#4380)
π Document that k8s 1.20 is the minimum required (#4414)
π Add v0.30.0 to the README (#4413)
π Fix conflicting docs for /tekton/steps API Compatibility. (#4395)
action required: Users should not assume the directory/file structure of /tekton/steps. Use $(steps.step-.exitCode.path) instead.
Thanks to these contributors who contributed to v0.31.0!
Extra shout-out for awesome release notes:
Published by tekton-robot almost 3 years ago
-Docs @ v0.30.0
-Examples @ v0.30.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.30.0/release.yaml
β οΈ Kubernetes 1.20 is the new minimum required version. β οΈ
PipelineResources
are deprecated. Consider using replacement features, such as Tasks
, instead. (#4376)N/A
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.β¨ Add variable expansion in the workspaces.subPath (#4351)
Users are able to use variable substitution in the subPath field of a Workspace within a Task in Pipeline
β¨ Build images for linux/arm (arm32v7) (#4331)
Images are built for linux/arm (arm32v7)
β¨ TEP-69, Implementation. Support retry for custom tasks. (#4327)
A custom task specification can be created with Retries
as follows:
apiVersion: tekton.dev/v1alpha1
kind: Run
metadata:
generateName: simpleexample
spec:
retries: 3 # set retries
params:
- name: searching
value: the purpose of my existence
ref:
apiVersion: custom.tekton.dev/v1alpha1
kind: Example
name: exampleName
π Breakout sidecar stopping if TaskSpec has no sidecar (#4372)
The reconciliation of a completed TaskRun has been optimized so that it does not anymore try to stop sidecars for TaskRuns who have
no sidecars in their TaskSpec.
π Use kmeta.ChildName for child resources (#4361)
Name of Pods
and TaskRuns
created by Tekton controllers are now generated with kmeta.ChildName
:
ChildName generates a name for the resource based upon the parent resource and suffix. If the concatenated name is longer than K8s permits the name is hashed and truncated to permit construction of the resource, but still keeps it unique. If the suffix itself is longer than 31 characters, then the whole string will be hashed and
parent|hash|suffix
will be returned, where parent and suffix will be trimmed to fit (prefix of parent at most of length 31, and prefix of suffix at most length 30).
The name of the Pods
owned by a TaskRun
is univocally associated to the owning resource. If a TaskRun
resource is deleted and created with the same name, the child Pod
will be created with the same name as before.
The base format of the name is <taskrun-name>-pod
. The name may vary as described above if it becomes too long.
In case of retries, starting from the first retry, the base format of the name is <taskrun-name>-retry<N>
where N
is the retry number.
The name of the TaskRuns
and Runs
owned by a PipelineRun
are univocally associated to the owning resource. If a PipelineRun
resource is deleted and created with the same name, the child TaskRuns
will be created with the same name as before.
The base format of the name is <pipelinerun-name>-<pipelinetask-name>
. The name may vary as described above if it becomes too long.
π Escape git usernames with backslashes in .gitconfig (#4337)
Git credential usernames containing a backslash will have that backslash escaped with an additional backslash in .gitconfig.
π Stop using milli-quantities for memory and ephemeral storage (#4335)
Adjusting the pod transformation code based on limit ranges to only use milli-quantities for CPU, but not for memory and ephemeral store and half bytes do not exist.
π Use cmpopts.IgnoreFields instead of IgnoreType. (#4328)
π TestTaskRunTimeout: Reduce timeout 30s -> 1s. (#4360)
π Set explicit timeoutSeconds on example's readinessProbe (#4371)
π Fix ignore annotation for gosec (#4345)
π Rewrite flakey workspace-in-sidecar example (#4349)
π¨ Updates helm task e2e test to use v1 rbac api (#4369)
π¨ Bump Alpine base images from 3.11 to 3.14 (current latest) (#4332)
Bump base image for git-init and pullrequest-init from alpine:3.11 to alpine:3.14
π¨ Bump the distroless image. (#4329)
Update the distroless image to one that has been signed with cosign and Fulcio.
π¨ Deprecate PipelineResources
(#4376)
action required: PipelineResources
are deprecated. Consider using replacement features, such as Tasks
, instead.
π¨ Remove experimental disable resolution controller flag (#4346)
An experimental controller flag was added in Pipelines v0.28.0 to disable resolution of taskrefs and pipelinerefs. This flag has now been removed.
π¨ Minor refactoring of taskRef validation. (#4370)
π¨ Improve test coverage for pkg/git (#4367)
π¨ Turn on most of golangci-lint's exclude-use-default
rules, address problems (#4315)
π¨ Bump to release-1.0 of knative.dev/pkg (#4354)
π¨ Reduce integration test run times (#4353)
π¨ Makefile: allow override ko
binary⦠(#4287)
π¨ Expose metrics and pprof ports on Pod and pprof on Service (#4233)
π Add docs for missing variable substitution fields (#4359)
π updating release cheat sheet (#4322)
Updated the release cheat sheet to include creating a GitHub release branch such as release-v0.28.x as part of the release creation process.
π Fix structure and enable toc autogenerate (#4319)
Fix structure and enable toc autogenerate
π document how to verify tekton pipelines release (#4257)
Document step-by-step process of how to verify Tekton Pipelines release.
π Add instructions for replacing CloudEvent PipelineResource to pipeline docs (#4379)
π docs: fixing my name in topical-ownership π (#4363)
π Fix broken links and clarify GCR setup instructions in DEVELOPMENT.md (#4336)
π Adding note regarding whitespace sensitivity of when
expressions (#4333)
π adding entry for the latest release 0.29 π (#4325)
π Fix link to API compatibility policy (#4323)
Thanks to these contributors who contributed to v0.30.0!
Extra shout-out for awesome release notes:
Published by tekton-robot about 3 years ago
-Docs @ v0.29.0
-Examples @ v0.29.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.0/release.yaml
The Rekor UUID for this release is 8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908
Obtain the attestation:
rekor-cli get --uuid 8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908 --format json | jq -r .Attestation | base64 --decode | jq
Verify that all container images in the attestation are in the release file:
RELEASE_FILE=https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.0/release.yaml
REKOR_UUID=8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908
# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | base64 --decode | jq -r '.subject[]|.name + ":v0.29.0@sha256:" + .digest.sha256')
# Download the release file
curl "$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
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.The entrypoint multi-arch image now includes an image built for Windows, allowing TaskRuns to execute on Windows nodes.
Notes:
Thanks for all the contributors for making this possible. We look forward to users feedback!
Params and result can now be referenced with bracket notation using both single and double quotes in addition to dot notation. For example, the following are equivalent: $(param.myparam), $(param['myparam']), and $(param["myparam"]). Bracket notation has the additional benefit of allowing users to work with parameter names containing conflicting characters like "." (e.g. $(param['my.param']) or $(param["my.param"]).
Announcement: onError in a step is now stable and available to include in your task definition without any flag.
PipelineRun
in TestGitPipelineRunFail
(#4273)Remove unused error type CannotConvertError
Use only the conversion webhook to upgrade types, remove upgrade mechanism in the defaulter
Due to a technical limitation, only images published to gcr.io
, which are included in the release.yaml
, are signed.
Images on eu.gcr.io
, us.gcr.io
and asia.gcr.io
are not signed yet.
TestReconcileCancelledFailsTaskRunCancellation
(#4312)dag.GetSchedulable
(#4310)test/*.go
to using YAML rather than structs (#4288)[Cluster]Task
and Pipeline
implement kmeta.OwnerRefable
. (#4295)[Cluster]Tasks
and Pipelines
. (#4293)Thanks to these contributors who contributed to v0.29.0!
Extra shout-out for awesome release notes:
Published by tekton-robot about 3 years ago
-Docs @ v0.28.2
-Examples @ v0.28.2
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.2/release.yaml
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.Fixed an issue where the PipelineRun reconciler could panic if a PipelineRun with spec.status set to PipelineRunPending was placed into a failed state before execution was able to begin.
Thanks to these contributors who contributed to v0.28.2!
Extra shout-out for awesome release notes:
Published by tekton-robot about 3 years ago
onError
with workspaces, enforcing step timeout
, and documentation for disabling ref resolution π-Docs @ v0.28.1
-Examples @ v0.28.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.1/release.yaml
In current release:
Breaking signature change in taskrun.NewController
and pipelinerun.NewController
to take advantage of pipeline.NewFlagOptions(flag.CommandLine)
to reduce churn due to flag changes:
New Signature:
func NewController(opts *pipeline.Options) func(context.Context, configmap.Watcher) *controller.Impl {...}
Old signature:
func NewController(namespace string, conf ControllerConfiguration) func(context.Context, configmap.Watcher) *controller.Impl {...}
π V0.28 Cherry-Pick: disable resolution flag, onError with workspaces, enforce step timeout, and refactor controllers (#4263)
Fixing a bug where the specified step timeout was lost and not propagated to the entrypoint. This fix enforces the step timeout.
Fixing a bug where onError
was not honored in presence of a workspace. Now, onError
can be set to continue
to ignore a step error in a task with a workspace.
Documented a controller flag that disables ref resolution in pipelineruns and taskruns.
(New in v0.28.1, will be part of v0.29.0) Downstream consumers of taskrun.NewController
and pipelinerun.NewController
will have to fix a breaking signature change; however, they can now take advantage of pipeline.NewFlagOptions(flag.CommandLine)
to reduce churn due to flag changes.
Thanks to these contributors who contributed to v0.28.1!
Extra shout-out for awesome release notes:
Published by tekton-robot about 3 years ago
LimitRange
support, marking Pod
as Terminating and implicit parameters π-Docs @ v0.28.0
-Examples @ v0.28.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.0/release.yaml
Pipeline
or PipelineRun
to taskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec
. This issue only affects users with enable-api-fields: alpha
in the feature-flags
ConfigMap
stored in the tekton-pipelines
namespace.Set activeDeadlineSeconds
on Tekton's Pod so that they are considered Terminating for Kubernetes.
This helps supporting ResourceQuota a bit better as now Tekton Pipeline's pod are considered terminating and thus can be using a specific scoped ResourceQuota for those.
Parameter and result names may now contain .
and be referenced via the subscript operator (e.g. $(params["foo.bar"])
Metrics tags/labels type on taskrun/pipelinerun and task/pipeline can be eliminated metrics using configmap. Also, the type of metrics for duration - histogram or gauge/last value, can also be configured.
Attempt to avoid incurring a rate limited image pull to lookup cached image entrypoints, if we can avoid it.
Support fully LimitRange by taking into account the Min
, Max
, Default
and DefaultRequest
fields as well as the MaxLimitRequestRatio
) to define the coherent Requests and Limits on the Pod.
Add Cancelled Pipelinerun metrics
Add script mode support for windows Tasks/Pipelines
β¨ Implement implicit parameter resolution. (#4127)
In current release:
π¨ The default value for the new Step onError
alpha feature has changed its name from fail
to stopAndFail
. #4151. Note: this only affects user of v0.27.0
as this behavior change was backported into v0.27.1
.
π Patch vendor/ apimachinery to work on 1.22 (#4164)
Backport adding Subresource field to ManagedField entries in our vendor/
folder to make tektoncd/pipeline work on k8s 1.22
pipeline name label is propagated to pipelinerun, even when the pipelinerun is pending or cancelled
Mount script workspace as readonly
user.name
in git_test.go
run
method. (#4192)The package pkg/jsonpath
has been removed. This does not effect anyone using tektoncd/pipeline directly, but may break users importing this code as a library during an update. We're unaware of any usage of this package right now.
π¨ Converts ResultType from string to int enum (#4186)
π¨ cleaning up label keys π§Ή (#4154)
The constants defined for the Tekton specific labels now include GroupName(tekton.dev) in the definition, for example:
Before this change:
const TaskLabelKey = "/task"
After this change:
const TaskLabelKey = GroupName + "/task"
If you are importing these constants in your application from the pipeline source, you don't need to add GroupName anymore.
π¨ (cleanup) use skipping reason instead of existence of variables (#4147)
π¨ Poll for the status of Runs (#4213)
π¨ Add controller flag to turn off built-in resolution (#4168)
Introduce experimental flag to disable built-in resolution behaviour of the taskrun and pipelinerun reconcilers.
Tekton Pipelines releases are now signed by Tekton Chains.
NewRecorder
a proper singleton (#4210){pipeline,task}run
metrics are surfaced. (#4204)Our developer docs now include more details on how Tekton Pipelines uses Pod termination messages to communicate information between Task pods and the Tekton Pipelines controller.
Thanks to these contributors who contributed to v0.28.0!
Extra shout-out for awesome release notes:
Published by tekton-robot about 3 years ago
-Docs @ v0.27.3
-Examples @ v0.27.3
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.3/release.yaml
This is the first Tekton Pipelines release with support for Kubernetes 1.22. There are no other changes.
Backport adding Subresource field to ManagedField entries in our vendor/
folder to make tektoncd/pipeline work on k8s 1.22.
Thanks to these contributors who contributed to v0.27.3!
Published by tekton-robot about 3 years ago
-Docs @ v0.27.2
-Examples @ v0.27.2
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.2/release.yaml
This bug fix allows PipelineRuns started in a Pending or Cancelled state to be identified using label queries for the associated Pipeline name.
Thanks to these contributors who contributed to v0.27.2!
Published by tekton-robot about 3 years ago
-Docs @ v0.27.1
-Examples @ v0.27.1
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.1/release.yaml
cosign
).In current release:
onError
alpha feature has changed its name from fail
to stopAndFail
. #4151
Thanks to these contributors who contributed to v0.27.1!
Published by tekton-robot about 3 years ago
onError
Handling, Skipping Strategies and Custom Task Timeouts! π-Docs @ v0.27.0
-Examples @ v0.27.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.0/release.yaml
β οΈ Kubernetes 1.19 is the new minimum required version. β οΈ
onError
behaviour for Steps (#4106)This is a brand new Alpha feature: Use onError: continue
for a Step if you would like to ignore any errors and continue executing the rest of the Steps in a Task. When onError
is set to continue
, the Step's exit code is recorded and made available to subsequent Steps via two new variables in Tasks. A Step with onError
set to continue
does not fail a TaskRun and continues executing the rest of the steps in a task.
The default value for the onError
field is fail
, which matches existing Step behavior: an error results in the Task stopping and entering a failed state. π¨ NOTE The name of the default value may change in a subsequent release from fail
to stopAndFail
to make this behaviour more explicit. Follow https://github.com/tektoncd/community/pull/497 to keep informed about this potential change. A Backwards Incompatibility note will be included with the release if this change moves ahead. π¨
β οΈ This is a change to existing behaviour. It is behind its own feature flag to give time to adapt. β οΈ
When Expressions
are changing scope: in a future release (and today, if you enable the flag) a when
stanza will guard only the Task it is attached to instead of the Task and all of its dependents. To guard both a Task and its dependents the when
stanza will need to be attached to each dependent Task as well. This change will roll out for all users of v1beta1
resources in 9 months, per our beta deprecation policy, and will be the default behaviour for When Expressions
in any new apiVersions
of Tekton's resources going forward.
New Feature Flag: scope-when-expressions-to-task
Default Value: "false"
To guard a Task
only and unblock execution of its dependent Tasks
, set the scope-when-expressions-to-task
feature flag to "true".
Action Required: when
expressions guarding a Task
and its dependent Tasks
is deprecated and will be removed - migrate by setting scope-when-expressions-to-task
feature flag to "true"
and updating your Pipelines to cascade when
expressions to subsequent Tasks
as needed.
For the rationale and use-cases that inspired this change please see TEP-0059.
β οΈ Existing custom task controllers will need to add support for this new field - by default it will be ignored. β οΈ
Custom Tasks can now include a timeout
as part of their spec. Custom Task controllers can add support for responding to this field with new behaviour such as cleanup processes. Here's an example usage in a Run
leveraging the TaskLoop
Custom Task controller:
apiVersion: tekton.dev/v1alpha1
kind: Run
metadata:
generateName: simpletasklooprun
spec:
timeout: 10s # set timeout here.
params:
- name: word
value:
- jump
- land
- roll
- name: suffix
value: ing
ref:
apiVersion: custom.tekton.dev/v1alpha1
kind: TaskLoop
name: simpletaskloop
TaskRuns and Runs in a Pipeline will now receive an additional label, tekton.dev/memberOf
. The value of this label will be: tekton.dev/memberOf=tasks
for entries in the "tasks" section of a Pipeline and tekton.dev/memberOf=finally
for entries in the "finally" section of a Pipeline.
workspaces.mountPath
field of Tasks (#3934)Users are now able to utilize variable substitution in the mountPath
field of a Workspace within a Task. This is useful, for example, to parameterize the directory under which source code from a Workspace should appear in a Task's filesystem.
Please see the "Skipping Strategies" feature description above for fuller information. In short: When Expressions currently guard both a Task and all of that Task's dependents. In future this behaviour will be changed so that When Expressions only guard the Task they are attached to. As part of this release a new feature flag has been added called scope-when-expressions-to-task
. The default value is "false"
, indicating no immediate change to behaviour. In 9 months, per our beta deprecation policy, this value will be changed to "true"
by default and eventually the flag will be removed completely. It is strongly advised that you assess your current suite of Pipelines for any impact this change might have on you and your teams. (#4085).
PipelineTasks with retries that were "gracefully cancelled" could result in a PipelineRun being left in a hung state. This has been fixed.
Pipelines that attempted to pass results from one Finally Task to another were not being caught during validation. This is not supported because Finally Tasks are not allowed to have dependencies among themselves. This has been fixed.
In addition this bug fix also dramatically improves the validation of Finally Tasks by ensuring that all validation errors are returned to the user at once rather than only the first error that was encountered.
By default, controller components are now marked as safe-to-evict by the cluster autoscaler. See docs/enabling-ha.md for more details.
Pipelines and Tasks fetched from Tekton Bundles were not being passed through a defaulting step before being validated, which could result in spurious validation errors. This has been fixed.
π Loosen permission checks on TestCp to handle umasks. (#4100)
π support referencing array params in when expression values (#4075)
When expression values can now use array parameter references, for example: values: [$(params.arrayParam[*])]
Errorf
to Fatalf
in retry tests. (#4133)knative.dev/pkg/changeset
(#4126)controller.FilterController(&v1beta1.TaskRun{})
(#4113)kmeta.OwnerRefable
. (#4110)homeDir
constant and hardcoded path (#4079)Thanks to these contributors who contributed to v0.27.0!
Extra shout-out for awesome release notes:
Published by tekton-robot over 3 years ago
-Docs @ v0.26.0
-Examples @ v0.26.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.26.0/release.yaml
N/A
TaskRun and PipelineRun's PodTemplate are now merge with the default PodTemplate. This means any field that is not specified in a TaskRun or PipelineRun's PodTemplate will come from the configured default PodTemplate (if defined).
β¨ Add debug with breakpoint onFailure to TaskRun Spec (#3857)
N/A
N/A
Fixed bug where GCS PipelineResource failed to upload unless HOME="/tekton/home" was explicitly set in task's pod template.
Work around a bug in the AWS go SDK that causes extremely long delays in task startup times.
Bump k8s.io and knative dependencies to v0.20.7 and v0.23.0 respectively, taking latest fixes and features in.
π¨ cleaning up task results constant (#4070)
π¨ Replace tmpfile with scriptfile in script init container (#4041)
π Updates to pipeline tutorial to handle skaffold Dockerfile and keep the yq syntax working (#4058)
π Add v0.25.0 to the README (#4043)
π Update comment on RunControllerName const (#4065)
π Adjust weight in hermetic.md (#4056)
π Fix broken link (#4054)
π docs: update metrics name (#3945)
Thanks to these contributors who contributed to v0.26.0!
Extra shout-out for awesome release notes:
Published by tekton-robot over 3 years ago
-Docs @ v0.25.0
-Examples @ v0.25.0
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.25.0/release.yaml
N/A
β¨ Add ConfigMap which can contain pipelines info and RBAC to access this ConfigMap (#3971)
β¨ Add support for experimental hermetic execution mode to TaskRuns (#3956)
Add support for experimental hermetic execution mode to TaskRuns
β¨ Graceful Pipeline Run Termination (#3915)
The new PipelineRun spec statuses have been added to control the way who a PipelineRun is being canceled or stopped.
Support for existing statuses has been left unchanged. The status "PipelineRunCancelled" is deprecated and replaced by "Cancelled" (it would be removed in v1). The new states are released as alpha API features. Read more in TEP#0058.
β¨ TEP-0061, Allow custom task to be embedded. (#3901)
It is now possible to embed the spec of a custom task in a Run resource, whether stand-alone or embedded in a Pipeline.
Spec *EmbeddedRunSpec
to RunSpec
Spec
with type runtime.RawExtension
in addition toApiVersion
and Kind
fields of type string (as part of runtime.TypeMeta
)Run.RunSpec.Spec
the validations will be changedRun.RunSpec.Spec
or Run.RunSpec.Ref
" only and not both as part of a singleaction required: Developers of custom controllers (existing and new), who would like to support
embedded spec for their custom task, need to implement the logic required to extract, validate
and use the custom task spec from the new RunSpec.Spec field. Please review the documentation
on upgrading, for more details and some examples.
β¨ Add a Timeouts optional field to pipelinerun (#3843)
β¨ Add variables context.pipelineTask.retries and context.task.retry-count (#3770)
π¨ "PipelineRunCancelled" is deprecated
The status "PipelineRunCancelled" is deprecated and replaced by "Cancelled" (it would be removed in v1) (#3915)
N/A
π Fix Windows image entrypoint paths for parity with Linux (#4018)
π A custom task check could be true, even though the Provided Spec is invalid. (#4005)
π Fix Workspaces in Sidecar to be serialized as workspaces not Workspaces (#3966)
π Encode scripts as base 64 to avoid k8s mangling 40 (#3963)
Scripts in Tasks are now written into the Task's pod using base64 to avoid kubernetes' built-in arg processing. This means they're a little larger than they were prior to this release but otherwise should continue working as expected.
π Only fetch the definitions once π§ (#3941)
Only fetch the definition once, and then used the spec stored in the status as source of truth.
This reduce the probable race condition when a PipelineRun
or a TaskRun
refers to a Pipeline
or Task
that changes during its execution.
π Skip heavy validation on deletion π (#3937)
Skip heavy validation on deletion in the webhook
π Validate run for both ref and spec as nil. (#3977)
π¨ Revert Fix issue with 69 in Script blocks (#3938)
Revert fix for instances of "$$" in script blocks. Kubernetes replaces "$$" with a single "$" and your scripts need to deal appropriately with these instances.
π¨ Cleanup integraton tests for multi-arch case (#3998)
π¨ Fix list of proposed kind labels for PRs (#3987)
π¨ Use tektoncd/results repo for git-init symbolic ref tests (#4038)
π¨ Add Dockerfiles for Windows entrypoint and nop images (#3996)
π¨ Add hermetic test running as non-root user (#3973)
π¨ Change the way we run e2e tests with feature gates in pipelines (#3930)
π Update api-spec.md to fix some formatting (#4030)
π Add v0.24.2 to the README (#4015)
π Fix minor typo in auth docs (#3992)
π Document how to use the kind tool and the Tekton/plumbing convenience script (#3972)
Documenting how to use the kind tool to setup the development environment.
π Organize DEVELOPMENT.md, provide consistent examples & reflect go mod support (#3955)
Organized DEVELOPMENT.md
to provide more consistent examples and instructions.
π Link to docs and examples for v0.24.3 (#4031)
π Update docs to use Kubernetes 1.18 as the minimum version (#3986)
π docs(pipelines): specify how to reference an array parameter (#3967)
π Document the safe-to-evict annotation on the webhook deployment (#3961)
π Add missing frontmatter to some docs (#3958)
π Update pipelines.md (#3946)
π Link to docs and examples for v0.24.1 (#3944)
π Format code blocks with prettier (#3911)
Thanks to these contributors who contributed to v0.25.0!
Extra shout-out for awesome release notes:
Published by tekton-robot over 3 years ago
-Docs @ v0.24.3
-Examples @ v0.24.3
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.24.3/release.yaml
Fixes bug #3978
This is a minor release to fix the delta between v0.24.1 and v0.24.2.
Release v0.24.1 included by mistake three extra commits.
The next minor release v0.24.2 did not include them, but the difference is problematic: https://github.com/tektoncd/pipeline/issues/4017
Release v0.24.3 builds on top of v0.24.2 and restores the three extra commits:
`WhenExpressions` no longer support PascalCase fields, they only support lowercase fields
action required: if you applied a `Pipeline` with `WhenExpressions` in v0.16, you have to reapply it
Thanks to these contributors who contributed to v0.24.3!
Extra shout-out for awesome release notes: