Signed outputs
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 277
- Forks
- 164
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 61
Description
Chains currently watches the outputs (resource or task) from TaskRuns, and signs these. Using a separate system to capture the final signed payload is an intentional decision to avoid the need to make cluster-level secrets accessible to the build process. This does require placing some trust in the Kubernetes control plane/data layer. Anyone with edit permission on pods in that namespace could forge or falsify taskrun outputs.
We could tighten this up a bit by adding another level of security, allowing Tasks to sign their own outputs, then validating those signatures before accepting the final payload.
This could look like:
- a new config option to require signed task outputs
- integration with SPIRE to provide workload credentials suitable for signing
- Chains can place a status back on the taskrun indicating that the results were all verified before the final output was signed, and indicate this in the resulting signature payloads.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by tracing how Chains signs TaskRun outputs and how Kubernetes pod permissions affect them, then evaluate the proposed config option, SPIRE workload credentials, signature verification, TaskRun status, and resulting payloads; done means these requirements have a defined, tested design.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- authentication, backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100