All Projects → kubernetes-sigs → container-object-storage-interface-spec

kubernetes-sigs / container-object-storage-interface-spec

Licence: Apache-2.0 license
Container Object Storage (COSI) Specification

Programming Languages

shell
77523 projects
Makefile
30231 projects
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to container-object-storage-interface-spec

external-resizer
Sidecar container that watches Kubernetes PersistentVolumeClaims objects and triggers controller side expansion operation against a CSI endpoint
Stars: ✭ 82 (+110.26%)
Mutual labels:  k8s-sig-storage
Longhorn
Cloud-Native distributed storage built on and for Kubernetes
Stars: ✭ 3,384 (+8576.92%)
Mutual labels:  k8s-sig-storage
Glusterfs
Gluster Filesystem : Build your distributed storage in minutes
Stars: ✭ 3,437 (+8712.82%)
Mutual labels:  k8s-sig-storage
csi-proxy
CSI Proxy utility to enable CSI Plugins on Windows
Stars: ✭ 28 (-28.21%)
Mutual labels:  k8s-sig-storage
node-driver-registrar
Sidecar container that registers a CSI driver with the kubelet using the kubelet plugin registration mechanism.
Stars: ✭ 63 (+61.54%)
Mutual labels:  k8s-sig-storage
csi-driver-nfs
This driver allows Kubernetes to access NFS server on Linux node.
Stars: ✭ 227 (+482.05%)
Mutual labels:  k8s-sig-storage
container-object-storage-interface-controller
Container Object Storage Interface (COSI) controller responsible to manage lifecycle of COSI objects.
Stars: ✭ 38 (-2.56%)
Mutual labels:  k8s-sig-storage
csi-driver-nvmf
CSI driver NVMf mainly supports RDMA and TCP for Software Defined Storage by NVMf
Stars: ✭ 28 (-28.21%)
Mutual labels:  k8s-sig-storage
livenessprobe
A sidecar container that can be included in a CSI plugin pod to enable integration with Kubernetes Liveness Probe.
Stars: ✭ 42 (+7.69%)
Mutual labels:  k8s-sig-storage
driver-registrar
[Deprecated] Sidecar container that 1) registers the CSI driver with kubelet, and 2) adds the drivers custom NodeId to a label on the Kubernetes Node API Object
Stars: ✭ 19 (-51.28%)
Mutual labels:  k8s-sig-storage

version

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 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.

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:

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:

# generates cosi.proto
make generate
  1. Clean and Build
# cleans up old build files
make clobber
# builds the go bindings
make
  1. Do it all in 1 step:
# generates cosi.proto and builds the go bindings
make all

References

Community, discussion, contribution, and support

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].