container-object-storage-interface-provisioner-sidecar
container-object-storage-interface-provisioner-sidecar copied to clipboard
Container Object Storage Interface (COSI) provisioner responsible to interface with COSI drivers.
Container Object Storage Provisioner Sidecar
Container Object Storage Interface (COSI) provisioner sidecar is responsible to manage lifecycle of COSI objects and is deployed as a sidecar to a provisioner. Specifically, the sidecar monitors the lifecycle of the CRDs generated by the COSI Controller:
- Bucket - Represents a Bucket or its equivalent in the storage backend
- BucketAccess - Represents a access token or service account in the storage backend
and makes gRPC calls to the associated provisioner.
In this repo you will also find a sample provisioner based on Minio.
Developer Guide
Before diving into the code of this repo, we suggest that you familiarize yourself with:
- The Spec of CRDs in objectstorage.k8s.io/v1alpha1/types.go
- The Spec of the COSI objects sigs.k8s.io/container-object-storage-interface-spec
A good starting point towards understanding the functionality of this repo would be to study the tests:
- Bucket Controller Test
- Bucket Access Controller Test
Build and Test
In order to build and generate the Docker images execute:
make container
Notice that this command will also generate the image for the sample-driver:
objectstorage-sidecar:latest
sample-driver:latest
In order to run the tests execute:
make test
Running the Sidecar
To see an example of running the sidecar, take a look at the COSI Driver Minio sub-project.
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.