libopenstorage / specs

Specifications for the open storage project
Apache License 2.0
8 stars 4 forks source link

Explain semantics of the spec #1

Open philips opened 8 years ago

philips commented 8 years ago

I understand that y'all are trying to get something working but it is very unclear what this project is trying to accomplish from reading the spec. I see the swagger API but it is very unclear what the semantics are.

Perhaps a few stories on how the spec might work in practice could be illustrative. For example if I call this method https://github.com/libopenstorage/specs/blob/master/api/openstorage.yaml#L97 what changes on the host? What directory will be mounted? Does that directory have to exist before hand? etc.

gourao commented 8 years ago

To be blunt, what the project is trying to accomplish is establish a storage protocol between the scheduling software and the underlying infrastructure. We want storage to be allocated in a container granular manner in a multi host environment.

To that end, there are two entities involved: 1) The actual container runtime software (Docker, Rkt) etc. 2) A scheduler (k8s, mesos) etc.

And we want a spec that allows for any of the above combinations to work with a backend that can basically respect the protocols of the spec.

To give you an example, if I want to deploy postgress in a container in a multi node environment, and my choices are mesos/k8s/swarm for scheduling, Docker, rkt etc for the container format, it is unclear how to allocate infrastructure resources in a generic way.

Hopefully this project can solve that.