Skip to content

feat: CAS backend normalization #223

@migmartri

Description

@migmartri

Currently, setting up an OCI registry is required to use Chainloop because it's used to store artifacts during the attestation process.

This OCI registry acts as a storage backend for the CAS

image

The issue is that OCI is currently the only type of backend that the system support, we want to make sure that the CAS and controlplane can be extended to use other storage backends, i.e S3, GCS, Artifactory, ...

This task has the following goals

  • Decouple the concept of OCI repository from the CAS backend and make it just one kind of backend
  • Replace the oci_repository concept and signup flow from the controlplane and make it generic so it can hold other backends in the future.
  • Make storage backend optional as explained here Inline CAS backend #201

In other words, this task is about setting the foundations of allowing the setup of different storage buckets.

### Tasks
- [x] Make data model changes to migrate from oci_repositories to cas_backends. This should not be a breaking change and already registered OCI registries should still work. https://github.com/chainloop-dev/chainloop/pull/236
- [x] Keep cas secret/provider reference in the workflowrun so it does not get lost when changed https://github.com/chainloop-dev/chainloop/pull/237
- [x] List cas backends https://github.com/chainloop-dev/chainloop/pull/238
- [x] add cas backend https://github.com/chainloop-dev/chainloop/pull/239
- [x] Inline backend support https://github.com/chainloop-dev/chainloop/pull/247/files
- [x] Rotate credentials and soft-delete
- [x] Add inline backend as default
- [x] Update documentation  https://github.com/chainloop-dev/docs/pull/140
- [ ] Map digest -> cas backends
- [ ] Prepare CAS to support multiple-providers and on the fly selection

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions