Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kubernetes-sigs/container-object-storage-interface-provisioner-sidecar

Container Object Storage Interface (COSI) provisioner responsible to interface with COSI drivers.
https://github.com/kubernetes-sigs/container-object-storage-interface-provisioner-sidecar

k8s-sig-storage

Last synced: 21 days ago
JSON representation

Container Object Storage Interface (COSI) provisioner responsible to interface with COSI drivers.

Awesome Lists containing this project

README

        

# 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](https://github.com/kubernetes-sigs/container-object-storage-interface-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](./cmd/sample-driver) 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](https://github.com/kubernetes-sigs/container-object-storage-interface-api/blob/master/apis/objectstorage.k8s.io/v1alpha1/types.go)
- The Spec of the COSI objects [sigs.k8s.io/container-object-storage-interface-spec](https://github.com/kubernetes-sigs/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](./pkg/bucket/bucket_controller_test.go)
- [Bucket Access Controller Test](./pkg/bucketaccess/bucketaccess_controller_test.go)

### Build and Test

In order to build and generate the Docker images execute:
```bash
make container
```
Notice that this command will also generate the image for the sample-driver:
```bash
objectstorage-sidecar:latest
sample-driver:latest
```

In order to run the tests execute:
```bash
make test
```

### Running the Sidecar

To see an example of running the sidecar, take a look at the [COSI Driver Minio](https://github.com/kubernetes-sigs/cosi-driver-minio) sub-project.

## References

- [Documentation](https://container-object-storage-interface.github.io/)
- [Deployment Guide](https://container-object-storage-interface.github.io/docs/deployment-guide)
- [Weekly Meetings](https://container-object-storage-interface.github.io/docs/community/weekly-meetings)
- [Roadmap](https://github.com/orgs/kubernetes-sigs/projects/8)

## Community, discussion, contribution, and support

You can reach the maintainers of this project at:

- [#sig-storage-cosi](https://kubernetes.slack.com/messages/sig-storage-cosi) slack channel
- [container-object-storage-interface](https://groups.google.com/g/container-object-storage-interface-wg?pli=1) mailing list

### Code of conduct

Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).