Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kubernetes-sigs/container-object-storage-interface-spec
Container Object Storage (COSI) Specification
https://github.com/kubernetes-sigs/container-object-storage-interface-spec
k8s-sig-storage
Last synced: 2 months ago
JSON representation
Container Object Storage (COSI) Specification
- Host: GitHub
- URL: https://github.com/kubernetes-sigs/container-object-storage-interface-spec
- Owner: kubernetes-sigs
- License: apache-2.0
- Created: 2020-06-25T06:11:57.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-20T19:35:35.000Z (9 months ago)
- Last Synced: 2024-08-08T18:21:42.740Z (6 months ago)
- Topics: k8s-sig-storage
- Language: Shell
- Homepage:
- Size: 373 KB
- Stars: 63
- Watchers: 18
- Forks: 21
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG/CHANGELOG-0.1.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: code-of-conduct.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-starred - kubernetes-sigs/container-object-storage-interface-spec - Container Object Storage (COSI) Specification (others)
README
![version](https://img.shields.io/badge/status-pre--alpha-lightgrey)
# Container Object Storage Interface Spec
This repository hosts the gRPC API for the Container Object Storage Interface (COSI) standard. The interfaces defined in the [gRPC specification](cosi.proto) are meant to be the common interface for object storage provisioning and management across various object storage vendors.
For more information about the COSI effort, visit our [documentation](https://container-object-storage-interface.github.io/docs).
## Why another standard?
Kubernetes abstracts file/block storage via the CSI standard. The primitives for file/block storage do not extend well to object storage. Here is the **_extremely_** concise and incomplete list of reasons why:
- Unit of provisioned storage - Bucket instead of filesystem mount or block device.
- Access is over the network instead of local POSIX calls.
- No common protocol for consumption across various implementations of object storage.
- Management policies and primitives - for instance, mounting and unmounting do not apply to object storage.The existing primitives in CSI do not apply to objectstorage. Thus the need for a new standard to automate the management of objectstorage.
## Developer Guide
All API definitions **_MUST_** satisfy the following requirements:
- Must be in-sync with the API definitions in [sigs.k8s.io/container-object-storage-interface-api](https://github.com/kubernetes-sigs/container-object-storage-interface-api)
### Build and Test
1. `cosi.proto` is generated from the specification defined in `spec.md`
2. In order to update the API, make changes to `spec.md`. Then, generate `cosi.proto` using:
```sh
# generates cosi.proto
make generate
```3. Clean and Build
```sh
# cleans up old build files
make clobber
# builds the go bindings
make
```4. Do it all in 1 step:
```
# generates cosi.proto and builds the go bindings
make all
```## 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).