Container Object Storage Interface API
This repository hosts the API defintion of the Custom Resource Definitions (CRD) used for the Container Object Storage Interface (COSI) project. The provisioned unit of storage is a Bucket
. The following CRDs are defined for managing the lifecycle of Buckets:
- BucketRequest - Represents a request to provision a Bucket
- BucketClass - Represents a class of Buckets with similar characteristics
- Bucket - Represents a Bucket or its equivalent in the storage backend
The following CRDs are defined for managing the lifecycle of workloads accessing the Bucket:
- BucketAccessRequest - Represents a request to access a Bucket
- BucketAccessClass - Represents a class of accessors with similar access requirements
- BucketAccess - Represents a access token or service account in the storage backend
NOTE: All of the APIs are defined under the API group objectstorage.k8s.io
.
For more information about COSI, visit our documentation.
Developer Guide
All API definitions are in apis/objectstorage.k8s.io/
. All API changes MUST satisfy the following requirements:
- Must be backwards compatible
- Must be in-sync with the API definitions in sigs.k8s.io/container-object-storage-interface-spec
Build and Test
- Test and Build the project
make all
- Generate CRDs
make codegen
Adding new fields to protocols
- Create a new issue raising a RFC for the changes following this format:
Title: [RFC] Changes to protocol xyz
Info:
- Protocol:
- Fields Added:
- Why is this change neccessary? ...(describe why here)...
- Which other COSI projects are affected by this change?
- Upgrade plan (ignore if it doesn't apply)
References
Community, discussion, contribution, and support
You can reach the maintainers of this project at:
- #sig-storage-cosi slack channel
- container-object-storage-interface mailing list
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.