-
Notifications
You must be signed in to change notification settings - Fork 47
Persistent storage types #193
Comments
It might even be three roles:
|
Next think I see is a route object for OpenShift, if we want to expose a service via a URL, we could simply add
An implementation like Atomic App could generate an OpenShift route configuration from that:
|
From my pov, I as a developer don't care about the type of underlying storage type (f.e. @goern is right about other types - that was what I was trying to suggest in previous discussion (thanks for clarification;) How do we make size amendable via answers.conf? |
Talked about this with @goern and concluded that atomicapp should not know on the underlying storage and should let the underlying provider take care of that (take from a storage pool already configured, etc.) So what should be the final format? requirements:
- name: "var-lib-mongodb-data"
type: "persistentVolume"
properties:
accessMode: "ReadWrite"
size: 4 # GB by default as suggested by @dustymabe ? our current format in the spec is: requirements:
- persistentVolume:
accessMode: ReadWrite
name: var-lib-data
size: 4 |
What if we do |
From my point of view, persistentVolume requirement of the Nulecule is a request or prerequisite of the application (stated by the ISV how nuleculized the application): "I application need 4GiB of persistent volume". The platform provider or the deployment guy is always free to provision more storage to the application. So @vpavlin why do we want to have the bare minimum required by the application be modifiable by the deployment gut, as the platform operator may provide more storage anyways!? |
I don't know...it was just a random idea..maybe because |
Per my comment there's a gap in that the app needs to mount the volume at some path. So this only solves half of the problem. The orchestration artifact basically solves this problem already. I'm not sure how to abstract this concept any further, or what value it provides. It does sound nice to simply say, "My app needs storage at this path. Please take care of the details." |
So should we add a The only other way I see mapping it out is to have volumes be discoverable like services so that a volume with a name gets mounted at a configurable location.. but I don't think that is something we want to try to do right now. |
After discussion with @goern I'm revising my thoughts on this: the application artefact will define how it wants to use the volume, where it should be mounted. We don't need to provide a path in the spec. |
Regarding the path: we may say that the provider should define the path for the host/network, but the app spec should provide the path inside the container, since that is a requirement of the app. For example, if I need persistentStorage for my PostgreSQL database app, then I need to be able to specify that that storage should be mounted inside the container at /var/pgsql/data. The Nulecule file is the appropriate place to do this, not the provider files, because that storage is going to be at /var/pgsql/data inside the container regardless of how the host is providing it. |
so that would make the new format:
where "path" is the path inside the container. |
@jberkus you are right for some cases, it could be clever to bind that volume to a specific path within the container/application context. I would make it a required attribute. In any way we can have a path attribute within the persistentVolume object without changing the spec (as you are free to add whatever you want to the yaml), while defining its meaning/semantics in the Atomic App context. |
Meant to also add @vpavlin
So we should add it as a required attribute?
I'd rather not deviate too much from the spec. This becomes a management headache in the future. |
uh oh... sorry, _wouldn't_ make it a required attribute ACK, so I'll have a look at it early next week, or you send in a PR? |
@goern Were you able to have a look at this? :) Going forward once we have this finalized I can implement this into atomicapp, especially since this would particular help with implement persistent storage for the docker and openshift providers. |
* bounced to version 0.1.0, lets start using semantic versioning!
This is a tentative issue / discussion for persistent storage as well as persistent storage types as a continuation of issue #181
@goern
I agree with you in regards to
being deleted from
We assume that the user has already configured what type of storage they'd like to use (nfs, gce, etc.), we shouldn't have to add it to
Nulecule
, but ratheranswers.conf
.The text was updated successfully, but these errors were encountered: