Categorysigs.k8s.io/container-object-storage-interface-spec

# README

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.

# Packages

No description provided by the author
No description provided by the author
* This command filters a JUnit file such that only tests with a name * matching a regular expression are passed through.

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

Default, disallow uncredentialed access to the backend storage.
Read only, uncredentialed users can call ListBucket and GetObject.
Read/Write, uncredentialed users can read objects as well as PutObject.
No description provided by the author
Write only, uncredentialed users can only call PutObject.
Storageaccount based authentication.
Default, KEY based authentication.
No description provided by the author
S3V2, Signature version v2.
S3V4, Signature version v4.
No description provided by the author

# Variables

Enum value maps for AnonymousBucketAccessMode.
Enum value maps for AnonymousBucketAccessMode.
Enum value maps for AuthenticationType.
Enum value maps for AuthenticationType.
Indicates that this enum is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that this enum value is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that this field is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that this message is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that this method is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that this service is OPTIONAL and part of an experimental API that may be deprecated and eventually removed between minor releases.
Indicates that a field MAY contain information that is sensitive and MUST be treated as such (e.g.
No description provided by the author
Enum value maps for S3SignatureVersion.
Enum value maps for S3SignatureVersion.

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
UnimplementedIdentityServer can be embedded to have forward compatible implementations.
UnimplementedProvisionerServer can be embedded to have forward compatible implementations.

# Interfaces

IdentityClient is the client API for Identity service.
IdentityServer is the server API for Identity service.
ProvisionerClient is the client API for Provisioner service.
ProvisionerServer is the server API for Provisioner service.

# Type aliases

No description provided by the author
No description provided by the author
S3SignatureVersion is the version of the signing algorithm for all s3 requests.