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

Add support for libStorage as a Kubernetes volume plugin. #28599

Closed
wants to merge 3 commits into from
Closed

Add support for libStorage as a Kubernetes volume plugin. #28599

wants to merge 3 commits into from

Conversation

vladimirvivien
Copy link
Member

@vladimirvivien vladimirvivien commented Jul 7, 2016

Analytics
This change is to implement the libStorage storage provisioner and orchestrator framework as a Kubernetes volume plugin. LibStorage is an open source project from EMC {code}. One of its primary goals is provide persistent volume access to containerized applications. The libStorage framework comes with a stable API and a robust set of storage primitives including:

  • Volume creation
  • Volume inspection
  • Mount and unmount
  • Attach and detach

LibStorage offers a simple model for creating drivers for storage provisioning and orchestration. Storage drivers use a small but versioned API to implement some or all storage primitives. The drivers are automatically managed by the libStorage infrastructure. LibStorage exists to provide uniform access to the sizable and diverse storage platforms found in enterprise deployments. A libStorage volume plugin would allow Kubernetes to support many of these platforms while decoupling their implementations from the Kubernetes codebase.

The goals of the libStorage Kubernetes volume plugin are:

  • Mitigate the efforts of implementing k8s volume services
  • Grow the list of enterprise storage platforms available to k8s
  • Provide a portable storage API to third-party storage implementers

The libStorage volume plugin is designed to be cloud and provider agnostic. The volume is able to handle both PVs and PVCs. To enable libStorage as a dynamic persistent volume provisioner, use the --enable-libstorage-provisioner flag when launching the kube-controller-manager. This will use libStorage to automatically provision volumes defined in a Persistent Volume Claim.


This change is Reviewable

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If you signed the CLA as a corporation, please let us know the company's name.

@k8s-github-robot k8s-github-robot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. release-note-label-needed labels Jul 7, 2016
@eparis
Copy link
Contributor

eparis commented Jul 7, 2016

ok to test

@eparis
Copy link
Contributor

eparis commented Jul 7, 2016

@kubernetes/sig-storage

@pmorie pmorie added the sig/storage Categorizes an issue or PR as relevant to SIG Storage. label Jul 7, 2016
@pmorie
Copy link
Member

pmorie commented Jul 7, 2016

Suggestion: this would probably be easier to review if it was split into multiple commits like so:

  1. API changes
  2. Generated code
  3. Volume plugin

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 7, 2016
@eparis
Copy link
Contributor

eparis commented Jul 7, 2016

godeps updates/changes in a single commit.

@vladimirvivien
Copy link
Member Author

Working on breaking out auto-gen code from real code changes.

@k8s-github-robot k8s-github-robot added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jul 8, 2016
@vladimirvivien
Copy link
Member Author

@pmorie I followed your suggestion and reset the feature branch and broke out the code into 3 separate commits to make it easy to review .

  • See 7f435b24bc3f4d722855b18a9c8339cf736eb417 - libStorage source changes
  • See 56790fa95fe89e6b906030a69bf25b4d46777384 - Godep dependencies
  • See 9005111dd2d81c35bbeae1f49ec3277161edb585 - Auto-generated sources

@k8s-bot
Copy link

k8s-bot commented Jul 11, 2016

Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test".
(Note: "add to whitelist" is no longer supported. Please update configurations in kubernetes/test-infra/jenkins/job-configs/kubernetes-jenkins-pull instead.)

This message may repeat a few times in short succession due to jenkinsci/ghprb-plugin#292. Sorry.

Otherwise, if this message is too spammy, please complain to ixdy.

@vladimirvivien
Copy link
Member Author

I signed it!

@googlebot
Copy link

CLAs look good, thanks!

@vladimirvivien
Copy link
Member Author

@kubernetes/sig-storage

@rootfs
Copy link
Contributor

rootfs commented Jul 17, 2016

About enable-libstorage-provisioner option, please coordinate with #29006

@thockin thockin assigned saad-ali and unassigned zmerlynn Jul 18, 2016
@@ -18,6 +18,11 @@
"Rev": "'75cd24fc2f2c2a2088577d12123ddee5f54e0675'"
},
{
"ImportPath": "github.com/BurntSushi/toml",
Copy link
Member

Choose a reason for hiding this comment

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

For a start we CAN NOT use this dep - it is licensed under the WTFPL which is not allowed.

https://news.ycombinator.com/item?id=5733050#up_5733477

Copy link

@cantbewong cantbewong Jul 18, 2016

Choose a reason for hiding this comment

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

Thanks for reviewing, I have asked the developer associated with the code using this WTFPL licensed dep to investigate alternatives

@k8s-github-robot k8s-github-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Jul 18, 2016
@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 13, 2016
@k8s-github-robot k8s-github-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Dec 20, 2016
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 3, 2017
@k8s-github-robot
Copy link

Adding label:do-not-merge because PR changes docs prohibited to auto merge
See http://kubernetes.io/editdocs/ for information about editing docs

@k8s-github-robot k8s-github-robot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/design Categorizes issue or PR as related to design. kind/old-docs do-not-merge DEPRECATED. Indicates that a PR should not merge. Label can only be manually applied/removed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jan 3, 2017
This commit captures the code changes for implementating the Kubernetes libStorage volume plugin including:
- LibStoragetVolumeSource API type
- LibStorage Plugin Impl
- LibStorage impl of Mounter, Unmounter, Provisioner, etc
- LibStorage client code
This commit encapsulates all source and doc artifacts generated by the build scripts including
- API documentations
- Source code for API types
- Other build artifacts
- Etc
This commit includes all example documentation showing how to use the libStorage Kuberneties volume plugin.
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 4, 2017
@k8s-ci-robot
Copy link
Contributor

Jenkins Bazel Build failed for commit 4d073df. Full PR test history.

The magic incantation to run this job again is @k8s-bot bazel test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@vladimirvivien
Copy link
Member Author

@k8s-bot unit test this

@k8s-ci-robot
Copy link
Contributor

Jenkins unit/integration failed for commit 4d073df. Full PR test history.

The magic incantation to run this job again is @k8s-bot unit test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@k8s-github-robot
Copy link

@vladimirvivien PR needs rebase

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 9, 2017
@k8s-github-robot
Copy link

[APPROVALNOTIFIER] Needs approval from an approver in each of these OWNERS Files:

We suggest the following people:
cc @lavalamp
You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@wojtek-t wojtek-t removed their assignment Feb 10, 2017
@bgrant0607 bgrant0607 assigned thockin and unassigned bgrant0607 Feb 28, 2017
@grodrigues3 grodrigues3 added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Apr 5, 2017
@vladimirvivien vladimirvivien deleted the feature/libstorage branch June 7, 2017 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge DEPRECATED. Indicates that a PR should not merge. Label can only be manually applied/removed. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/design Categorizes issue or PR as related to design. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. 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.