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

Volume Plugin for Cinder; Openstack Block Storage #6689

Merged
merged 1 commit into from Aug 28, 2015

Conversation

spothanis
Copy link
Contributor

The PR implements cinder as a volume plugin. Cinder is openstack's block storage component.
The functionality is very similar to GCE's pd

@lavalamp
Copy link
Member

To @thockin to find a reviewer.

// CinderPersistentDisk represents a Persistent Disk resource in Openstack.
// A Cinder volume must exist and be formatted before mounting to a container.
// The disk must also be in the same region as the kubelet.
type CinderPersistentDiskVolumeSource struct {
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe just "CinderVolumeSource"? It will be present in both the VolumeSource and PersistentVolumeSource structs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will update

Copy link
Member

Choose a reason for hiding this comment

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

Yeah "PersistentDisk" is not a general concept name, it's literally the product name on Google Cloud Platform. If it's not part of the well-known name of this concept, don't include the words.

// The disk must also be in the same region as the kubelet.
type CinderPersistentDiskVolumeSource struct {
// Unique name of the PD resource. Used to identify the disk in cinder volume
PDName string `json:"pdName"`
Copy link
Member

Choose a reason for hiding this comment

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

As above - use field names that make sense to someone who knows this concept.

@thockin
Copy link
Member

thockin commented Apr 10, 2015

Thanks for taking point Mark. I had almost nothing to add.

@markturansky
Copy link
Contributor

I'm happy to contribute where I can :)

@thockin
Copy link
Member

thockin commented Apr 15, 2015

@zmerlynn

This is another of the volume plugins for which we have no e2e, no way to add e2e in GCE, and no way to ingest 3rd party e2e. :(

@pmorie
Copy link
Member

pmorie commented Apr 15, 2015

This is another of the volume plugins for which we have no e2e, no way to add e2e in GCE, and no way to ingest 3rd party e2e. :(

+1 (-1?)

@wattsteve
Copy link
Contributor

When the Pods are scheduled on Kubernetes Nodes, what are the package requirements in order for the Kubernetes Nodes to be able mount the Cinder Block Device? For example, with the current Kubernetes GlusterFS and Ceph Plugins, glusterfs-client and ceph-common have to be installed, respectively.

@spothanis
Copy link
Contributor Author

@wattsteve
Copy link
Contributor

@spothanis thanks. The README is part of the PR so I had read it, but all it states is "Ensure cinder is installed and configured properly in the region in which kubelet is spun up". Does this plugin design assume that the kubelet is running in a Kubernetes deployment within an OpenStack cluster? Does it still work if Kubernetes is running adjacent to an OpenStack Cinder Deployment (a private cloud scenario)? What client libraries need to be installed on the Kubelet Hosts for the Volume Plugin to work?

@spothanis
Copy link
Contributor Author

The volume plugin uses gopher cloud's openstack client. It is already
packaged into kubelet, so there are no additional installation requirements
for any client libraries.

Does this plugin design assume that the kubelet is running in a Kubernetes
deployment within an OpenStack cluster?
Yes.

Does it still work if Kubernetes is running adjacent to an OpenStack
Cinder Deployment (a private cloud scenario)?
Kubelet hosts must be nova vm's and must be in a region where Cinder is
available, only then nova will be able to attach a volume to the VM on
which kubelet has been running.

On Thu, May 7, 2015 at 5:07 AM, Steve Watt notifications@github.com wrote:

@spothanis https://github.com/spothanis thanks. The README is part of
the PR so I had read it, but all it states is "Ensure cinder is installed
and configured properly in the region in which kubelet is spun up". Does
this plugin design assume that the kubelet is running in a Kubernetes
deployment within an OpenStack cluster? Does it still work if Kubernetes is
running adjacent to an OpenStack Cinder Deployment (a private cloud
scenario)? What client libraries need to be installed on the Kubernetes for
the Volume Plugin to work?


Reply to this email directly or view it on GitHub
#6689 (comment)
.

Thank you,
Sreekanth

@k8s-bot
Copy link

k8s-bot commented May 22, 2015

Can one of the admins verify that this patch is reasonable to test? (reply "ok to test", or if you trust the user, reply "add to whitelist")

If this message is too spammy, please complain @ixdy.

@erictune
Copy link
Member

erictune commented Jun 1, 2015

ok to test

@erictune erictune added this to the v1.0-post milestone Jun 1, 2015
@k8s-bot
Copy link

k8s-bot commented Jun 1, 2015

EXPERIMENTAL JENKINS PR BUILDER: e2e build failed.

@@ -205,6 +205,8 @@ type VolumeSource struct {
Glusterfs *GlusterfsVolumeSource `json:"glusterfs"`
// PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace
PersistentVolumeClaimVolumeSource *PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty"`
// CinderVolume represents a cinder volume attached and mounted on kubelets host machine
CinderVolume *CinderVolumeSource `json:"cinderVolume"`
Copy link
Member

Choose a reason for hiding this comment

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

do you really want "cinderVolume" to be the API or do you want "cinder" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will change it to cinder

@k8s-bot
Copy link

k8s-bot commented Jul 8, 2015

Can one of the admins verify that this patch is reasonable to test? (reply "ok to test", or if you trust the user, reply "add to whitelist")

If this message is too spammy, please complain to ixdy.

@pmorie
Copy link
Member

pmorie commented Jul 8, 2015

ok to test

On Wed, Jul 8, 2015 at 6:55 PM, Kubernetes Bot notifications@github.com
wrote:

Can one of the admins verify that this patch is reasonable to test? (reply
"ok to test", or if you trust the user, reply "add to whitelist")

If this message is too spammy, please complain to ixdy.


Reply to this email directly or view it on GitHub
#6689 (comment)
.

@pmorie pmorie added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 27, 2015
@saad-ali
Copy link
Member

@spothanis If you plan to address @pmorie's feedback in a follow up PR, please open an issue and link it here for tracking. And thanks for all your hard work!

@spothanis
Copy link
Contributor Author

@saad-ali I am rebasing to include @pmorie suggestions, will have it shortly, but if it is better to do it in a separate PR, I can do that too

@pmorie
Copy link
Member

pmorie commented Aug 27, 2015

@spothanis It's your call -- I'll remove LGTM if you would prefer and add it again when you're ready, or I can review a follow up PR. For the record, I didn't mean to derail this so close to LGTM.

@spothanis
Copy link
Contributor Author

@pmorie I really appreciate your time and advice on the PR. I will send a follow up PR to address the feedback
@thockin @saad-ali @markturansky Thank you for all of your time and feedback.

@pmorie
Copy link
Member

pmorie commented Aug 27, 2015

@spothanis did you decide about a follow up or integrating comments now?

@spothanis
Copy link
Contributor Author

@pmorie do a follow up PR if it is ok

@pmorie
Copy link
Member

pmorie commented Aug 27, 2015

@spothanis sounds great.

@k8s-oncall Can oncall take a look at this PR?

@k8s-github-robot k8s-github-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Aug 27, 2015
@k8s-github-robot
Copy link

Labelling this PR as size/XXL

@bprashanth
Copy link
Contributor

Fyi: plan is to wait for the submit queue to pick this up

@pmorie
Copy link
Member

pmorie commented Aug 28, 2015

@bprashanth when do you expect that to happen?

@bprashanth
Copy link
Contributor

Hopefully today, it's a function of how green the build is. Let me know if this is blocking you and we can do a manual merge, as it seems retty isolated.

@saad-ali
Copy link
Member

@bprashanth Let's prioritize getting this in. Thanks!

bprashanth added a commit that referenced this pull request Aug 28, 2015
Volume Plugin for Cinder; Openstack Block Storage
@bprashanth bprashanth merged commit 8d0d54f into kubernetes:master Aug 28, 2015
@bprashanth
Copy link
Contributor

Grr, broke precommit, please /hack/verify-generated-conversions.sh again

@spothanis
Copy link
Contributor Author

@bprashanth looking into it

@liggitt
Copy link
Member

liggitt commented Aug 28, 2015

how did shippable pass with broken conversions?

@bprashanth
Copy link
Contributor

the results should expire. it passed before the breaking changes came in.

@pmorie
Copy link
Member

pmorie commented Aug 28, 2015

@bprashanth Did I read your comment correctly to mean that the precommit hook changed after the last shippable run?

@bprashanth
Copy link
Contributor

the generated code changed beneath us in a way that didn't cause a merge conflict but caused the precommit to fail, but we didn't notice because shippable ran and passed before the change

@spothanis
Copy link
Contributor Author

I will open a new PR with the required changes

@wattsteve
Copy link
Contributor

@spothanis et al. Thanks for all your hard work on this. This is an awesome feature to add!

@spothanis spothanis mentioned this pull request Aug 31, 2015
dims pushed a commit to dims/kubernetes that referenced this pull request Feb 8, 2018
Volume Plugin for Cinder; Openstack Block Storage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/storage Categorizes an issue or PR as relevant to SIG Storage. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet