-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit updates the roadmap from the things we hope to do in 2020 to the things we hope to do in 2021! (since we're already 2 months in, a couple of these things have been completed already :D) * [Draft 2021 pipelines roadmap](https://docs.google.com/document/d/12AIYkDHBqhdM2v_yuQZWGzp4_1-wGThPUs_WgDxAuQ0/edit#) * [Reflections on the 2020 roadmap](https://docs.google.com/document/d/1plc6Ip5Kf7aK013l7RgdAXX-35nk4FGNo5Ym59D0q0A/edit#heading=h.ipp91yv9tbcn)
- Loading branch information
1 parent
5354579
commit 93e368d
Showing
1 changed file
with
59 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,84 +1,59 @@ | ||
# Tekton Pipelines 2020 Roadmap | ||
|
||
This is an incomplete list of work we hope to accomplish in 2020. | ||
|
||
Highlights: | ||
|
||
- [Tekton mission and vision](https://github.com/tektoncd/community/blob/main/roadmap.md#mission-and-vision) | ||
- ["Feature complete"](#feature-complete) | ||
- [Beta for all components](#beta-for-all-components) | ||
- [Task interfaces and PipelineResources](#task-interfaces-and-pipelineresources) | ||
- [SCM support](#scm-support) | ||
|
||
## "Feature complete" | ||
|
||
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](https://github.com/tektoncd/pipeline/labels/area%2Froadmap)): | ||
|
||
- [Failure strategies](https://github.com/tektoncd/pipeline/issues/1684) | ||
- [Conditional execution](https://github.com/tektoncd/pipeline/blob/master/docs/conditions.md) | ||
- we will continue to iterate on this functionality as we add failure strategies | ||
- [Pause and resume](https://github.com/tektoncd/pipeline/issues/233) | ||
- [Partial execution](https://github.com/tektoncd/pipeline/issues/50) | ||
- [Notifications](https://github.com/tektoncd/pipeline/issues/1740) | ||
- [`Task` Versioning](https://github.com/tektoncd/pipeline/issues/1839) - Also required | ||
for [Catalog](#catalog) success | ||
- [Alternative Task Implementations](https://github.com/tektoncd/pipeline/issues/215) | ||
- [Local Execution](https://github.com/tektoncd/pipeline/issues/235) | ||
- [Testing](https://github.com/tektoncd/pipeline/issues/1289) and [debugging](https://github.com/tektoncd/pipeline/issues/2069) frameworks | ||
- [Emitting events throughout `Pipeline` | ||
execution](https://github.com/tektoncd/pipeline/issues/2082) | ||
- [Config as code](https://github.com/tektoncd/pipeline/issues/859) - This has some cross | ||
over with [a related Triggers issue](https://github.com/tektoncd/triggers/issues/189) | ||
- [Performant Tekton](https://github.com/tektoncd/pipeline/issues/540) - We should set | ||
performance requirements and measure against them | ||
- [Adding support for other architectures](https://github.com/tektoncd/pipeline/issues/856) | ||
- [Rich type support for params](https://github.com/tektoncd/pipeline/issues/1393) | ||
- Looping syntax (in [Tasks](https://github.com/tektoncd/pipeline/issues/2112) and/or [Pipelines](https://github.com/tektoncd/pipeline/issues/2050))- either implement or decide it is outside of scope (i.e. better suited for a DSL) | ||
- [Supplying credentials for authenticated actions in Tasks](https://github.com/tektoncd/pipeline/issues/2343) - documented guidelines | ||
and implemented support for best practices when working with credentials. | ||
- [Provide a pipeline concurrency limit](https://github.com/tektoncd/pipeline/issues/1305) | ||
|
||
## Beta for all components | ||
|
||
In early 2020 we will have our first beta release, however | ||
[it will be only for a subset of Pipeline's resources](https://docs.google.com/document/d/1H8I2Rk4kLdQaR4mV0A71Qbk-1FxXFrmvisEAjLKT6H0/edit#heading=h.t0sc4hdrr5yq). | ||
After the initial beta release, we would like to get the rest of the resources to beta | ||
as well. | ||
|
||
## Task Interfaces and PipelineResources | ||
|
||
In alpha Tekton Pipelines, [`PipelineResources`](https://github.com/tektoncd/pipeline/issues/1673) | ||
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 a `Task` to declare data it needs and provides without | ||
needing to know about the underlying mechanism used | ||
* `Task results` (aka "output params") - A way for a `Task` to provide values as outputs | ||
which can be provided to downstream `Tasks` | ||
|
||
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 | ||
|
||
SCM support in 2019 was handled by | ||
[the PullRequest Resource](https://github.com/tektoncd/pipeline/blob/master/docs/resources.md#pull-request-resource). | ||
However [we are revisiting PipelineResources](#task-interfaces-and-pipelineresources), | ||
and likely this `PipelineResource` will become one or more `Tasks` in | ||
[the catalog](https://github.com/tektoncd/catalog) instead. Once that happens, | ||
we will need to make decisions about how to release and maintain the | ||
supporting code. | ||
# Tekton Pipelines 2021 Roadmap | ||
|
||
This is an incomplete list of work we hope to tackle in 2021! | ||
|
||
* [The Tekton mission and vision](https://github.com/tektoncd/community/blob/main/roadmap.md#mission-and-vision) | ||
* [Roadmap items tracked via issues](https://github.com/tektoncd/pipeline/labels/area%2Froadmap) | ||
|
||
## Roadmap | ||
|
||
* [v1 API](https://github.com/tektoncd/pipeline/issues/3548) | ||
* Support alpha fields within v1 and beta types ([TEP-0033](https://github.com/tektoncd/community/blob/main/teps/0033-tekton-feature-gates.md)) | ||
* When expressions: | ||
* Option to skip Task only ([TEP-0007](https://github.com/tektoncd/community/blob/main/teps/0007-conditions-beta.md#skipping-1)) | ||
* [Support in Finally Tasks](https://github.com/tektoncd/pipeline/issues/3438) ([TEP-0045](https://github.com/tektoncd/community/blob/main/teps/0045-whenexpressions-in-finally-tasks.md)) | ||
* [Env vars at runtime](https://github.com/tektoncd/pipeline/issues/1606) | ||
* Workspaces/PVCs/Affinity Assistant ([TEP-0046](https://github.com/tektoncd/community/pull/318) | ||
* [Investigate custom scheduler for PVCs](https://github.com/tektoncd/pipeline/issues/3052) | ||
* [OCI bundles to beta](https://github.com/tektoncd/pipeline/issues/3661) (and then v1) | ||
* Expanded expression support via [CelRun Task](https://github.com/tektoncd/pipeline/issues/3149) | ||
* [Pipelines in Pipelines](https://github.com/tektoncd/pipeline/issues/2134) | ||
* Support for more complex failure scenarios | ||
* Allow task failure ([TEP-0050](https://github.com/tektoncd/community/pull/342)) | ||
* Allow step failure ([TEP-0040](https://github.com/tektoncd/community/pull/302)) | ||
* Decisions regarding more complex graph construction on failure | ||
* [Instrument Tekton resources](https://github.com/tektoncd/pipeline/issues/2814) | ||
* Minimize overhead of running a pipeline | ||
* Improve ability to compose Tasks with Tasks ([TEP-0044](https://github.com/tektoncd/community/pull/316)) | ||
* [Workspaces “from” other Tasks (express resource dependencies on workspaces)](https://github.com/tektoncd/pipeline/issues/3109) | ||
* [Custom Tasks](https://github.com/tektoncd/community/blob/main/teps/0002-custom-tasks.md) completion: | ||
* [Pipeline Results](https://github.com/tektoncd/pipeline/issues/3595) | ||
* Example controller for folks who want to create custom tasks | ||
* Experimental custom tasks promotion (e.g. [CELRun](https://github.com/tektoncd/experimental/tree/master/cel)): | ||
* Plan around how to promote (what requirements, process) | ||
* Continuous integration + release automation | ||
* Documentation and examples at tekton.dev | ||
* Integration with operator | ||
* [Adding support for other architectures](https://github.com/tektoncd/pipeline/issues/856) | ||
* [Improve UX of getting credentials into Tasks](https://github.com/tektoncd/pipeline/issues/2343) - nearly complete | ||
via [TEP-0029](https://github.com/tektoncd/community/blob/main/teps/0029-step-workspaces.md) | ||
* [Notifications](https://github.com/tektoncd/pipeline/issues/1740) | ||
* [Performant Tekton](https://github.com/tektoncd/pipeline/issues/540) | ||
([TEP-0036](https://github.com/tektoncd/community/blob/main/teps/0036-start-measuring-tekton-pipelines-performance.md)) | ||
* [Debug mode](https://github.com/tektoncd/pipeline/issues/2069) | ||
* [PipelineResources: beta or bust](https://github.com/tektoncd/pipeline/issues/1673) | ||
([some discussion and analysis](https://docs.google.com/document/d/1Et10YdBXBe3o2x6lCfTindFnuBKOxuUGESLb__t11xk/edit#heading=h.xz4bckr3atww)) | ||
* [Looping syntax](https://github.com/tektoncd/pipeline/issues/2050) | ||
* [Concurrency limits](https://github.com/tektoncd/experimental/issues/699) | ||
([TEP-0013](https://github.com/tektoncd/community/pull/228)) | ||
* [Partial Pipeline execution](https://github.com/tektoncd/pipeline/issues/50) | ||
* [Testing tools](https://github.com/tektoncd/pipeline/issues/1289) | ||
* Decisions around what to do with SCM support and the images released as part of Tekton Pipelines to support | ||
[PipelineResources](https://github.com/tektoncd/pipeline/issues/1673) | ||
* [Rich type support for Params](https://github.com/tektoncd/pipeline/issues/1393) | ||
* Decide if these are in scope for Tekton Pipelines: | ||
* [Local execution](https://github.com/tektoncd/pipeline/issues/235) | ||
(and [tektoncd/community#145](https://github.com/tektoncd/community/issues/145)) | ||
* [Config as code](https://github.com/tektoncd/pipeline/issues/859) | ||
([TEP-0048](https://github.com/tektoncd/community/pull/341), | ||
[task references via git](https://github.com/tektoncd/pipeline/issues/2298)) |