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

Conversation

@vladimirvivien
Member

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

This comment has been minimized.

Show comment
Hide comment
@googlebot

googlebot Jul 7, 2016

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.

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.
@eparis

This comment has been minimized.

Show comment
Hide comment
@eparis

eparis Jul 7, 2016

Member

ok to test

Member

eparis commented Jul 7, 2016

ok to test

@eparis

This comment has been minimized.

Show comment
Hide comment
@eparis

eparis Jul 7, 2016

Member

@kubernetes/sig-storage

Member

eparis commented Jul 7, 2016

@kubernetes/sig-storage

@pmorie pmorie added the sig/storage label Jul 7, 2016

@pmorie

This comment has been minimized.

Show comment
Hide comment
@pmorie

pmorie Jul 7, 2016

Member

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
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
@eparis

This comment has been minimized.

Show comment
Hide comment
@eparis

eparis Jul 7, 2016

Member

godeps updates/changes in a single commit.

Member

eparis commented Jul 7, 2016

godeps updates/changes in a single commit.

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Jul 7, 2016

Member

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

Member

vladimirvivien commented Jul 7, 2016

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

@k8s-merge-robot k8s-merge-robot added size/XS and removed size/XXL labels Jul 8, 2016

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Jul 8, 2016

Member

@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 7f435b2 - libStorage source changes
  • See 56790fa - Godep dependencies
  • See 9005111 - Auto-generated sources
Member

vladimirvivien commented Jul 8, 2016

@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 7f435b2 - libStorage source changes
  • See 56790fa - Godep dependencies
  • See 9005111 - Auto-generated sources
@k8s-bot

This comment has been minimized.

Show comment
Hide comment
@k8s-bot

k8s-bot 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.

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

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Jul 11, 2016

Member

I signed it!

Member

vladimirvivien commented Jul 11, 2016

I signed it!

@googlebot

This comment has been minimized.

Show comment
Hide comment
@googlebot

googlebot Jul 11, 2016

CLAs look good, thanks!

CLAs look good, thanks!

@googlebot googlebot added cla: yes and removed cla: no labels Jul 11, 2016

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Jul 11, 2016

Member

@kubernetes/sig-storage

Member

vladimirvivien commented Jul 11, 2016

@kubernetes/sig-storage

@rootfs

This comment has been minimized.

Show comment
Hide comment
@rootfs

rootfs Jul 17, 2016

Member

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

Member

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

Show outdated Hide outdated Godeps/Godeps.json
@@ -18,6 +18,11 @@
"Rev": "'75cd24fc2f2c2a2088577d12123ddee5f54e0675'"
},
{
"ImportPath": "github.com/BurntSushi/toml",

This comment has been minimized.

@thockin

thockin Jul 18, 2016

Member

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

@thockin

thockin Jul 18, 2016

Member

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

This comment has been minimized.

@cantbewong

cantbewong Jul 18, 2016

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

@cantbewong

cantbewong Jul 18, 2016

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

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Aug 17, 2016

Member

Please 'keep-open'. This PR is still active.

Member

vladimirvivien commented Aug 17, 2016

Please 'keep-open'. This PR is still active.

@k8s-bot

This comment has been minimized.

Show comment
Hide comment
@k8s-bot

k8s-bot Aug 23, 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 will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry.

k8s-bot commented Aug 23, 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 will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry.

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Sep 9, 2016

Member

@kubernetes/sig-storage @saad-ali
Sorry for the XXL tag. But I try to categorized all commits into API Type, Dependencies, and Volume Plugin Impl. Hope this will make things easier to review.

This PR is ready to start the review process. It is in a WIP phase, there are more code coming (testing, dynamic provisioning, etc), but wanted to get some feedback early in this release cycle. Changes are grouped into 3 categories including new API type, dependencies, and volume plugin code.

Looking forward to hear back.

Member

vladimirvivien commented Sep 9, 2016

@kubernetes/sig-storage @saad-ali
Sorry for the XXL tag. But I try to categorized all commits into API Type, Dependencies, and Volume Plugin Impl. Hope this will make things easier to review.

This PR is ready to start the review process. It is in a WIP phase, there are more code coming (testing, dynamic provisioning, etc), but wanted to get some feedback early in this release cycle. Changes are grouped into 3 categories including new API type, dependencies, and volume plugin code.

Looking forward to hear back.

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Sep 9, 2016

Member

@kubernetes/sig-storage @saad-ali The build system seems to run into some GCE Firewall issues:

ERROR: (gcloud.compute.firewall-rules.delete) Some requests did not succeed:
 - The resource 'projects/k8s-jkns-pr-gce/global/firewalls/e2e-gce-agent-pr-47-0-minion-e2e-gce-agent-pr-47-0-http-alt' was not found

ERROR: (gcloud.compute.firewall-rules.delete) Some requests did not succeed:
 - The resource 'projects/k8s-jkns-pr-gce/global/firewalls/e2e-gce-agent-pr-47-0-minion-e2e-gce-agent-pr-47-0-nodeports' was not found
Member

vladimirvivien commented Sep 9, 2016

@kubernetes/sig-storage @saad-ali The build system seems to run into some GCE Firewall issues:

ERROR: (gcloud.compute.firewall-rules.delete) Some requests did not succeed:
 - The resource 'projects/k8s-jkns-pr-gce/global/firewalls/e2e-gce-agent-pr-47-0-minion-e2e-gce-agent-pr-47-0-http-alt' was not found

ERROR: (gcloud.compute.firewall-rules.delete) Some requests did not succeed:
 - The resource 'projects/k8s-jkns-pr-gce/global/firewalls/e2e-gce-agent-pr-47-0-minion-e2e-gce-agent-pr-47-0-nodeports' was not found
@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Dec 4, 2016

Member

@k8s-bot unit test this

Member

vladimirvivien commented Dec 4, 2016

@k8s-bot unit test this

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Dec 4, 2016

Collaborator

@vladimirvivien: you can't request testing unless you are a kubernetes member.

In response to this comment:

@k8s-bot unit test this

If you have questions or suggestions related to this bot's behavior, please file an issue against the kubernetes/test-infra repository.

Collaborator

k8s-ci-robot commented Dec 4, 2016

@vladimirvivien: you can't request testing unless you are a kubernetes member.

In response to this comment:

@k8s-bot unit test this

If you have questions or suggestions related to this bot's behavior, please file an issue against the kubernetes/test-infra repository.

@vladimirvivien

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Dec 4, 2016

Member

@k8s-bot kops aws e2e test this

Member

vladimirvivien commented Dec 4, 2016

@k8s-bot kops aws e2e test this

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Dec 4, 2016

Collaborator

@vladimirvivien: you can't request testing unless you are a kubernetes member.

In response to this comment:

@k8s-bot kops aws e2e test this

If you have questions or suggestions related to this bot's behavior, please file an issue against the kubernetes/test-infra repository.

Collaborator

k8s-ci-robot commented Dec 4, 2016

@vladimirvivien: you can't request testing unless you are a kubernetes member.

In response to this comment:

@k8s-bot kops aws e2e test this

If you have questions or suggestions related to this bot's behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Dec 12, 2016

Collaborator

Jenkins CRI GCE e2e failed for commit f918ce6. Full PR test history.

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

Collaborator

k8s-ci-robot commented Dec 12, 2016

Jenkins CRI GCE e2e failed for commit f918ce6. Full PR test history.

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

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Dec 12, 2016

Collaborator

Jenkins verification failed for commit 7d48a6e. Full PR test history.

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

Collaborator

k8s-ci-robot commented Dec 12, 2016

Jenkins verification failed for commit 7d48a6e. Full PR test history.

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

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Dec 12, 2016

Collaborator

Jenkins Kubemark GCE e2e failed for commit 7d48a6e. Full PR test history.

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

Collaborator

k8s-ci-robot commented Dec 12, 2016

Jenkins Kubemark GCE e2e failed for commit 7d48a6e. Full PR test history.

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

@k8s-merge-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-merge-robot

k8s-merge-robot Jan 3, 2017

Collaborator

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

Collaborator

k8s-merge-robot commented Jan 3, 2017

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

vladimirvivien added some commits Nov 15, 2016

LibStorage Kubernetes volume plugin source code
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
LibStorage generated artifacts
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
LibStorage volume plugin example documentation
This commit includes all example documentation showing how to use the libStorage Kuberneties volume plugin.
@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Jan 4, 2017

Collaborator

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.

Collaborator

k8s-ci-robot commented Jan 4, 2017

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

This comment has been minimized.

Show comment
Hide comment
@vladimirvivien

vladimirvivien Jan 4, 2017

Member

@k8s-bot unit test this

Member

vladimirvivien commented Jan 4, 2017

@k8s-bot unit test this

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot Jan 4, 2017

Collaborator

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.

Collaborator

k8s-ci-robot commented Jan 4, 2017

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-merge-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-merge-robot

k8s-merge-robot Jan 9, 2017

Collaborator

@vladimirvivien PR needs rebase

Collaborator

k8s-merge-robot commented Jan 9, 2017

@vladimirvivien PR needs rebase

@k8s-merge-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-merge-robot

k8s-merge-robot Jan 23, 2017

Collaborator

[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

Collaborator

k8s-merge-robot commented Jan 23, 2017

[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

@vladimirvivien vladimirvivien deleted the vladimirvivien:feature/libstorage branch Jun 7, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment