This is an incomplete list of work we hope to accomplish in 2020.
Highlights:
- Tekton mission and vision
- "Feature complete"
- Beta for all components
- Task interfaces and PipelineResources
- SCM support
Today Tekton can do basically anything you want it to, but there are a few features still missing or not quite where we want them. Once we have these features, folks should be able to use Tekton for all of their CI/CD use cases.
Deciding what to support and what to expect users to write into their own Tasks
is a constant balancing act, and we want to be careful and deliberate with what we
include.
Features we don't have or aren't yet 100% satisfied with for "feature complete" Tekton (also discoverable via the area/roadmap label):
- Failure strategies
- Conditional execution
- we will continue to iterate on this functionality as we add failure strategies
- Pause and resume
- Partial execution
- Notifications
Task
Versioning - Also required for Catalog success- Alternative Task Implementations
- Local Execution
- Testing and debugging frameworks
- Emitting events throughout
Pipeline
execution - Config as code - This has some cross over with a related Triggers issue
- Performant Tekton - We should set performance requirements and measure against them
- Adding support for other architectures
- Rich type support for params
- Looping syntax (in Tasks and/or Pipelines)- either implement or decide it is outside of scope (i.e. better suited for a DSL)
- Supplying credentials for authenticated actions in Tasks - documented guidelines and implemented support for best practices when working with credentials.
- Provide a pipeline concurrency limit
In early 2020 we will have our first beta release, however it will be only for a subset of Pipeline's resources. After the initial beta release, we would like to get the rest of the resources to beta as well.
In alpha Tekton Pipelines, PipelineResources
were the interface between Tasks
in a Pipeline
: they were used for sharing typed
data and variables between Tasks
. This is being revisited and the feature has been
deconstructed into:
workspaces
- A way for aTask
to declare data it needs and provides without needing to know about the underlying mechanism usedTask results
(aka "output params") - A way for aTask
to provide values as outputs which can be provided to downstreamTasks
After adding these features we will once again reconsider the design of PipelineResources
and decide what additional features, if any, we need.
We will also need to decide how to continue to release and maintain the code that
is used to build the images used by the existing PipelineResources
:
https://github.com/tektoncd/pipeline/tree/master/cmd.
SCM support in 2019 was handled by
the PullRequest Resource.
However we are revisiting PipelineResources,
and likely this PipelineResource
will become one or more Tasks
in
the catalog instead. Once that happens,
we will need to make decisions about how to release and maintain the
supporting code.