From 93e368dbcb014e8650a6ba8ad01ca3c5f6eb6554 Mon Sep 17 00:00:00 2001 From: Christie Wilson Date: Wed, 24 Feb 2021 11:53:04 -0500 Subject: [PATCH] =?UTF-8?q?Update=20roadmap=20for=202021!=20=F0=9F=9B=A3?= =?UTF-8?q?=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- roadmap.md | 143 ++++++++++++++++++++++------------------------------- 1 file changed, 59 insertions(+), 84 deletions(-) diff --git a/roadmap.md b/roadmap.md index 932278c884f..475e2dc59d0 100644 --- a/roadmap.md +++ b/roadmap.md @@ -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))