Skip to content

Releases: tektoncd/pipeline

Tekton Pipelines release v0.6.0 "Toyger Ultron"

15 Aug 17:11
Compare
Choose a tag to compare

🎉 Conditional Execution, Array Params, StepTemplates, and much much more! 🎉

Changes

Features

  • Pipeline tasks can now be conditionally executed based on a user defined condition. See the docs on how to define Conditions and use then in Pipelines (#1031, #1093, #1143, #1178 ).
    Note: There is more work underway with Conditionals that will be in the next release (tracked in #1137)

  • Parameters now support the Array type. See the docs here (#1080).

  • stepTemplate now supports variable substitution (#1061)

  • The default timeout of TaskRun and PipelineRun is now configurable usingdefault-timeout-minutes in config/config-defaults.yaml (default: 60 mins). The default value can be overridden in a PipelineRun or TaskRun using the timeout field. Setting the timeout to 0 (either in the runs or in the config defaults) means that there will be no timeout for the TaskRun/PipelineRun (#1040).

  • TaskRun.Status.Steps.Container now has a ContainerName field (#1100)

  • Allow the definition of a storage class for the artifact pvc using the ConfigMap config-artifact-pvc (#1148)

  • Tekton now automatically creates directories for each Output resource during a Taskrun (#1156)

  • Add a mechanisms to update CRD objects from one version to another (#1083)

  • Adds a field called ImageID to TaskRun.Spec.Status.Steps, which contains the full image ID and digest used to run each step (#1026)

  • The pullRequest resource type now outputs and expects files in a slightly different format. The new format can be found here (#1181)

Backwards incompatible changes

In current release

  • 🚨 Removes containerTemplate which was renamed to stepTemplate 🚨

Last release introduced this change in a backwards compatible manner, now we are making the change to remove containerTemplate(#1174)

  • 🚨 Tekton's webhook no longer allows unknown fields in resources 🚨

If you have resources that use fields that were never part of the spec or that have been removed (example: the "trigger" field removed in 0.4.0) then those resources will now fail validation when applied.

Warnings for next release

  • 🚨 Please migrate to using podTemplate instead of using Affinity, Tolerations, and NodeSelector 🚨
    TaskRuns and PipelineRuns now contain a PodTemplate field and the Affinity, Tolerations, and NodeSelector fields are deprecated and will be removed in the next release (#1004, #1070)

  • 🚨First step in changing ${} syntax to $() 🚨
    Adds support for $() syntax in addition to ${}; in #1170 we will remove support for ${}. Please migrate to $()! (#1172)

  • 🚨 Outputs must be placed into the /workspace/outputs directory and Tekton will no longer copy them from the input directory automatically.🚨
    We now warn when the same resource is used as an input and an output of the same Task. This will still be a supported case, but the behavior on where files are expected to be will change in a future release (#1119)

Fixes

  • Fix flaky unit tests (#1072)
  • Fix Pipeline Spec validation by actually calling the Validate function (#1074)
  • ClusterTasks are not validated by the webhook just like any other resource (#1082)
  • Unknown fields in resource YAML/JSON will now be rejected when running "kubectl apply" (#1081)
  • Fix controller panic on when a TaskRun's Timeout is nil (#1085)
  • Validate TaskSpec's that are embedded in a TaskRun (#1084)
  • Faster integration tests by switching to Kaniko Dockerfile for image digest exporter tests (#1141)
  • Fixes a bug that allowed Tekton Tasks to run steps with a stale entrypoint (#1158)
  • PR filenames are URL-escaped before being written to disk (#1195).

Misc

  • Reduce the number of imageDigestExporter step to one per Task instead of one for each steps in a Task (#1126)
  • Propagate Pipeline labels to Pipeline as soon as possible, so that they are applied even if there is early validation error during reconcile (#1168)
  • Changes the type of the Steps field to a type that embeds Container, instead of using the Container type directly (#1060)

Thanks

Thanks to these contributors who contributed to v0.6.0!

Extra shout-out for awesome release notes:

Tekton Pipelines release v0.5.2 "Tuxedo Kilim" + bug fixes

17 Jul 06:46
Compare
Choose a tag to compare

🐛 Tekton Pipelines v0.5.1 with bug fixes 🐛

🐛 Do not panic if Timeout is nil (#1085 – Fix #1075)

Thanks

Tekton Pipelines release v0.5.1 "Tuxedo Kilim" + bug fixes

15 Jul 13:36
Compare
Choose a tag to compare

🐛 Tekton Pipelines v0.5.0 with bug fixes 🐛

🐛 Fix hanging PipelineRun with output and no linking (#1068)
🐛 Add templating to stepTemplate (in addition to containerTemplate) (#1061)

Thanks

  • ❤️ @castlemilk for the quick and detailed report!
  • ❤️ @EliZucker for the quick stepTemplate fix!

Tekton Pipelines release v0.5.0 "Tuxedo Kilim"

09 Jul 21:55
Compare
Choose a tag to compare

🎉 PullRequestResource, graceful sidecar support, scheduling in resource constrained environments and moar! 🎉

Changes

Features

  • ✨ The PullRequest Resource, supporting GitHub labels and comments (#895), GitHub status fetches and updates (#995), and enterprise GitHub (#1033)
  • ✨ Sidecar containers injected by, for example, Istio, will now gracefully start up and shutdown in tandem with a Task Steps' containers (#936)
  • ✨ Task pods that hit resource limits imposed by ResourceQuota objects in a namespace will no longer fail their TaskRun immediately. Pod creation will be repeatedly tried until successfully started or the TaskRun times out (#905)
  • ✨ Adding possibility to configure multiple service accounts for different tasks (#902)
  • ✨ The default timeout for TaskRuns and PipelineRuns is increased from 10 minutes to 60 minutes. This timeout will now be configurable. (#996)
  • ✨ Task authors can use template variables to refer to using path: ${inputs.resources.someresource.path} ${outputs.resources.someresource.path} (#877)
  • env.$var.valueFrom and envFrom now supports variable interpolation (#982)
  • containerTemplate now supports variable interpolation (#1006)

Backwards incompatible changes

In current release

  • 🚨 Remove "build" word references from TaskRun in the steps container name (#818)

Warnings for next release

  • 🚨 Please migrate from containerTemplate to stepTemplate 🚨- The field containerTemplate in Task is now called stepTemplate. containerTemplate will be removed in the next release (#931, #977)

Fixes

  • 🐛 Always include message and reason fields at all stages of TaskRun (#1046)
  • 🐛 Copying between Tasks using an artifact storage bucket will now preserve file permissions (#1048)
  • 🐛 Fix ClusterTask usage in a PipelineRun, would previously fail (#1003)
  • 🐛 Fixed an issue that caused PVCs to be created in some PipelineRuns when they were not necessary (#1007)

Misc

  • 🔨 Annotates pod running controller components to prevent the node they're on from being evicted when autoscaling scales nodes down (#987)
  • ⏫ Performance improvements due to updated knative/pkg dependency (#985)
  • 🔨 Status of steps in a TaskRun are now reported in the same order they are listed in the Task (#963)
  • 🔨 PipelineResources will now be applied in the order they are declared in a Task (#970)
  • 🔨 Every TaskRun created by a PipelineRun would have a label tekton.dev/pipelineTask
    which holds actual Task name give in Pipeline definition (#966)

Thanks

Thanks to these contributors who contributed to v0.5.0!

Extra shout-out for awesome release notes:

Tekton Pipeline Release v0.4.0 "Aegean Brackenridge"

29 May 18:45
Compare
Choose a tag to compare

This is the third dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!

Changes

Breaking Changes

  • Remove the Trigger field from TaskRun/PipelineRun #857

Features

  • Propagate annotations from Pipeline/Task to PipelineRun/TaskRun #894
  • Generalize messages when TaskRun errs during pod creation #891
  • Allow configuration of PVC size from ConfigMap #866
  • Add support for taskRun to expose digest of built images #721

Fixes

  • Correct setting for kaniko in tasks #883
  • Fix documentation section about installing in custom namespace #881
  • Surface resource constraint problems in TaskRun Status #876
  • Enforce Default TaskRun Timeout #871
  • Update doc to remove taskSpec as an alternative to pipelineRef in a pipelineRun #870

Misc

  • Add Type-Level godocs for API types #921
  • Add godoc for missing Pipeline fields #920
  • Use tektoncd build-base base image for the release #919
  • Cleanup of initializing working dirs #843

Thanks

Thanks to these contributors who contributed to v0.4.0!

Tekton Pipeline Release v0.3.1 "Chartreux C-3PO" + bug fix

26 Apr 23:01
Compare
Choose a tag to compare

🐛 Tekton Pipelines with git ssh bug fixed 🐛

Thanks

Tekton Pipelines release v0.3.0 "Chartreux C-3PO"

26 Apr 15:14
Compare
Choose a tag to compare

🎉 Tekton Pipelines with containerTemplate and better resources limit handling 🎉

This is the second dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!

Changes

Features

  • Add additionalPrinterColumns to taskrun CRD (#694)
    kubectl get taskruns now gives more information like Type, Status, StartTime,CompletionTime
  • Add additionalPrinterColumns to pipelinerun CRD (#695, #730)
    kubectl get pipelineruns now gives more information like Type, Status, StartTime,CompletionTime
  • Define a minimal PodSecurityPolicy for Tekton components (#703, #718)
  • Make generated pods only request the maximum necessary resources (#723)
    Set CPU, memory, and ephemeral storage resource requests for each
    step in a Task to zero if the step does not have the largest resource
    request out of all steps in the Task. This ensures that the Pod that
    executes the Task will only request the resources necessary to
    execute any single step in the Task, rather than requesting the sum
    of all of the step's resource requests, and is safe because Tekton
    executes steps sequentially rather than all at once.
  • Adds shortname for taskrun and pipelinerun (#743)
    Add short names to taskrun and pipelinerun resources.
    User can use kubectl <action> tr ... to deal with taskruns
    and kubectl <action> pr ... to deal with pipelineruns.
  • Support Pod tolerations in PipelineRun and TaskRun (#707)
  • Adds containerTemplate to TaskSpec, allowing for configuration of a Container to be used as the basis for all steps within the Task. (#767)
  • Add a command line option to the controller for specifying a single namespace to watch, rather than watching all namespaces. (#784)

Fixes

  • Bind webhook controller to a non priviliged port (#720)
  • Fixes bug where sometimes TaskRun timeouts are dropped and the TaskRun may continue executing indefinitely (#780)
  • TaskRun startTime is now determined by the start of reconciliation and is not tied to the creation time of the underlying Pod(s) (#780)
  • Use gsutil rsync instead of cp for updating storage resource, handling the case where the bucket is empy and dir type is used. (#737)
  • Fix CompletionTime missing in TaskRun status (#740)
  • Wrap nop final step with entrypoint, Build success only happens if the task really succeeded (#748)
  • git-init don't assume the image is running as root (#747)
  • Fix propagation of concurrent TaskRun status to failed PipelineRuns (#757)
  • Recreate TaskRun pods on deletion. (#758)

Misc

  • Add a section for installing Tekton Pipelines on OpenShift (#699)
  • Remove some mentions of "knative" and "build-pipeline" (#722)
  • Skip some tests if KO_DOCKER_REPO is missing… (#710)
  • Updating some tests to not require the docker socket (#716)
  • Update some dependencies (#739)
  • Move to the v1beta1 Conditions implementation. (#744)
  • Add the step name in taskrun status (#657)

Thanks

Thanks to these contributors who contributed to v0.3.0!

Extra shout-out for awesome release notes:

Tekton Pipelines release v0.2.0

28 Mar 01:45
Compare
Choose a tag to compare
Pre-release

🎉 Tekton Pipelines with Graphs; without init containers! 🎉

This is the first dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!

Changes

Features

  • ✨ Allow default system namespace to be overridden using an env var (#427)
  • ✨ Use DAG (graph) based execution for Pipelines instead of linear one (#473, #578 )
  • ✨ Use truncated base TaskRun name for lookup (#565)
  • ✨ The containers executing the Task steps are changed from using InitContainers to Containers in the TaskRun pod. This is achieved by wrapping each container by a custom binary entrypoint to manage the order of the steps. As such, it is always recommended to explicitly specify a command for a Task step. If a step's image is in a private registry, a ServiceAccount with ImagePullSecrets should be provided in the Task (#564, #620, #634, #647, #686, #687)
  • ✨ Pipeline doesn't depend on knative/build anymore 💃 (#636, #648)
  • ✨ Update taskrun/pipelinerun timeout logic to not rely on resync behavior (#621, #674, #681)
  • ✨ cmd/git-init: check for errors or at least log them (#677)

Fixes

  • 🐛 Make sure TaskSpec step container names aren't too long (#550)
  • 🐛 Arbitrary git commits can now be specified in Git PipelineResources (previously it only supported commits which can be git fetch-ed) (#555)
  • 🐛 PipelineResources storage GCS for directories now preserves directory structures during copies. (#566)
  • 🐛 Updates tekton-pipelines-admin clusterrole to have full access to deployments/finalizers (#572)
  • 🐛 Container names must end with an alphanumeric character (#580)
  • 🐛 ServiceAccount without ImagePullSecrets should not fail to fetch (#585)
  • 🐛 Fixes RBAC permissions for task and pipeline runs for openshift (#583)
  • 🐛 Port duplicate pod test from knative/build 🏗 (#603)
  • 🐛 Use full command field for internal containers (#605)

Misc

  • 🔨 Remove the logsURL field from TaskRun status. This field was never populated and was leftover from the original POC version of the API. #107 may add something like this in the future but that design remains TBD (#563)
  • ⏫ Bump kubernetes dependecies to 1.12.6 (#662)

Thanks

Thanks to these contributors who contributed to v0.2.0!

Extra shout-out for awesome release notes:

Tekton Pipelines release v0.1.0

20 Feb 19:36
Compare
Choose a tag to compare
Pre-release

🎉 First Tekton Pipelines Release! 🎉

This is the very first release of Tekton Pipelines, which has built on the concept of the Build CRD, allowing users to declare typed inputs and outputs, and to combine multiple Builds (now called Tasks) into a Pipeline.

Features

  • Tasks allow users to define steps (i.e. container images)
    • Steps which can be executed against typed Inputs and parameters to produce Outputs
    • Cluster wide ClusterTasks are supported
    • They can declare Parameters which can be used in templating steps
  • Pipelines combine Tasks together
    • Optionally they linking inputs and outputs between Tasks
    • Tasks are executed sequentially in the order they are declared in the Pipeline.
    • They can declare Parameters which can be used in templating Task usage
  • PipelineResources are used as inputs and outputs. The following types are supported:
    • Git
    • Image (templating of attributes only)
    • Kubernetes Cluster
    • Storage (currently only GCS)
  • Tasks and Pipelines can be used repeatedly by instantiating PipelineRuns and TaskRuns, which will cause these to execute.
    • Runs can be executed with user specified ServiceAccounts
    • Runs can be cancelled

Fixes

n/a

Misc

n/a