README ¶
Open Storage
OpenStorage is an API abstraction layer providing support for multiple public APIs, including the OpenStorage SDK, CSI, and the Docker Volume API. Developers using OpenStorage for their storage systems can expect it to work seamlessly with any of the supported public APIs. These implementations provide users with the ability to run stateful services in Linux containers on multiple hosts.
OpenStoage makes it simple for developers to write a single implementation which supports many methods of control:
Not only does OpenStorage allow storage developers to integrated their storage system with container orchestrations systems, but also enables applications developers to use the OpenStorage SDK to manage and expose the latest storage features to their clients.
Supported Control APIs
CSI
Container Storage Interface is the standard way for a container orchestrator such as Kubernetes or Mesosphere to communicate with a storage provider. OSD provides a CSI implementation to provision storage volumes to a container on behalf of any third party OSD driver and ensures the volumes are available in a multi host environment.
Docker Volumes
OSD integrates with Docker Volumes and provisions storage to a container on behalf of any third party OSD driver and ensures the volumes are available in a multi host environment.
OpenStorage SDK
CSI and Docker Volumes API provide a very generic storage control model, but with the OpenStorage SDK, applications can take control and utilize the latest features of a storage system. For example, with the OpenStorage SDK, applications can control their volumes backups, schedules, etc.
Documents
Licensing
openstorage is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Directories ¶
Path | Synopsis |
---|---|
mock
Package mockalerts is a generated GoMock package.
|
Package mockalerts is a generated GoMock package. |
Package api is a reverse proxy.
|
Package api is a reverse proxy. |
mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
server/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
server/sdk
Package sdk is the gRPC implementation of the SDK gRPC server Copyright 2022 Portworx
|
Package sdk is the gRPC implementation of the SDK gRPC server Copyright 2022 Portworx |
drivers/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
manager
Package cluster implements a cluster state machine.
|
Package cluster implements a cluster state machine. |
mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
cmd
|
|
osd
Package classification OSD API.
|
Package classification OSD API. |
Package csi is CSI driver interface for OSD Copyright 2017 Portworx
|
Package csi is CSI driver interface for OSD Copyright 2017 Portworx |
v0.3
Package csi is CSI driver interface for OSD Copyright 2017 Portworx
|
Package csi is CSI driver interface for OSD Copyright 2017 Portworx |
Provides an in-memory fake implementation of the Objectstore Copyright 2018 Portworx
|
Provides an in-memory fake implementation of the Objectstore Copyright 2018 Portworx |
osdconfig is a package to work with distributed config parameters
|
osdconfig is a package to work with distributed config parameters |
pkg
|
|
auth
Package auth can be used for authentication and authorization Copyright 2018 Portworx
|
Package auth can be used for authentication and authorization Copyright 2018 Portworx |
defaultcontext
Package defaultcontext manage the default context and timeouts Copyright 2021 Portworx
|
Package defaultcontext manage the default context and timeouts Copyright 2021 Portworx |
flexvolume
Package flexvolume implements utility code for Kubernetes flexvolumes.
|
Package flexvolume implements utility code for Kubernetes flexvolumes. |
grpcserver
Package grpcserver is a generic gRPC server manager Copyright 2018 Portworx
|
Package grpcserver is a generic gRPC server manager Copyright 2018 Portworx |
grpcutil
Package grpcutil is a package for gRPC utilities Copyright 2021 Portworx
|
Package grpcutil is a package for gRPC utilities Copyright 2021 Portworx |
jsonpb
Package jsonpb provides marshaling and unmarshaling between protocol buffers and JSON.
|
Package jsonpb provides marshaling and unmarshaling between protocol buffers and JSON. |
role
Package role manages roles in Kvdb and provides validation Copyright 2018 Portworx
|
Package role manages roles in Kvdb and provides validation Copyright 2018 Portworx |
storagepolicy
Package storagepolicy manages storage policy and apply/validate storage policy restriction volume operations.
|
Package storagepolicy manages storage policy and apply/validate storage policy restriction volume operations. |
util
Package util provides utility functions for OSD servers and drivers.
|
Package util provides utility functions for OSD servers and drivers. |
Package fake provides an in-memory fake implementation of the Scheduler Copyright 2018 Portworx
|
Package fake provides an in-memory fake implementation of the Scheduler Copyright 2018 Portworx |
tools
|
|
sdkver
Package sdk is the gRPC implementation of the SDK gRPC server Copyright 2018 Portworx
|
Package sdk is the gRPC implementation of the SDK gRPC server Copyright 2018 Portworx |
drivers/buse
Package buse uses the Linux NBD layer to emulate a block device in user space
|
Package buse uses the Linux NBD layer to emulate a block device in user space |
drivers/fake
Package fake provides an in-memory fake driver implementation Copyright 2018 Portworx
|
Package fake provides an in-memory fake driver implementation Copyright 2018 Portworx |
drivers/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |