Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oep(csi provisioning): add proposal for csi based volume provisioning #2617

Merged
merged 1 commit into from
Jun 20, 2019

Conversation

AmitKumarDas
Copy link

This commit adds an OpenEBS Enhancement Proposal to define the specifications and design required to implement CSI driver for OpenEBS based volumes.

Signed-off-by: AmitKumarDas amit.das@mayadata.io

@AmitKumarDas AmitKumarDas self-assigned this Jun 6, 2019
@AmitKumarDas AmitKumarDas force-pushed the oep-csi branch 2 times, most recently from 7dd3daa to 1e2542f Compare June 6, 2019 04:13
@AmitKumarDas AmitKumarDas changed the title oep(csi provisioning): add proposal for csi based volume provisioning [WIP] oep(csi provisioning): add proposal for csi based volume provisioning Jun 11, 2019
@AmitKumarDas AmitKumarDas force-pushed the oep-csi branch 3 times, most recently from 8ab08b7 to f6041fc Compare June 12, 2019 04:23
@AmitKumarDas AmitKumarDas requested a review from pawanpraka1 June 12, 2019 04:33
Copy link
Contributor

@utkarshmani1997 utkarshmani1997 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AmitKumarDas have provided some review comments, additionally it will be very helpful if you provide architectural diagram of proposed changes and a comparison with the existing approach will be very helpful in understanding the need.


There were previous attempts to implement CSI which is tightly coupled with the
way Kubernetes works. This attempt will revisit to have an implementation that
is not tied to Kubernetes native resources.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't relate this "is not tied to kubernetes native resources", as CSI itself is something that is tightly coupled with kubernetes (requires kubernetes APIs).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CSI abstracts container orchestrators.
An Ideal CSI implementation should work with any container orchestrator e.g. mesos or k8s or nomad, etc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in other words, how new approach will solve this ?

way Kubernetes works. This attempt will revisit to have an implementation that
is not tied to Kubernetes native resources.

Current provisioning approach works well given day 1 operations. However, we
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what are day1 and day2 operations ?


#### Proposed Implementation
Since OpenEBS itself runs on Kubernetes; limiting OpenEBS provisioning
to be confined to CSI standards will prove difficult to develop and improve upon
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the difficulty with the current approach ?

to be confined to CSI standards will prove difficult to develop and improve upon
OpenEBS features.

This proposal tries to adhere to CSI standards and make itself CSI compliant.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link to CSI standards will be helpful


This proposal tries to adhere to CSI standards and make itself CSI compliant.
At the same time, this proposal lets OpenEBS embrace use of Kubernetes custom
resources and custom controllers to provide storage for stateful applications.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

above sentence and "Inorder to implement CSI as per its standards, OpenEBS volumes should decouple
itself from being aware of container orchestrator." are bit confusing, custom resources and CSI are native to kubernetes, what kind of decoupling we want to achieve?
Will CSI work for other orchestrator's also without or with little modification ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CSI is not native to Kubernetes.
OpenEBS needs to implement CSI on one hand, however since OpenEBS itself runs on Kubernetes, it will depend on Kubernetes features. Due to this dependency current OpenEBS implementation for CSI has deviated from just being compliant with existing methods and payload defined by CSI.
This proposal is an attempt to adhere to CSI standards as well as not limit OpenEBS implement its features (read Kubernetes curstom resources and controllers)

I shall add a FAQ section in this proposal.

name: <some name -- can be same as storage class name>
namespace: <namespace of openebs i.e. openebs system namespace>
spec:
controllerDeployment:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

controller is a generic word. Should we change this to target?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@AmitKumarDas AmitKumarDas force-pushed the oep-csi branch 9 times, most recently from c6fb2e4 to 92d0bc3 Compare June 14, 2019 11:16
#### Delete the volume
As an application developer I should be able to delete the volume that was being
consumed by my application. This volume should get deleted only when the
application is deleted.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be something like:
This volume can be deleted only after the application consuming it has been deleted.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

This commit adds an OpenEBS Enhancement Proposal to define the
specifications and design required to implement CSI driver for
OpenEBS based volumes.

Signed-off-by: AmitKumarDas <amit.das@mayadata.io>
@AmitKumarDas AmitKumarDas changed the title [WIP] oep(csi provisioning): add proposal for csi based volume provisioning oep(csi provisioning): add proposal for csi based volume provisioning Jun 20, 2019
Copy link
Contributor

@vishnuitta vishnuitta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes are good. This can be improved further as we get to next steps.

@vishnuitta vishnuitta merged commit 721161e into openebs:master Jun 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants