Open
Description
Summary
Create a project that is an opinionated CI project used and maintained by the Tekton community. The goal is to replace completely prow
to be able to dog-food Tekton entirely with Tekton.
tektoncd/plumbing
would become either obsolete, or the configuration repository for that project.
Goals
- Very little plumbing (from the repository maintainer perspective)
- Everything comes built-in, opiniated (PR oriented)
- A new
tektoncd
project should go from creation to "able to release" in a matter of minutes or hours - "As code" configuration, aka CI definition lives in the repository the CI is on (e.g. GitHub workflows)
- Following SLSA guidelines and Secure supply chain on
tektoncd
projects- Enable image signing (with
chains
, …) for alltektoncd
project
- Enable image signing (with
- Approve and LGTM flow
- CI oriented dashboard
- Think of prow
- optional can serve as a blueprint for a CI system based on top of
tektoncd
component - optional Simple syntax
- Close to
tektoncd/pipeline
if even wrapped
- Close to
Use cases
- Pipeline on push event
- branch, tag, rev, …
- Pipeline on PR event
- On-demand pipeline
- Pipeline on a schedule
- Automated releases (push a tag or release branch, the rest is automatic — and configurable)
- Nightly releases
- Chatops & notifications
- PR comments
- Other integrations (slack, …)
- Shared set of Tasks and Pipelines…
- … while still allow customization per projects
- … and "as code"
aka changing the CI setup happens in the repository instead of an external one (e.g. GitHub workflows vs Prow)
Benefits
- Move entrypoint for features in that project instead of "nowhere" today
- Links multiple project together in one "feature" drive
- Opinionated
- Opinion helps taking decisions
- Implement / satisfy all SLSA
- Removing the need to do this in
tektoncd/pipeline
(primitives can still be intektoncd/pipeline
)
- Removing the need to do this in
- Control
Step.image
in order to give some "guarantees" (SLSA). Features like the following would be "moved" on that project instead oftektoncd/pipeline
. - Identify missing features required for us to adopt our own tools
- Identify missing task that the community needs…
- … and would support
Related work
- Dogfooding Roadmap - Tekton Based CI/CD for Tekton #912
- Tekton Workflows #464
- Pipeline as code TEP #341
Who will own it
This is yet to be decided, but it would most likely be the current tektondc/plumbing
maintainers, and any existing tektoncd
project maintainers interested into working on it.