Repository: kubernetes-csi/external-provisioner
Pull request #335 (2019-08-30 19:36:03)

Update snapshot CRD to v1beta
**What type of PR is this?**
/kind feature

**What this PR does / why we need it**:
This PR updates dependencies to VolumeSnapshot CRD v1beta1.

**Which issue(s) this PR fixes**:
Fixes #

**Special notes for your reviewer**:
Note: Dependency files from external-snapshotter are manually copied at this point.
Snapshot beta APIs are not finalized yet.

**Does this PR introduce a user-facing change?**:
```release-note
Updates VolumeSnapshot CRD to v1beta1
```


k8s-ci-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes-csi/external-provisioner/pull/335#" title="Author self-approved">xing-yang</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **saad-ali**
You can assign the PR to them by writing `/assign @saad-ali` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes-csi%2Fexternal-provisioner).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/kubernetes-csi/external-provisioner/blob/master/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["saad-ali"]} -->
k8s-ci-robot: @xing-yang: The following test **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-unit | 05388fb2ddbbf0918be8810a288f178c3839e32f | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1182301959869173761) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following test **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-unit | a4b58f60206e1191681b2e1447a79c97c1b90ff5 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1182767674829049856) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following test **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-unit | a9a79d063822237ee18e0fd69c6f6369d681b935 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1183897455746355200) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following tests **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-unit | a9a79d063822237ee18e0fd69c6f6369d681b935 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1183897455746355200) | `/test pull-kubernetes-csi-external-provisioner-unit`
pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14/1188510799400800261) | `/test pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following tests **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14/1188510799400800261) | `/test pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14`
pull-kubernetes-csi-external-provisioner-unit | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1188510799400800258) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following tests **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14/1188510799400800261) | `/test pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14`
pull-kubernetes-csi-external-provisioner-unit | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1188510799400800258) | `/test pull-kubernetes-csi-external-provisioner-unit`
pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15/1188510799400800257) | `/test pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following tests **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14/1188510799400800261) | `/test pull-kubernetes-csi-external-provisioner-1-14-on-kubernetes-1-14`
pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15/1188510799400800257) | `/test pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15`
pull-kubernetes-csi-external-provisioner-unit | 65ce20f81bef6002cf21143be07fbf28a0abd338 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1188511299487666179) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
k8s-ci-robot: @xing-yang: The following tests **failed**, say `/retest` to rerun them all:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15 | 0fa4f51b27e318032eee9e233ec126ef43df6584 | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15/1188510799400800257) | `/test pull-kubernetes-csi-external-provisioner-1-15-on-kubernetes-1-15`
pull-kubernetes-csi-external-provisioner-unit | 23af26053896da8698e793377164ab36df5468bc | [link](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubernetes-csi_external-provisioner/335/pull-kubernetes-csi-external-provisioner-unit/1188514702326501377) | `/test pull-kubernetes-csi-external-provisioner-unit`

[Full PR test history](https://prow.k8s.io/pr-history?org=kubernetes-csi&repo=external-provisioner&pr=335). [Your PR dashboard](https://gubernator.k8s.io/pr/xing-yang). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes-csi/external-provisioner/issues?q=is:issue+is:open) when you hit one in your PR.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
xing-yang: /assign @msau42 

xing-yang: Hi @msau42, this PR uses the latest external-snapshotter master code.  It is ready for review.
k8s-ci-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes-csi/external-provisioner/pull/335#" title="Author self-approved">xing-yang</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **msau42**
You can assign the PR to them by writing `/assign @msau42` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes-csi%2Fexternal-provisioner).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/kubernetes-csi/external-provisioner/blob/master/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["msau42"]} -->

Patch:
diff --git a/cmd/csi-provisioner/csi-provisioner.go b/cmd/csi-provisioner/csi-provisioner.go
index bdad85809..530e0129a 100644
--- a/cmd/csi-provisioner/csi-provisioner.go
+++ b/cmd/csi-provisioner/csi-provisioner.go
@@ -43,7 +43,6 @@ import (
 
 	utilfeature "k8s.io/apiserver/pkg/util/feature"
 	"k8s.io/client-go/informers"
-	"k8s.io/client-go/listers/core/v1"
 	storagelisters "k8s.io/client-go/listers/storage/v1beta1"
 	utilflag "k8s.io/component-base/cli/flag"
 	csitrans "k8s.io/csi-translation-lib"
@@ -122,7 +121,7 @@ func main() {
 	if err != nil {
 		klog.Fatalf("Failed to create client: %v", err)
 	}
-	// snapclientset.NewForConfig creates a new Clientset for VolumesnapshotV1alpha1Client
+	// snapclientset.NewForConfig creates a new Clientset for VolumesnapshotV1beta1Client
 	snapClient, err := snapclientset.NewForConfig(config)
 	if err != nil {
 		klog.Fatalf("Failed to create snapshot client: %v", err)
@@ -185,13 +184,11 @@ func main() {
 	}
 
 	var csiNodeLister storagelisters.CSINodeLister
-	var nodeLister v1.NodeLister
 	var factory informers.SharedInformerFactory
 	if ctrl.SupportsTopology(pluginCapabilities) {
 		// Create informer to prevent hit the API server for all resource request
 		factory = informers.NewSharedInformerFactory(clientset, ctrl.ResyncPeriodOfCsiNodeInformer)
 		csiNodeLister = factory.Storage().V1beta1().CSINodes().Lister()
-		nodeLister = factory.Core().V1().Nodes().Lister()
 	}
 
 	// Create the provisioner: it implements the Provisioner interface expected by
@@ -210,8 +207,7 @@ func main() {
 		supportsMigrationFromInTreePluginName,
 		*strictTopology,
 		translator,
-		csiNodeLister,
-		nodeLister)
+		csiNodeLister)
 
 	provisionController = controller.NewProvisionController(
 		clientset,
@@ -228,7 +224,7 @@ func main() {
 			cacheSyncResult := factory.WaitForCacheSync(stopCh)
 			for _, v := range cacheSyncResult {
 				if !v {
-					klog.Fatalf("Failed to sync Informers!")
+					klog.Fatalf("Failed to sync CsiNodeInformer!")
 				}
 			}
 		}
diff --git a/go.mod b/go.mod
index 50a917981..4300bb9ff 100644
--- a/go.mod
+++ b/go.mod
@@ -11,7 +11,7 @@ require (
 	github.com/imdario/mergo v0.3.7 // indirect
 	github.com/kubernetes-csi/csi-lib-utils v0.6.1
 	github.com/kubernetes-csi/csi-test v2.0.0+incompatible
-	github.com/kubernetes-csi/external-snapshotter v0.0.0-20190401205233-54a21f108e31
+	github.com/kubernetes-csi/external-snapshotter v2.0.0-rc1.0.20191024235139-bc6e42db5bc6+incompatible
 	github.com/miekg/dns v1.1.8 // indirect
 	github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 // indirect
 	github.com/prometheus/common v0.2.0 // indirect
diff --git a/go.sum b/go.sum
index 2f01c3b23..c2079d932 100644
--- a/go.sum
+++ b/go.sum
@@ -91,8 +91,8 @@ github.com/kubernetes-csi/csi-lib-utils v0.6.1 h1:+AZ58SRSRWh2vmMoWAAGcv7x6fIyBM
 github.com/kubernetes-csi/csi-lib-utils v0.6.1/go.mod h1:GVmlUmxZ+SUjVLXicRFjqWUUvWez0g0Y78zNV9t7KfQ=
 github.com/kubernetes-csi/csi-test v2.0.0+incompatible h1:ia04uVFUM/J9n/v3LEMn3rEG6FmKV5BH9QLw7H68h44=
 github.com/kubernetes-csi/csi-test v2.0.0+incompatible/go.mod h1:YxJ4UiuPWIhMBkxUKY5c267DyA0uDZ/MtAimhx/2TA0=
-github.com/kubernetes-csi/external-snapshotter v0.0.0-20190401205233-54a21f108e31 h1:k5JUmEU48jVYjA2G6G0Vm09vK7QGm24KQm9XTWAF+KE=
-github.com/kubernetes-csi/external-snapshotter v0.0.0-20190401205233-54a21f108e31/go.mod h1:oYfxnsuh48V1UDYORl77YQxQbbdokNy7D73phuFpksY=
+github.com/kubernetes-csi/external-snapshotter v2.0.0-rc1.0.20191024235139-bc6e42db5bc6+incompatible h1:luZoAqNkFePdBVZlKNL3+GPRN9djXt8sxhDJjumGlD8=
+github.com/kubernetes-csi/external-snapshotter v2.0.0-rc1.0.20191024235139-bc6e42db5bc6+incompatible/go.mod h1:oYfxnsuh48V1UDYORl77YQxQbbdokNy7D73phuFpksY=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 6158c0988..91723d999 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -30,7 +30,7 @@ import (
 
 	"github.com/container-storage-interface/spec/lib/go/csi"
 	"github.com/kubernetes-csi/csi-lib-utils/connection"
-	snapapi "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	snapapi "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	snapclientset "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned"
 	"sigs.k8s.io/sig-storage-lib-external-provisioner/controller"
 	"sigs.k8s.io/sig-storage-lib-external-provisioner/util"
@@ -47,7 +47,6 @@ import (
 	"k8s.io/klog"
 
 	"google.golang.org/grpc"
-	corelisters "k8s.io/client-go/listers/core/v1"
 	storagelisters "k8s.io/client-go/listers/storage/v1beta1"
 )
 
@@ -120,6 +119,8 @@ const (
 	deleteVolumeRetryCount = 5
 
 	annStorageProvisioner = "volume.beta.kubernetes.io/storage-provisioner"
+
+	snapshotNotBound = "snapshot %s not bound"
 )
 
 var (
@@ -198,7 +199,6 @@ type csiProvisioner struct {
 	strictTopology                        bool
 	translator                            ProvisionerCSITranslator
 	csiNodeLister                         storagelisters.CSINodeLister
-	nodeLister                            corelisters.NodeLister
 }
 
 var _ controller.Provisioner = &csiProvisioner{}
@@ -259,8 +259,7 @@ func NewCSIProvisioner(client kubernetes.Interface,
 	supportsMigrationFromInTreePluginName string,
 	strictTopology bool,
 	translator ProvisionerCSITranslator,
-	csiNodeLister storagelisters.CSINodeLister,
-	nodeLister corelisters.NodeLister) controller.Provisioner {
+	csiNodeLister storagelisters.CSINodeLister) controller.Provisioner {
 
 	csiClient := csi.NewControllerClient(grpcClient)
 	provisioner := &csiProvisioner{
@@ -279,7 +278,6 @@ func NewCSIProvisioner(client kubernetes.Interface,
 		strictTopology:                        strictTopology,
 		translator:                            translator,
 		csiNodeLister:                         csiNodeLister,
-		nodeLister:                            nodeLister,
 	}
 	return provisioner
 }
@@ -508,8 +506,7 @@ func (p *csiProvisioner) ProvisionExt(options controller.ProvisionOptions) (*v1.
 			options.StorageClass.AllowedTopologies,
 			options.SelectedNode,
 			p.strictTopology,
-			p.csiNodeLister,
-			p.nodeLister)
+			p.csiNodeLister)
 		if err != nil {
 			return nil, controller.ProvisioningNoChange, fmt.Errorf("error generating accessibility requirements: %v", err)
 		}
@@ -800,49 +797,50 @@ func (p *csiProvisioner) getPVCSource(options controller.ProvisionOptions) (*csi
 // getSnapshotSource verifies DataSource.Kind of type VolumeSnapshot, making sure that the requested Snapshot is available/ready
 // returns the VolumeContentSource for the requested snapshot
 func (p *csiProvisioner) getSnapshotSource(options controller.ProvisionOptions) (*csi.VolumeContentSource, error) {
-	snapshotObj, err := p.snapshotClient.VolumesnapshotV1alpha1().VolumeSnapshots(options.PVC.Namespace).Get(options.PVC.Spec.DataSource.Name, metav1.GetOptions{})
+	snapshotObj, err := p.snapshotClient.SnapshotV1beta1().VolumeSnapshots(options.PVC.Namespace).Get(options.PVC.Spec.DataSource.Name, metav1.GetOptions{})
 	if err != nil {
 		return nil, fmt.Errorf("error getting snapshot %s from api server: %v", options.PVC.Spec.DataSource.Name, err)
 	}
-	if snapshotObj.Status.ReadyToUse == false {
-		return nil, fmt.Errorf("snapshot %s is not Ready", options.PVC.Spec.DataSource.Name)
-	}
 
 	if snapshotObj.ObjectMeta.DeletionTimestamp != nil {
 		return nil, fmt.Errorf("snapshot %s is currently being deleted", options.PVC.Spec.DataSource.Name)
 	}
 	klog.V(5).Infof("VolumeSnapshot %+v", snapshotObj)
 
-	snapContentObj, err := p.snapshotClient.VolumesnapshotV1alpha1().VolumeSnapshotContents().Get(snapshotObj.Spec.SnapshotContentName, metav1.GetOptions{})
-	if err != nil {
-		klog.Warningf("error getting snapshotcontent %s for snapshot %s/%s from api server: %s", snapshotObj.Spec.SnapshotContentName, snapshotObj.Namespace, snapshotObj.Name, err)
-		return nil, fmt.Errorf("snapshot in dataSource not bound or invalid")
+	if snapshotObj.Status == nil || snapshotObj.Status.BoundVolumeSnapshotContentName == nil {
+		return nil, fmt.Errorf(snapshotNotBound, options.PVC.Spec.DataSource.Name)
 	}
 
-	if snapContentObj.Spec.VolumeSnapshotRef == nil {
-		klog.Warningf("snapshotcontent %s for snapshot %s/%s is not bound", snapshotObj.Spec.SnapshotContentName, snapshotObj.Namespace, snapshotObj.Name)
-		return nil, fmt.Errorf("snapshot in dataSource not bound or invalid")
+	snapContentObj, err := p.snapshotClient.SnapshotV1beta1().VolumeSnapshotContents().Get(*snapshotObj.Status.BoundVolumeSnapshotContentName, metav1.GetOptions{})
+
+	if err != nil {
+		klog.Warningf("error getting snapshotcontent %s for snapshot %s/%s from api server: %s", *snapshotObj.Status.BoundVolumeSnapshotContentName, snapshotObj.Namespace, snapshotObj.Name, err)
+		return nil, fmt.Errorf(snapshotNotBound, options.PVC.Spec.DataSource.Name)
 	}
 
 	if snapContentObj.Spec.VolumeSnapshotRef.UID != snapshotObj.UID || snapContentObj.Spec.VolumeSnapshotRef.Namespace != snapshotObj.Namespace || snapContentObj.Spec.VolumeSnapshotRef.Name != snapshotObj.Name {
-		klog.Warningf("snapshotcontent %s for snapshot %s/%s is bound to a different snapshot", snapshotObj.Spec.SnapshotContentName, snapshotObj.Namespace, snapshotObj.Name)
-		return nil, fmt.Errorf("snapshot in dataSource not bound or invalid")
+		klog.Warningf("snapshotcontent %s for snapshot %s/%s is bound to a different snapshot", *snapshotObj.Status.BoundVolumeSnapshotContentName, snapshotObj.Namespace, snapshotObj.Name)
+		return nil, fmt.Errorf(snapshotNotBound, options.PVC.Spec.DataSource.Name)
 	}
 
-	if snapContentObj.Spec.VolumeSnapshotSource.CSI == nil {
-		klog.Warningf("error getting snapshot source from snapshotcontent %s for snapshot %s/%s", snapshotObj.Spec.SnapshotContentName, snapshotObj.Namespace, snapshotObj.Name)
-		return nil, fmt.Errorf("snapshot in dataSource not bound or invalid")
+	if snapContentObj.Spec.Driver != options.StorageClass.Provisioner {
+		klog.Warningf("snapshotcontent %s for snapshot %s/%s is handled by a different CSI driver than requested by StorageClass %s", *snapshotObj.Status.BoundVolumeSnapshotContentName, snapshotObj.Namespace, snapshotObj.Name, options.StorageClass.Name)
+		return nil, fmt.Errorf(snapshotNotBound, options.PVC.Spec.DataSource.Name)
 	}
 
-	if snapContentObj.Spec.VolumeSnapshotSource.CSI.Driver != options.StorageClass.Provisioner {
-		klog.Warningf("snapshotcontent %s for snapshot %s/%s is handled by a different CSI driver than requested by StorageClass %s", snapshotObj.Spec.SnapshotContentName, snapshotObj.Namespace, snapshotObj.Name, options.StorageClass.Name)
-		return nil, fmt.Errorf("snapshot in dataSource not bound or invalid")
+	if snapshotObj.Status.ReadyToUse == nil || *snapshotObj.Status.ReadyToUse == false {
+		return nil, fmt.Errorf("snapshot %s is not Ready", options.PVC.Spec.DataSource.Name)
 	}
 
 	klog.V(5).Infof("VolumeSnapshotContent %+v", snapContentObj)
+
+	if snapContentObj.Status == nil || snapContentObj.Status.SnapshotHandle == nil {
+		return nil, fmt.Errorf("snapshot handle %s is not available", options.PVC.Spec.DataSource.Name)
+	}
+
 	snapshotSource := csi.VolumeContentSource_Snapshot{
 		Snapshot: &csi.VolumeContentSource_SnapshotSource{
-			SnapshotId: snapContentObj.Spec.VolumeSnapshotSource.CSI.SnapshotHandle,
+			SnapshotId: *snapContentObj.Status.SnapshotHandle,
 		},
 	}
 	klog.V(5).Infof("VolumeContentSource_Snapshot %+v", snapshotSource)
diff --git a/pkg/controller/topology.go b/pkg/controller/topology.go
index de0880a7b..2ba6d6eec 100644
--- a/pkg/controller/topology.go
+++ b/pkg/controller/topology.go
@@ -34,7 +34,6 @@ import (
 	"k8s.io/apimachinery/pkg/util/version"
 	utilfeature "k8s.io/apiserver/pkg/util/feature"
 	"k8s.io/client-go/kubernetes"
-	corelisters "k8s.io/client-go/listers/core/v1"
 	storagelisters "k8s.io/client-go/listers/storage/v1beta1"
 	"k8s.io/klog"
 )
@@ -153,8 +152,7 @@ func GenerateAccessibilityRequirements(
 	allowedTopologies []v1.TopologySelectorTerm,
 	selectedNode *v1.Node,
 	strictTopology bool,
-	csiNodeLister storagelisters.CSINodeLister,
-	nodeLister corelisters.NodeLister) (*csi.TopologyRequirement, error) {
+	csiNodeLister storagelisters.CSINodeLister) (*csi.TopologyRequirement, error) {
 	requirement := &csi.TopologyRequirement{}
 
 	var (
@@ -221,7 +219,7 @@ func GenerateAccessibilityRequirements(
 			requisiteTerms = flatten(allowedTopologies)
 		} else {
 			// Aggregate existing topologies in nodes across the entire cluster.
-			requisiteTerms, err = aggregateTopologies(kubeClient, driverName, selectedCSINode, csiNodeLister, nodeLister)
+			requisiteTerms, err = aggregateTopologies(kubeClient, driverName, selectedCSINode, csiNodeLister)
 			if err != nil {
 				return nil, err
 			}
@@ -311,8 +309,7 @@ func aggregateTopologies(
 	kubeClient kubernetes.Interface,
 	driverName string,
 	selectedCSINode *storage.CSINode,
-	csiNodeLister storagelisters.CSINodeLister,
-	nodeLister corelisters.NodeLister) ([]topologyTerm, error) {
+	csiNodeLister storagelisters.CSINodeLister) ([]topologyTerm, error) {
 
 	// 1. Determine topologyKeys to use for aggregation
 	var topologyKeys []string
@@ -374,14 +371,15 @@ func aggregateTopologies(
 	if err != nil {
 		return nil, err
 	}
-	nodes, err := nodeLister.List(selector)
+	// TODO (#144): use informers
+	nodes, err := kubeClient.CoreV1().Nodes().List(metav1.ListOptions{LabelSelector: selector})
 	if err != nil {
 		return nil, fmt.Errorf("error listing nodes: %v", err)
 	}
 
 	var terms []topologyTerm
-	for _, node := range nodes {
-		term, _ := getTopologyFromNode(node, topologyKeys)
+	for _, node := range nodes.Items {
+		term, _ := getTopologyFromNode(&node, topologyKeys)
 		terms = append(terms, term)
 	}
 	if len(terms) == 0 {
@@ -510,7 +508,7 @@ func getTopologyFromNode(node *v1.Node, topologyKeys []string) (term topologyTer
 	return term, false
 }
 
-func buildTopologyKeySelector(topologyKeys []string) (labels.Selector, error) {
+func buildTopologyKeySelector(topologyKeys []string) (string, error) {
 	var expr []metav1.LabelSelectorRequirement
 	for _, key := range topologyKeys {
 		expr = append(expr, metav1.LabelSelectorRequirement{
@@ -525,10 +523,10 @@ func buildTopologyKeySelector(topologyKeys []string) (labels.Selector, error) {
 
 	selector, err := metav1.LabelSelectorAsSelector(&labelSelector)
 	if err != nil {
-		return nil, fmt.Errorf("error parsing topology keys selector: %v", err)
+		return "", fmt.Errorf("error parsing topology keys selector: %v", err)
 	}
 
-	return selector, nil
+	return selector.String(), nil
 }
 
 func (t topologyTerm) clone() topologyTerm {
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/types.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/types.go
deleted file mode 100644
index 65c1aafaa..000000000
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/types.go
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
-Copyright 2018 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package v1alpha1
-
-import (
-	core_v1 "k8s.io/api/core/v1"
-	storage "k8s.io/api/storage/v1beta1"
-	"k8s.io/apimachinery/pkg/api/resource"
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-)
-
-const (
-	// VolumeSnapshotContentResourcePlural is "volumesnapshotcontents"
-	VolumeSnapshotContentResourcePlural = "volumesnapshotcontents"
-	// VolumeSnapshotResourcePlural is "volumesnapshots"
-	VolumeSnapshotResourcePlural = "volumesnapshots"
-	// VolumeSnapshotClassResourcePlural is "volumesnapshotclasses"
-	VolumeSnapshotClassResourcePlural = "volumesnapshotclasses"
-)
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshot is a user's request for taking a snapshot. Upon successful creation of the actual
-// snapshot by the volume provider it is bound to the corresponding VolumeSnapshotContent.
-// Only the VolumeSnapshot object is accessible to the user in the namespace.
-type VolumeSnapshot struct {
-	metav1.TypeMeta `json:",inline"`
-	// Standard object's metadata.
-	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-	// +optional
-	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Spec defines the desired characteristics of a snapshot requested by a user.
-	Spec VolumeSnapshotSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
-
-	// Status represents the latest observed state of the snapshot
-	// +optional
-	Status VolumeSnapshotStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshotList is a list of VolumeSnapshot objects
-type VolumeSnapshotList struct {
-	metav1.TypeMeta `json:",inline"`
-	// +optional
-	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Items is the list of VolumeSnapshots
-	Items []VolumeSnapshot `json:"items" protobuf:"bytes,2,rep,name=items"`
-}
-
-// VolumeSnapshotSpec describes the common attributes of a volume snapshot
-type VolumeSnapshotSpec struct {
-	// Source has the information about where the snapshot is created from.
-	// In Alpha version, only PersistentVolumeClaim is supported as the source.
-	// If not specified, user can create VolumeSnapshotContent and bind it with VolumeSnapshot manually.
-	// +optional
-	Source *core_v1.TypedLocalObjectReference `json:"source" protobuf:"bytes,1,opt,name=source"`
-
-	// SnapshotContentName binds the VolumeSnapshot object with the VolumeSnapshotContent
-	// +optional
-	SnapshotContentName string `json:"snapshotContentName" protobuf:"bytes,2,opt,name=snapshotContentName"`
-
-	// Name of the VolumeSnapshotClass used by the VolumeSnapshot. If not specified, a default snapshot class will
-	// be used if it is available.
-	// +optional
-	VolumeSnapshotClassName *string `json:"snapshotClassName" protobuf:"bytes,3,opt,name=snapshotClassName"`
-}
-
-// VolumeSnapshotStatus is the status of the VolumeSnapshot
-type VolumeSnapshotStatus struct {
-	// CreationTime is the time the snapshot was successfully created. If it is set,
-	// it means the snapshot was created; Otherwise the snapshot was not created.
-	// +optional
-	CreationTime *metav1.Time `json:"creationTime" protobuf:"bytes,1,opt,name=creationTime"`
-
-	// When restoring volume from the snapshot, the volume size should be equal to or
-	// larger than the RestoreSize if it is specified. If RestoreSize is set to nil, it means
-	// that the storage plugin does not have this information available.
-	// +optional
-	RestoreSize *resource.Quantity `json:"restoreSize" protobuf:"bytes,2,opt,name=restoreSize"`
-
-	// ReadyToUse is set to true only if the snapshot is ready to use (e.g., finish uploading if
-	// there is an uploading phase) and also VolumeSnapshot and its VolumeSnapshotContent
-	// bind correctly with each other. If any of the above condition is not true, ReadyToUse is
-	// set to false
-	// +optional
-	ReadyToUse bool `json:"readyToUse" protobuf:"varint,3,opt,name=readyToUse"`
-
-	// The last error encountered during create snapshot operation, if any.
-	// This field must only be set by the entity completing the create snapshot
-	// operation, i.e. the external-snapshotter.
-	// +optional
-	Error *storage.VolumeError `json:"error,omitempty" protobuf:"bytes,4,opt,name=error,casttype=VolumeError"`
-}
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshotClass describes the parameters used by storage system when
-// provisioning VolumeSnapshots from PVCs.
-// The name of a VolumeSnapshotClass object is significant, and is how users can request a particular class.
-type VolumeSnapshotClass struct {
-	metav1.TypeMeta `json:",inline"`
-	// Standard object's metadata.
-	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-	// +optional
-	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Snapshotter is the driver expected to handle this VolumeSnapshotClass.
-	Snapshotter string `json:"snapshotter" protobuf:"bytes,2,opt,name=snapshotter"`
-
-	// Parameters holds parameters for the snapshotter.
-	// These values are opaque to the system and are passed directly
-	// to the snapshotter.
-	// +optional
-	Parameters map[string]string `json:"parameters,omitempty" protobuf:"bytes,3,rep,name=parameters"`
-
-	// Optional: what happens to a snapshot content when released from its snapshot.
-	// The default policy is Delete if not specified.
-	// +optional
-	DeletionPolicy *DeletionPolicy `json:"deletionPolicy,omitempty" protobuf:"bytes,4,opt,name=deletionPolicy"`
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshotClassList is a collection of snapshot classes.
-type VolumeSnapshotClassList struct {
-	metav1.TypeMeta `json:",inline"`
-	// Standard list metadata
-	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-	// +optional
-	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Items is the list of VolumeSnapshotClasses
-	Items []VolumeSnapshotClass `json:"items" protobuf:"bytes,2,rep,name=items"`
-}
-
-// +genclient
-// +genclient:nonNamespaced
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshotContent represents the actual "on-disk" snapshot object
-type VolumeSnapshotContent struct {
-	metav1.TypeMeta `json:",inline"`
-	// Standard object's metadata.
-	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-	// +optional
-	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Spec represents the desired state of the snapshot content
-	Spec VolumeSnapshotContentSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// VolumeSnapshotContentList is a list of VolumeSnapshotContent objects
-type VolumeSnapshotContentList struct {
-	metav1.TypeMeta `json:",inline"`
-	// +optional
-	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
-
-	// Items is the list of VolumeSnapshotContents
-	Items []VolumeSnapshotContent `json:"items" protobuf:"bytes,2,rep,name=items"`
-}
-
-// VolumeSnapshotContentSpec is the spec of the volume snapshot content
-type VolumeSnapshotContentSpec struct {
-	// Source represents the location and type of the volume snapshot
-	VolumeSnapshotSource `json:",inline" protobuf:"bytes,1,opt,name=volumeSnapshotSource"`
-
-	// VolumeSnapshotRef is part of bi-directional binding between VolumeSnapshot
-	// and VolumeSnapshotContent. It becomes non-nil when bound.
-	// +optional
-	VolumeSnapshotRef *core_v1.ObjectReference `json:"volumeSnapshotRef" protobuf:"bytes,2,opt,name=volumeSnapshotRef"`
-
-	// PersistentVolumeRef represents the PersistentVolume that the snapshot has been
-	// taken from. It becomes non-nil when VolumeSnapshot and VolumeSnapshotContent are bound.
-	// +optional
-	PersistentVolumeRef *core_v1.ObjectReference `json:"persistentVolumeRef" protobuf:"bytes,3,opt,name=persistentVolumeRef"`
-
-	// Name of the VolumeSnapshotClass used by the VolumeSnapshot. If not specified, a default snapshot class will
-	// be used if it is available.
-	// +optional
-	VolumeSnapshotClassName *string `json:"snapshotClassName" protobuf:"bytes,4,opt,name=snapshotClassName"`
-
-	// Optional: what happens to a snapshot content when released from its snapshot. It will be set to Delete by default
-	// if not specified
-	// +optional
-	DeletionPolicy *DeletionPolicy `json:"deletionPolicy" protobuf:"bytes,5,opt,name=deletionPolicy"`
-}
-
-// VolumeSnapshotSource represents the actual location and type of the snapshot. Only one of its members may be specified.
-type VolumeSnapshotSource struct {
-	// CSI (Container Storage Interface) represents storage that handled by an external CSI Volume Driver (Alpha feature).
-	// +optional
-	CSI *CSIVolumeSnapshotSource `json:"csiVolumeSnapshotSource,omitempty"`
-}
-
-// CSIVolumeSnapshotSource represents the source from CSI volume snapshot
-type CSIVolumeSnapshotSource struct {
-	// Driver is the name of the driver to use for this snapshot.
-	// This MUST be the same name returned by the CSI GetPluginName() call for
-	// that driver.
-	// Required.
-	Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"`
-
-	// SnapshotHandle is the unique snapshot id returned by the CSI volume
-	// plugin’s CreateSnapshot to refer to the snapshot on all subsequent calls.
-	// Required.
-	SnapshotHandle string `json:"snapshotHandle" protobuf:"bytes,2,opt,name=snapshotHandle"`
-
-	// Timestamp when the point-in-time snapshot is taken on the storage
-	// system. This timestamp will be generated by the CSI volume driver after
-	// the snapshot is cut. The format of this field should be a Unix nanoseconds
-	// time encoded as an int64. On Unix, the command `date +%s%N` returns
-	// the  current time in nanoseconds since 1970-01-01 00:00:00 UTC.
-	// This field is required in the CSI spec but optional here to support static binding.
-	// +optional
-	CreationTime *int64 `json:"creationTime,omitempty" protobuf:"varint,3,opt,name=creationTime"`
-
-	// When restoring volume from the snapshot, the volume size should be equal to or
-	// larger than the RestoreSize if it is specified. If RestoreSize is set to nil, it means
-	// that the storage plugin does not have this information available.
-	// +optional
-	RestoreSize *int64 `json:"restoreSize,omitempty" protobuf:"bytes,4,opt,name=restoreSize"`
-}
-
-// DeletionPolicy describes a policy for end-of-life maintenance of volume snapshot contents
-type DeletionPolicy string
-
-const (
-	// VolumeSnapshotContentDelete means the snapshot content will be deleted from Kubernetes on release from its volume snapshot.
-	VolumeSnapshotContentDelete DeletionPolicy = "Delete"
-
-	// VolumeSnapshotContentRetain means the snapshot will be left in its current state on release from its volume snapshot.
-	// The default policy is Retain if not specified.
-	VolumeSnapshotContentRetain DeletionPolicy = "Retain"
-)
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/doc.go
similarity index 91%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/doc.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/doc.go
index fd1b5f86c..d8a1f5dad 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/doc.go
@@ -15,5 +15,6 @@ limitations under the License.
 */
 
 // +k8s:deepcopy-gen=package
+// +groupName=snapshot.storage.k8s.io
 
-package v1alpha1
+package v1beta1
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/register.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/register.go
similarity index 98%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/register.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/register.go
index e7c38b6ba..91f451424 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/register.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/register.go
@@ -11,7 +11,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-package v1alpha1
+package v1beta1
 
 import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -28,7 +28,7 @@ var (
 	// AddToScheme adds to scheme
 	AddToScheme = SchemeBuilder.AddToScheme
 	// SchemeGroupVersion is the group version used to register these objects.
-	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
+	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"}
 )
 
 // Resource takes an unqualified resource and returns a Group-qualified GroupResource.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/types.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/types.go
new file mode 100644
index 000000000..3c1dc1e27
--- /dev/null
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/types.go
@@ -0,0 +1,377 @@
+/*
+Copyright 2019 The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// +kubebuilder:object:generate=true
+package v1beta1
+
+import (
+	core_v1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/api/resource"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// +genclient
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// VolumeSnapshot is a user's request for either creating a point-in-time
+// snapshot of a persistent volume, or binding to a pre-existing snapshot.
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:scope=Namespaced
+// +kubebuilder:subresource:status
+type VolumeSnapshot struct {
+	metav1.TypeMeta `json:",inline"`
+	// Standard object's metadata.
+	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
+	// +optional
+	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// spec defines the desired characteristics of a snapshot requested by a user.
+	// More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
+	// Required.
+	Spec VolumeSnapshotSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
+
+	// status represents the current information of a snapshot.
+	// NOTE: status can be modified by sources other than system controllers,
+	// and must not be depended upon for accuracy.
+	// Controllers should only use information from the VolumeSnapshotContent object
+	// after verifying that the binding is accurate and complete.
+	// +optional
+	Status *VolumeSnapshotStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// VolumeSnapshotList is a list of VolumeSnapshot objects
+type VolumeSnapshotList struct {
+	metav1.TypeMeta `json:",inline"`
+	// +optional
+	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// List of VolumeSnapshots
+	Items []VolumeSnapshot `json:"items" protobuf:"bytes,2,rep,name=items"`
+}
+
+// VolumeSnapshotSpec describes the common attributes of a volume snapshot.
+type VolumeSnapshotSpec struct {
+	// source specifies where a snapshot will be created from.
+	// This field is immutable after creation.
+	// Required.
+	Source VolumeSnapshotSource `json:"source" protobuf:"bytes,1,opt,name=source"`
+
+	// volumeSnapshotClassName is the name of the VolumeSnapshotClass requested by the VolumeSnapshot.
+	// If not specified, the default snapshot class will be used if one exists.
+	// If not specified, and there is no default snapshot class, dynamic snapshot creation will fail.
+	// Empty string is not allowed for this field.
+	// TODO(xiangqian): a webhook validation on empty string.
+	// More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes
+	// +optional
+	VolumeSnapshotClassName *string `json:"volumeSnapshotClassName,omitempty" protobuf:"bytes,2,opt,name=volumeSnapshotClassName"`
+}
+
+// VolumeSnapshotSource specifies whether the underlying snapshot should be
+// dynamically taken upon creation or if a pre-existing VolumeSnapshotContent
+// object should be used.
+// Exactly one of its members must be set.
+// Members in VolumeSnapshotSource are immutable.
+// TODO(xiangqian): Add a webhook to ensure that VolumeSnapshotSource members
+// will not be updated once specified.
+type VolumeSnapshotSource struct {
+	// persistentVolumeClaimName specifies the name of the PersistentVolumeClaim
+	// object in the same namespace as the VolumeSnapshot object where the
+	// snapshot should be dynamically taken from.
+	// This field is immutable.
+	// +optional
+	PersistentVolumeClaimName *string `json:"persistentVolumeClaimName,omitempty" protobuf:"bytes,1,opt,name=persistentVolumeClaimName"`
+
+	// volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent
+	// object.
+	// This field is immutable.
+	// +optional
+	VolumeSnapshotContentName *string `json:"volumeSnapshotContentName,omitempty" protobuf:"bytes,2,opt,name=volumeSnapshotContentName"`
+}
+
+// VolumeSnapshotStatus is the status of the VolumeSnapshot
+type VolumeSnapshotStatus struct {
+	// boundVolumeSnapshotContentName represents the name of the VolumeSnapshotContent
+	// object to which the VolumeSnapshot object is bound.
+	// If not specified, it indicates that the VolumeSnapshot object has not been
+	// successfully bound to a VolumeSnapshotContent object yet.
+	// NOTE: Specified boundVolumeSnapshotContentName alone does not mean binding
+	//       is valid. Controllers MUST always verify bidirectional binding between
+	//       VolumeSnapshot and VolumeSnapshotContent to avoid possible security issues.
+	// +optional
+	BoundVolumeSnapshotContentName *string `json:"boundVolumeSnapshotContentName,omitempty" protobuf:"bytes,1,opt,name=boundVolumeSnapshotContentName"`
+
+	// creationTime is the timestamp when the point-in-time snapshot is taken
+	// by the underlying storage system.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "creation_time" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "creation_time"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
+	// If not specified, it indicates that the creation time of the snapshot is unknown.
+	// +optional
+	CreationTime *metav1.Time `json:"creationTime,omitempty" protobuf:"bytes,2,opt,name=creationTime"`
+
+	// readyToUse indicates if a snapshot is ready to be used to restore a volume.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "ready_to_use" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "ready_to_use"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it,
+	// otherwise, this field will be set to "True".
+	// If not specified, it means the readiness of a snapshot is unknown.
+	// +optional
+	ReadyToUse *bool `json:"readyToUse,omitempty" protobuf:"varint,3,opt,name=readyToUse"`
+
+	// restoreSize represents the complete size of the snapshot in bytes.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "size_bytes" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "size_bytes"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
+	// When restoring a volume from this snapshot, the size of the volume MUST NOT
+	// be smaller than the restoreSize if it is specified, otherwise the restoration will fail.
+	// If not specified, it indicates that the size is unknown.
+	// +optional
+	RestoreSize *resource.Quantity `json:"restoreSize,omitempty" protobuf:"bytes,4,opt,name=restoreSize"`
+
+	// error is the last observed error during snapshot creation, if any.
+	// This field could be helpful to upper level controllers(i.e., application controller)
+	// to decide whether they should continue on waiting for the snapshot to be created
+	// based on the type of error reported.
+	// +optional
+	Error *VolumeSnapshotError `json:"error,omitempty" protobuf:"bytes,5,opt,name=error,casttype=VolumeSnapshotError"`
+}
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// VolumeSnapshotClass specifies parameters that a underlying storage system uses when
+// creating a volume snapshot. A specific VolumeSnapshotClass is used by specifying its
+// name in a VolumeSnapshot object.
+// VolumeSnapshotClasses are non-namespaced
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:scope=Cluster
+type VolumeSnapshotClass struct {
+	metav1.TypeMeta `json:",inline"`
+	// Standard object's metadata.
+	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
+	// +optional
+	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// driver is the name of the storage driver that handles this VolumeSnapshotClass.
+	// Required.
+	Driver string `json:"driver" protobuf:"bytes,2,opt,name=driver"`
+
+	// parameters is a key-value map with storage driver specific parameters for creating snapshots.
+	// These values are opaque to Kubernetes.
+	// +optional
+	Parameters map[string]string `json:"parameters,omitempty" protobuf:"bytes,3,rep,name=parameters"`
+
+	// deletionPolicy determines whether a VolumeSnapshotContent created through
+	// the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted.
+	// Supported values are "Retain" and "Delete".
+	// "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept.
+	// "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted.
+	// Required.
+	DeletionPolicy DeletionPolicy `json:"deletionPolicy" protobuf:"bytes,4,opt,name=deletionPolicy"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// VolumeSnapshotClassList is a collection of VolumeSnapshotClasses.
+// +kubebuilder:object:root=true
+type VolumeSnapshotClassList struct {
+	metav1.TypeMeta `json:",inline"`
+	// Standard list metadata
+	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
+	// +optional
+	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// items is the list of VolumeSnapshotClasses
+	Items []VolumeSnapshotClass `json:"items" protobuf:"bytes,2,rep,name=items"`
+}
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// VolumeSnapshotContent represents the actual "on-disk" snapshot object in the
+// underlying storage system
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:scope=Cluster
+// +kubebuilder:subresource:status
+type VolumeSnapshotContent struct {
+	metav1.TypeMeta `json:",inline"`
+	// Standard object's metadata.
+	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
+	// +optional
+	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// spec defines properties of a VolumeSnapshotContent created by the underlying storage system.
+	// Required.
+	Spec VolumeSnapshotContentSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
+
+	// status represents the current information of a snapshot.
+	// +optional
+	Status *VolumeSnapshotContentStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// VolumeSnapshotContentList is a list of VolumeSnapshotContent objects
+// +kubebuilder:object:root=true
+type VolumeSnapshotContentList struct {
+	metav1.TypeMeta `json:",inline"`
+	// +optional
+	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
+
+	// items is the list of VolumeSnapshotContents
+	Items []VolumeSnapshotContent `json:"items" protobuf:"bytes,2,rep,name=items"`
+}
+
+// VolumeSnapshotContentSpec is the specification of a VolumeSnapshotContent
+type VolumeSnapshotContentSpec struct {
+	// volumeSnapshotRef specifies the VolumeSnapshot object to which this
+	// VolumeSnapshotContent object is bound.
+	// VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to
+	// this VolumeSnapshotContent's name for the bidirectional binding to be valid.
+	// For a pre-existing VolumeSnapshotContent object, name and namespace of the
+	// VolumeSnapshot object MUST be provided for binding to happen.
+	// This field is immutable after creation.
+	// Required.
+	VolumeSnapshotRef core_v1.ObjectReference `json:"volumeSnapshotRef" protobuf:"bytes,1,opt,name=volumeSnapshotRef"`
+
+	// deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on
+	// the underlying storage system should be deleted when its bound VolumeSnapshot is deleted.
+	// Supported values are "Retain" and "Delete".
+	// "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept.
+	// "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted.
+	// In dynamic snapshot creation case, this field will be filled in with the "DeletionPolicy" field defined in the
+	// VolumeSnapshotClass the VolumeSnapshot refers to.
+	// For pre-existing snapshots, users MUST specify this field when creating the VolumeSnapshotContent object.
+	// Required.
+	DeletionPolicy DeletionPolicy `json:"deletionPolicy" protobuf:"bytes,2,opt,name=deletionPolicy"`
+
+	// driver is the name of the CSI driver used to create the physical snapshot on
+	// the underlying storage system.
+	// This MUST be the same as the name returned by the CSI GetPluginName() call for
+	// that driver.
+	// Required.
+	Driver string `json:"driver" protobuf:"bytes,3,opt,name=driver"`
+
+	// name of the VolumeSnapshotClass to which this snapshot belongs.
+	// +optional
+	VolumeSnapshotClassName *string `json:"volumeSnapshotClassName,omitempty" protobuf:"bytes,4,opt,name=volumeSnapshotClassName"`
+
+	// source specifies from where a snapshot will be created.
+	// This field is immutable after creation.
+	// Required.
+	Source VolumeSnapshotContentSource `json:"source" protobuf:"bytes,5,opt,name=source"`
+}
+
+// VolumeSnapshotContentSource represents the CSI source of a snapshot.
+// Exactly one of its members must be set.
+// Members in VolumeSnapshotContentSource are immutable.
+// TODO(xiangqian): Add a webhook to ensure that VolumeSnapshotContentSource members
+// will be immutable once specified.
+type VolumeSnapshotContentSource struct {
+	// volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot
+	// should be dynamically taken from.
+	// This field is immutable.
+	// +optional
+	VolumeHandle *string `json:"volumeHandle,omitempty" protobuf:"bytes,1,opt,name=volumeHandle"`
+
+	// snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on
+	// the underlying storage system.
+	// This field is immutable.
+	// +optional
+	SnapshotHandle *string `json:"snapshotHandle,omitempty" protobuf:"bytes,2,opt,name=snapshotHandle"`
+}
+
+// VolumeSnapshotContentStatus is the status of a VolumeSnapshotContent object
+type VolumeSnapshotContentStatus struct {
+	// snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system.
+	// If not specified, it indicates that dynamic snapshot creation has either failed
+	// or it is still in progress.
+	// +optional
+	SnapshotHandle *string `json:"snapshotHandle,omitempty" protobuf:"bytes,1,opt,name=snapshotHandle"`
+
+	// creationTime is the timestamp when the point-in-time snapshot is taken
+	// by the underlying storage system.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "creation_time" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "creation_time"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
+	// If not specified, it indicates the creation time is unknown.
+	// The format of this field is a Unix nanoseconds time encoded as an int64.
+	// On Unix, the command `date +%s%N` returns the current time in nanoseconds
+	// since 1970-01-01 00:00:00 UTC.
+	// +optional
+	CreationTime *int64 `json:"creationTime,omitempty" protobuf:"varint,2,opt,name=creationTime"`
+
+	// restoreSize represents the complete size of the snapshot in bytes.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "size_bytes" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "size_bytes"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
+	// When restoring a volume from this snapshot, the size of the volume MUST NOT
+	// be smaller than the restoreSize if it is specified, otherwise the restoration will fail.
+	// If not specified, it indicates that the size is unknown.
+	// +kubebuilder:validation:Minimum=0
+	// +optional
+	RestoreSize *int64 `json:"restoreSize,omitempty" protobuf:"bytes,3,opt,name=restoreSize"`
+
+	// readyToUse indicates if a snapshot is ready to be used to restore a volume.
+	// In dynamic snapshot creation case, this field will be filled in with the
+	// "ready_to_use" value returned from CSI "CreateSnapshotRequest" gRPC call.
+	// For a pre-existing snapshot, this field will be filled with the "ready_to_use"
+	// value returned from the CSI "ListSnapshots" gRPC call if the driver supports it,
+	// otherwise, this field will be set to "True".
+	// If not specified, it means the readiness of a snapshot is unknown.
+	// +optional.
+	ReadyToUse *bool `json:"readyToUse,omitempty" protobuf:"varint,4,opt,name=readyToUse"`
+
+	// error is the latest observed error during snapshot creation, if any.
+	// +optional
+	Error *VolumeSnapshotError `json:"error,omitempty" protobuf:"bytes,5,opt,name=error,casttype=VolumeSnapshotError"`
+}
+
+// DeletionPolicy describes a policy for end-of-life maintenance of volume snapshot contents
+// +kubebuilder:validation:Enum=Delete;Retain
+type DeletionPolicy string
+
+const (
+	// volumeSnapshotContentDelete means the snapshot will be deleted from the
+	// underlying storage system on release from its volume snapshot.
+	VolumeSnapshotContentDelete DeletionPolicy = "Delete"
+
+	// volumeSnapshotContentRetain means the snapshot will be left in its current
+	// state on release from its volume snapshot.
+	VolumeSnapshotContentRetain DeletionPolicy = "Retain"
+)
+
+// VolumeSnapshotError describes an error encountered during snapshot creation.
+type VolumeSnapshotError struct {
+	// time is the timestamp when the error was encountered.
+	// +optional
+	Time *metav1.Time `json:"time,omitempty" protobuf:"bytes,1,opt,name=time"`
+
+	// message is a string detailing the encountered error during snapshot
+	// creation if specified.
+	// NOTE: message may be logged, and it should not contain sensitive
+	// information.
+	// +optional
+	Message *string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"`
+}
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/zz_generated.deepcopy.go
similarity index 74%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/zz_generated.deepcopy.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/zz_generated.deepcopy.go
index baed77c6f..929ed1b35 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1/zz_generated.deepcopy.go
@@ -1,14 +1,11 @@
 // +build !ignore_autogenerated
 
 /*
-Copyright 2018 The Kubernetes Authors.
-
+Copyright 2019 The Kubernetes Authors.
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
-
     http://www.apache.org/licenses/LICENSE-2.0
-
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,50 +13,25 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-// Code generated by deepcopy-gen. DO NOT EDIT.
+// Code generated by controller-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 import (
-	v1 "k8s.io/api/core/v1"
-	v1beta1 "k8s.io/api/storage/v1beta1"
-	runtime "k8s.io/apimachinery/pkg/runtime"
+	"k8s.io/apimachinery/pkg/runtime"
 )
 
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *CSIVolumeSnapshotSource) DeepCopyInto(out *CSIVolumeSnapshotSource) {
-	*out = *in
-	if in.CreationTime != nil {
-		in, out := &in.CreationTime, &out.CreationTime
-		*out = new(int64)
-		**out = **in
-	}
-	if in.RestoreSize != nil {
-		in, out := &in.RestoreSize, &out.RestoreSize
-		*out = new(int64)
-		**out = **in
-	}
-	return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIVolumeSnapshotSource.
-func (in *CSIVolumeSnapshotSource) DeepCopy() *CSIVolumeSnapshotSource {
-	if in == nil {
-		return nil
-	}
-	out := new(CSIVolumeSnapshotSource)
-	in.DeepCopyInto(out)
-	return out
-}
-
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *VolumeSnapshot) DeepCopyInto(out *VolumeSnapshot) {
 	*out = *in
 	out.TypeMeta = in.TypeMeta
 	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
 	in.Spec.DeepCopyInto(&out.Spec)
-	in.Status.DeepCopyInto(&out.Status)
-	return
+	if in.Status != nil {
+		in, out := &in.Status, &out.Status
+		*out = new(VolumeSnapshotStatus)
+		(*in).DeepCopyInto(*out)
+	}
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshot.
@@ -92,12 +64,6 @@ func (in *VolumeSnapshotClass) DeepCopyInto(out *VolumeSnapshotClass) {
 			(*out)[key] = val
 		}
 	}
-	if in.DeletionPolicy != nil {
-		in, out := &in.DeletionPolicy, &out.DeletionPolicy
-		*out = new(DeletionPolicy)
-		**out = **in
-	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotClass.
@@ -122,7 +88,7 @@ func (in *VolumeSnapshotClass) DeepCopyObject() runtime.Object {
 func (in *VolumeSnapshotClassList) DeepCopyInto(out *VolumeSnapshotClassList) {
 	*out = *in
 	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
+	in.ListMeta.DeepCopyInto(&out.ListMeta)
 	if in.Items != nil {
 		in, out := &in.Items, &out.Items
 		*out = make([]VolumeSnapshotClass, len(*in))
@@ -130,7 +96,6 @@ func (in *VolumeSnapshotClassList) DeepCopyInto(out *VolumeSnapshotClassList) {
 			(*in)[i].DeepCopyInto(&(*out)[i])
 		}
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotClassList.
@@ -157,7 +122,11 @@ func (in *VolumeSnapshotContent) DeepCopyInto(out *VolumeSnapshotContent) {
 	out.TypeMeta = in.TypeMeta
 	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
 	in.Spec.DeepCopyInto(&out.Spec)
-	return
+	if in.Status != nil {
+		in, out := &in.Status, &out.Status
+		*out = new(VolumeSnapshotContentStatus)
+		(*in).DeepCopyInto(*out)
+	}
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotContent.
@@ -182,7 +151,7 @@ func (in *VolumeSnapshotContent) DeepCopyObject() runtime.Object {
 func (in *VolumeSnapshotContentList) DeepCopyInto(out *VolumeSnapshotContentList) {
 	*out = *in
 	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
+	in.ListMeta.DeepCopyInto(&out.ListMeta)
 	if in.Items != nil {
 		in, out := &in.Items, &out.Items
 		*out = make([]VolumeSnapshotContent, len(*in))
@@ -190,7 +159,6 @@ func (in *VolumeSnapshotContentList) DeepCopyInto(out *VolumeSnapshotContentList
 			(*in)[i].DeepCopyInto(&(*out)[i])
 		}
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotContentList.
@@ -212,30 +180,40 @@ func (in *VolumeSnapshotContentList) DeepCopyObject() runtime.Object {
 }
 
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *VolumeSnapshotContentSpec) DeepCopyInto(out *VolumeSnapshotContentSpec) {
+func (in *VolumeSnapshotContentSource) DeepCopyInto(out *VolumeSnapshotContentSource) {
 	*out = *in
-	in.VolumeSnapshotSource.DeepCopyInto(&out.VolumeSnapshotSource)
-	if in.VolumeSnapshotRef != nil {
-		in, out := &in.VolumeSnapshotRef, &out.VolumeSnapshotRef
-		*out = new(v1.ObjectReference)
+	if in.VolumeHandle != nil {
+		in, out := &in.VolumeHandle, &out.VolumeHandle
+		*out = new(string)
 		**out = **in
 	}
-	if in.PersistentVolumeRef != nil {
-		in, out := &in.PersistentVolumeRef, &out.PersistentVolumeRef
-		*out = new(v1.ObjectReference)
+	if in.SnapshotHandle != nil {
+		in, out := &in.SnapshotHandle, &out.SnapshotHandle
+		*out = new(string)
 		**out = **in
 	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotContentSource.
+func (in *VolumeSnapshotContentSource) DeepCopy() *VolumeSnapshotContentSource {
+	if in == nil {
+		return nil
+	}
+	out := new(VolumeSnapshotContentSource)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *VolumeSnapshotContentSpec) DeepCopyInto(out *VolumeSnapshotContentSpec) {
+	*out = *in
+	out.VolumeSnapshotRef = in.VolumeSnapshotRef
 	if in.VolumeSnapshotClassName != nil {
 		in, out := &in.VolumeSnapshotClassName, &out.VolumeSnapshotClassName
 		*out = new(string)
 		**out = **in
 	}
-	if in.DeletionPolicy != nil {
-		in, out := &in.DeletionPolicy, &out.DeletionPolicy
-		*out = new(DeletionPolicy)
-		**out = **in
-	}
-	return
+	in.Source.DeepCopyInto(&out.Source)
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotContentSpec.
@@ -248,11 +226,75 @@ func (in *VolumeSnapshotContentSpec) DeepCopy() *VolumeSnapshotContentSpec {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *VolumeSnapshotContentStatus) DeepCopyInto(out *VolumeSnapshotContentStatus) {
+	*out = *in
+	if in.SnapshotHandle != nil {
+		in, out := &in.SnapshotHandle, &out.SnapshotHandle
+		*out = new(string)
+		**out = **in
+	}
+	if in.CreationTime != nil {
+		in, out := &in.CreationTime, &out.CreationTime
+		*out = new(int64)
+		**out = **in
+	}
+	if in.RestoreSize != nil {
+		in, out := &in.RestoreSize, &out.RestoreSize
+		*out = new(int64)
+		**out = **in
+	}
+	if in.ReadyToUse != nil {
+		in, out := &in.ReadyToUse, &out.ReadyToUse
+		*out = new(bool)
+		**out = **in
+	}
+	if in.Error != nil {
+		in, out := &in.Error, &out.Error
+		*out = new(VolumeSnapshotError)
+		(*in).DeepCopyInto(*out)
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotContentStatus.
+func (in *VolumeSnapshotContentStatus) DeepCopy() *VolumeSnapshotContentStatus {
+	if in == nil {
+		return nil
+	}
+	out := new(VolumeSnapshotContentStatus)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *VolumeSnapshotError) DeepCopyInto(out *VolumeSnapshotError) {
+	*out = *in
+	if in.Time != nil {
+		in, out := &in.Time, &out.Time
+		*out = (*in).DeepCopy()
+	}
+	if in.Message != nil {
+		in, out := &in.Message, &out.Message
+		*out = new(string)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotError.
+func (in *VolumeSnapshotError) DeepCopy() *VolumeSnapshotError {
+	if in == nil {
+		return nil
+	}
+	out := new(VolumeSnapshotError)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *VolumeSnapshotList) DeepCopyInto(out *VolumeSnapshotList) {
 	*out = *in
 	out.TypeMeta = in.TypeMeta
-	out.ListMeta = in.ListMeta
+	in.ListMeta.DeepCopyInto(&out.ListMeta)
 	if in.Items != nil {
 		in, out := &in.Items, &out.Items
 		*out = make([]VolumeSnapshot, len(*in))
@@ -260,7 +302,6 @@ func (in *VolumeSnapshotList) DeepCopyInto(out *VolumeSnapshotList) {
 			(*in)[i].DeepCopyInto(&(*out)[i])
 		}
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotList.
@@ -284,12 +325,16 @@ func (in *VolumeSnapshotList) DeepCopyObject() runtime.Object {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *VolumeSnapshotSource) DeepCopyInto(out *VolumeSnapshotSource) {
 	*out = *in
-	if in.CSI != nil {
-		in, out := &in.CSI, &out.CSI
-		*out = new(CSIVolumeSnapshotSource)
-		(*in).DeepCopyInto(*out)
+	if in.PersistentVolumeClaimName != nil {
+		in, out := &in.PersistentVolumeClaimName, &out.PersistentVolumeClaimName
+		*out = new(string)
+		**out = **in
+	}
+	if in.VolumeSnapshotContentName != nil {
+		in, out := &in.VolumeSnapshotContentName, &out.VolumeSnapshotContentName
+		*out = new(string)
+		**out = **in
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotSource.
@@ -305,17 +350,12 @@ func (in *VolumeSnapshotSource) DeepCopy() *VolumeSnapshotSource {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *VolumeSnapshotSpec) DeepCopyInto(out *VolumeSnapshotSpec) {
 	*out = *in
-	if in.Source != nil {
-		in, out := &in.Source, &out.Source
-		*out = new(v1.TypedLocalObjectReference)
-		(*in).DeepCopyInto(*out)
-	}
+	in.Source.DeepCopyInto(&out.Source)
 	if in.VolumeSnapshotClassName != nil {
 		in, out := &in.VolumeSnapshotClassName, &out.VolumeSnapshotClassName
 		*out = new(string)
 		**out = **in
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotSpec.
@@ -331,10 +371,20 @@ func (in *VolumeSnapshotSpec) DeepCopy() *VolumeSnapshotSpec {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *VolumeSnapshotStatus) DeepCopyInto(out *VolumeSnapshotStatus) {
 	*out = *in
+	if in.BoundVolumeSnapshotContentName != nil {
+		in, out := &in.BoundVolumeSnapshotContentName, &out.BoundVolumeSnapshotContentName
+		*out = new(string)
+		**out = **in
+	}
 	if in.CreationTime != nil {
 		in, out := &in.CreationTime, &out.CreationTime
 		*out = (*in).DeepCopy()
 	}
+	if in.ReadyToUse != nil {
+		in, out := &in.ReadyToUse, &out.ReadyToUse
+		*out = new(bool)
+		**out = **in
+	}
 	if in.RestoreSize != nil {
 		in, out := &in.RestoreSize, &out.RestoreSize
 		x := (*in).DeepCopy()
@@ -342,10 +392,9 @@ func (in *VolumeSnapshotStatus) DeepCopyInto(out *VolumeSnapshotStatus) {
 	}
 	if in.Error != nil {
 		in, out := &in.Error, &out.Error
-		*out = new(v1beta1.VolumeError)
+		*out = new(VolumeSnapshotError)
 		(*in).DeepCopyInto(*out)
 	}
-	return
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotStatus.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/clientset.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/clientset.go
index 5aefca141..25be21b49 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/clientset.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/clientset.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package versioned
 
 import (
-	volumesnapshotv1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1"
+	snapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1"
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
@@ -27,27 +27,19 @@ import (
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	VolumesnapshotV1alpha1() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface
-	// Deprecated: please explicitly pick a version if possible.
-	Volumesnapshot() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface
+	SnapshotV1beta1() snapshotv1beta1.SnapshotV1beta1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	volumesnapshotV1alpha1 *volumesnapshotv1alpha1.VolumesnapshotV1alpha1Client
+	snapshotV1beta1 *snapshotv1beta1.SnapshotV1beta1Client
 }
 
-// VolumesnapshotV1alpha1 retrieves the VolumesnapshotV1alpha1Client
-func (c *Clientset) VolumesnapshotV1alpha1() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface {
-	return c.volumesnapshotV1alpha1
-}
-
-// Deprecated: Volumesnapshot retrieves the default version of VolumesnapshotClient.
-// Please explicitly pick a version.
-func (c *Clientset) Volumesnapshot() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface {
-	return c.volumesnapshotV1alpha1
+// SnapshotV1beta1 retrieves the SnapshotV1beta1Client
+func (c *Clientset) SnapshotV1beta1() snapshotv1beta1.SnapshotV1beta1Interface {
+	return c.snapshotV1beta1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -66,7 +58,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
 	}
 	var cs Clientset
 	var err error
-	cs.volumesnapshotV1alpha1, err = volumesnapshotv1alpha1.NewForConfig(&configShallowCopy)
+	cs.snapshotV1beta1, err = snapshotv1beta1.NewForConfig(&configShallowCopy)
 	if err != nil {
 		return nil, err
 	}
@@ -82,7 +74,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
 // panics if there is an error in the config.
 func NewForConfigOrDie(c *rest.Config) *Clientset {
 	var cs Clientset
-	cs.volumesnapshotV1alpha1 = volumesnapshotv1alpha1.NewForConfigOrDie(c)
+	cs.snapshotV1beta1 = snapshotv1beta1.NewForConfigOrDie(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
 	return &cs
@@ -91,7 +83,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.volumesnapshotV1alpha1 = volumesnapshotv1alpha1.New(c)
+	cs.snapshotV1beta1 = snapshotv1beta1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/doc.go
index 006b79214..dc992b90b 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/doc.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/clientset_generated.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/clientset_generated.go
index d1c26394c..b05e85ea7 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/clientset_generated.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/clientset_generated.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@ package fake
 
 import (
 	clientset "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned"
-	volumesnapshotv1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1"
-	fakevolumesnapshotv1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake"
+	snapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1"
+	fakesnapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake"
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/watch"
 	"k8s.io/client-go/discovery"
@@ -71,12 +71,7 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface {
 
 var _ clientset.Interface = &Clientset{}
 
-// VolumesnapshotV1alpha1 retrieves the VolumesnapshotV1alpha1Client
-func (c *Clientset) VolumesnapshotV1alpha1() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface {
-	return &fakevolumesnapshotv1alpha1.FakeVolumesnapshotV1alpha1{Fake: &c.Fake}
-}
-
-// Volumesnapshot retrieves the VolumesnapshotV1alpha1Client
-func (c *Clientset) Volumesnapshot() volumesnapshotv1alpha1.VolumesnapshotV1alpha1Interface {
-	return &fakevolumesnapshotv1alpha1.FakeVolumesnapshotV1alpha1{Fake: &c.Fake}
+// SnapshotV1beta1 retrieves the SnapshotV1beta1Client
+func (c *Clientset) SnapshotV1beta1() snapshotv1beta1.SnapshotV1beta1Interface {
+	return &fakesnapshotv1beta1.FakeSnapshotV1beta1{Fake: &c.Fake}
 }
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/doc.go
index 0bc260bca..acfa6173b 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/doc.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/register.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/register.go
index 1f1b72611..4c92bf112 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/register.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake/register.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package fake
 
 import (
-	volumesnapshotv1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	snapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -31,7 +31,7 @@ var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 var parameterCodec = runtime.NewParameterCodec(scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	volumesnapshotv1alpha1.AddToScheme,
+	snapshotv1beta1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/doc.go
index 5c5c8debb..7f61dc1f9 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/doc.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/register.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/register.go
index 6215c628f..296f7fa70 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/register.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme/register.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package scheme
 
 import (
-	volumesnapshotv1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	snapshotv1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -31,7 +31,7 @@ var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	volumesnapshotv1alpha1.AddToScheme,
+	snapshotv1beta1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/doc.go
similarity index 91%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/doc.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/doc.go
index 69ca30111..305440eb2 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/doc.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -17,4 +17,4 @@ limitations under the License.
 // Code generated by client-gen. DO NOT EDIT.
 
 // This package has the automatically generated typed clients.
-package v1alpha1
+package v1beta1
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/doc.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/doc.go
similarity index 94%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/doc.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/doc.go
index 87a1873ed..ab4fd43ad 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/doc.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/doc.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot.go
similarity index 68%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot.go
index 5da6c9314..72faad7d8 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package fake
 
 import (
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -30,29 +30,29 @@ import (
 
 // FakeVolumeSnapshots implements VolumeSnapshotInterface
 type FakeVolumeSnapshots struct {
-	Fake *FakeVolumesnapshotV1alpha1
+	Fake *FakeSnapshotV1beta1
 	ns   string
 }
 
-var volumesnapshotsResource = schema.GroupVersionResource{Group: "volumesnapshot", Version: "v1alpha1", Resource: "volumesnapshots"}
+var volumesnapshotsResource = schema.GroupVersionResource{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Resource: "volumesnapshots"}
 
-var volumesnapshotsKind = schema.GroupVersionKind{Group: "volumesnapshot", Version: "v1alpha1", Kind: "VolumeSnapshot"}
+var volumesnapshotsKind = schema.GroupVersionKind{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Kind: "VolumeSnapshot"}
 
 // Get takes name of the volumeSnapshot, and returns the corresponding volumeSnapshot object, and an error if there is any.
-func (c *FakeVolumeSnapshots) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshot, err error) {
+func (c *FakeVolumeSnapshots) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshot, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewGetAction(volumesnapshotsResource, c.ns, name), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewGetAction(volumesnapshotsResource, c.ns, name), &v1beta1.VolumeSnapshot{})
 
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshot), err
+	return obj.(*v1beta1.VolumeSnapshot), err
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshots that match those selectors.
-func (c *FakeVolumeSnapshots) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotList, err error) {
+func (c *FakeVolumeSnapshots) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotList, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewListAction(volumesnapshotsResource, volumesnapshotsKind, c.ns, opts), &v1alpha1.VolumeSnapshotList{})
+		Invokes(testing.NewListAction(volumesnapshotsResource, volumesnapshotsKind, c.ns, opts), &v1beta1.VolumeSnapshotList{})
 
 	if obj == nil {
 		return nil, err
@@ -62,8 +62,8 @@ func (c *FakeVolumeSnapshots) List(opts v1.ListOptions) (result *v1alpha1.Volume
 	if label == nil {
 		label = labels.Everything()
 	}
-	list := &v1alpha1.VolumeSnapshotList{ListMeta: obj.(*v1alpha1.VolumeSnapshotList).ListMeta}
-	for _, item := range obj.(*v1alpha1.VolumeSnapshotList).Items {
+	list := &v1beta1.VolumeSnapshotList{ListMeta: obj.(*v1beta1.VolumeSnapshotList).ListMeta}
+	for _, item := range obj.(*v1beta1.VolumeSnapshotList).Items {
 		if label.Matches(labels.Set(item.Labels)) {
 			list.Items = append(list.Items, item)
 		}
@@ -79,43 +79,43 @@ func (c *FakeVolumeSnapshots) Watch(opts v1.ListOptions) (watch.Interface, error
 }
 
 // Create takes the representation of a volumeSnapshot and creates it.  Returns the server's representation of the volumeSnapshot, and an error, if there is any.
-func (c *FakeVolumeSnapshots) Create(volumeSnapshot *v1alpha1.VolumeSnapshot) (result *v1alpha1.VolumeSnapshot, err error) {
+func (c *FakeVolumeSnapshots) Create(volumeSnapshot *v1beta1.VolumeSnapshot) (result *v1beta1.VolumeSnapshot, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewCreateAction(volumesnapshotsResource, c.ns, volumeSnapshot), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewCreateAction(volumesnapshotsResource, c.ns, volumeSnapshot), &v1beta1.VolumeSnapshot{})
 
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshot), err
+	return obj.(*v1beta1.VolumeSnapshot), err
 }
 
 // Update takes the representation of a volumeSnapshot and updates it. Returns the server's representation of the volumeSnapshot, and an error, if there is any.
-func (c *FakeVolumeSnapshots) Update(volumeSnapshot *v1alpha1.VolumeSnapshot) (result *v1alpha1.VolumeSnapshot, err error) {
+func (c *FakeVolumeSnapshots) Update(volumeSnapshot *v1beta1.VolumeSnapshot) (result *v1beta1.VolumeSnapshot, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewUpdateAction(volumesnapshotsResource, c.ns, volumeSnapshot), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewUpdateAction(volumesnapshotsResource, c.ns, volumeSnapshot), &v1beta1.VolumeSnapshot{})
 
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshot), err
+	return obj.(*v1beta1.VolumeSnapshot), err
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeVolumeSnapshots) UpdateStatus(volumeSnapshot *v1alpha1.VolumeSnapshot) (*v1alpha1.VolumeSnapshot, error) {
+func (c *FakeVolumeSnapshots) UpdateStatus(volumeSnapshot *v1beta1.VolumeSnapshot) (*v1beta1.VolumeSnapshot, error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewUpdateSubresourceAction(volumesnapshotsResource, "status", c.ns, volumeSnapshot), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewUpdateSubresourceAction(volumesnapshotsResource, "status", c.ns, volumeSnapshot), &v1beta1.VolumeSnapshot{})
 
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshot), err
+	return obj.(*v1beta1.VolumeSnapshot), err
 }
 
 // Delete takes name of the volumeSnapshot and deletes it. Returns an error if one occurs.
 func (c *FakeVolumeSnapshots) Delete(name string, options *v1.DeleteOptions) error {
 	_, err := c.Fake.
-		Invokes(testing.NewDeleteAction(volumesnapshotsResource, c.ns, name), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewDeleteAction(volumesnapshotsResource, c.ns, name), &v1beta1.VolumeSnapshot{})
 
 	return err
 }
@@ -124,17 +124,17 @@ func (c *FakeVolumeSnapshots) Delete(name string, options *v1.DeleteOptions) err
 func (c *FakeVolumeSnapshots) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
 	action := testing.NewDeleteCollectionAction(volumesnapshotsResource, c.ns, listOptions)
 
-	_, err := c.Fake.Invokes(action, &v1alpha1.VolumeSnapshotList{})
+	_, err := c.Fake.Invokes(action, &v1beta1.VolumeSnapshotList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched volumeSnapshot.
-func (c *FakeVolumeSnapshots) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshot, err error) {
+func (c *FakeVolumeSnapshots) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshot, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewPatchSubresourceAction(volumesnapshotsResource, c.ns, name, pt, data, subresources...), &v1alpha1.VolumeSnapshot{})
+		Invokes(testing.NewPatchSubresourceAction(volumesnapshotsResource, c.ns, name, pt, data, subresources...), &v1beta1.VolumeSnapshot{})
 
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshot), err
+	return obj.(*v1beta1.VolumeSnapshot), err
 }
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot_client.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot_client.go
similarity index 62%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot_client.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot_client.go
index 7433d14f2..56f7a0dd1 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshot_client.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshot_client.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,30 +19,30 @@ limitations under the License.
 package fake
 
 import (
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1"
 	rest "k8s.io/client-go/rest"
 	testing "k8s.io/client-go/testing"
 )
 
-type FakeVolumesnapshotV1alpha1 struct {
+type FakeSnapshotV1beta1 struct {
 	*testing.Fake
 }
 
-func (c *FakeVolumesnapshotV1alpha1) VolumeSnapshots(namespace string) v1alpha1.VolumeSnapshotInterface {
+func (c *FakeSnapshotV1beta1) VolumeSnapshots(namespace string) v1beta1.VolumeSnapshotInterface {
 	return &FakeVolumeSnapshots{c, namespace}
 }
 
-func (c *FakeVolumesnapshotV1alpha1) VolumeSnapshotClasses() v1alpha1.VolumeSnapshotClassInterface {
+func (c *FakeSnapshotV1beta1) VolumeSnapshotClasses() v1beta1.VolumeSnapshotClassInterface {
 	return &FakeVolumeSnapshotClasses{c}
 }
 
-func (c *FakeVolumesnapshotV1alpha1) VolumeSnapshotContents() v1alpha1.VolumeSnapshotContentInterface {
+func (c *FakeSnapshotV1beta1) VolumeSnapshotContents() v1beta1.VolumeSnapshotContentInterface {
 	return &FakeVolumeSnapshotContents{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeVolumesnapshotV1alpha1) RESTClient() rest.Interface {
+func (c *FakeSnapshotV1beta1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotclass.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotclass.go
similarity index 71%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotclass.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotclass.go
index 03c18b686..bd4013c39 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotclass.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotclass.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package fake
 
 import (
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -30,27 +30,27 @@ import (
 
 // FakeVolumeSnapshotClasses implements VolumeSnapshotClassInterface
 type FakeVolumeSnapshotClasses struct {
-	Fake *FakeVolumesnapshotV1alpha1
+	Fake *FakeSnapshotV1beta1
 }
 
-var volumesnapshotclassesResource = schema.GroupVersionResource{Group: "volumesnapshot", Version: "v1alpha1", Resource: "volumesnapshotclasses"}
+var volumesnapshotclassesResource = schema.GroupVersionResource{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Resource: "volumesnapshotclasses"}
 
-var volumesnapshotclassesKind = schema.GroupVersionKind{Group: "volumesnapshot", Version: "v1alpha1", Kind: "VolumeSnapshotClass"}
+var volumesnapshotclassesKind = schema.GroupVersionKind{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Kind: "VolumeSnapshotClass"}
 
 // Get takes name of the volumeSnapshotClass, and returns the corresponding volumeSnapshotClass object, and an error if there is any.
-func (c *FakeVolumeSnapshotClasses) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshotClass, err error) {
+func (c *FakeVolumeSnapshotClasses) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshotClass, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootGetAction(volumesnapshotclassesResource, name), &v1alpha1.VolumeSnapshotClass{})
+		Invokes(testing.NewRootGetAction(volumesnapshotclassesResource, name), &v1beta1.VolumeSnapshotClass{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotClass), err
+	return obj.(*v1beta1.VolumeSnapshotClass), err
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshotClasses that match those selectors.
-func (c *FakeVolumeSnapshotClasses) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotClassList, err error) {
+func (c *FakeVolumeSnapshotClasses) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotClassList, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootListAction(volumesnapshotclassesResource, volumesnapshotclassesKind, opts), &v1alpha1.VolumeSnapshotClassList{})
+		Invokes(testing.NewRootListAction(volumesnapshotclassesResource, volumesnapshotclassesKind, opts), &v1beta1.VolumeSnapshotClassList{})
 	if obj == nil {
 		return nil, err
 	}
@@ -59,8 +59,8 @@ func (c *FakeVolumeSnapshotClasses) List(opts v1.ListOptions) (result *v1alpha1.
 	if label == nil {
 		label = labels.Everything()
 	}
-	list := &v1alpha1.VolumeSnapshotClassList{ListMeta: obj.(*v1alpha1.VolumeSnapshotClassList).ListMeta}
-	for _, item := range obj.(*v1alpha1.VolumeSnapshotClassList).Items {
+	list := &v1beta1.VolumeSnapshotClassList{ListMeta: obj.(*v1beta1.VolumeSnapshotClassList).ListMeta}
+	for _, item := range obj.(*v1beta1.VolumeSnapshotClassList).Items {
 		if label.Matches(labels.Set(item.Labels)) {
 			list.Items = append(list.Items, item)
 		}
@@ -75,29 +75,29 @@ func (c *FakeVolumeSnapshotClasses) Watch(opts v1.ListOptions) (watch.Interface,
 }
 
 // Create takes the representation of a volumeSnapshotClass and creates it.  Returns the server's representation of the volumeSnapshotClass, and an error, if there is any.
-func (c *FakeVolumeSnapshotClasses) Create(volumeSnapshotClass *v1alpha1.VolumeSnapshotClass) (result *v1alpha1.VolumeSnapshotClass, err error) {
+func (c *FakeVolumeSnapshotClasses) Create(volumeSnapshotClass *v1beta1.VolumeSnapshotClass) (result *v1beta1.VolumeSnapshotClass, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootCreateAction(volumesnapshotclassesResource, volumeSnapshotClass), &v1alpha1.VolumeSnapshotClass{})
+		Invokes(testing.NewRootCreateAction(volumesnapshotclassesResource, volumeSnapshotClass), &v1beta1.VolumeSnapshotClass{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotClass), err
+	return obj.(*v1beta1.VolumeSnapshotClass), err
 }
 
 // Update takes the representation of a volumeSnapshotClass and updates it. Returns the server's representation of the volumeSnapshotClass, and an error, if there is any.
-func (c *FakeVolumeSnapshotClasses) Update(volumeSnapshotClass *v1alpha1.VolumeSnapshotClass) (result *v1alpha1.VolumeSnapshotClass, err error) {
+func (c *FakeVolumeSnapshotClasses) Update(volumeSnapshotClass *v1beta1.VolumeSnapshotClass) (result *v1beta1.VolumeSnapshotClass, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootUpdateAction(volumesnapshotclassesResource, volumeSnapshotClass), &v1alpha1.VolumeSnapshotClass{})
+		Invokes(testing.NewRootUpdateAction(volumesnapshotclassesResource, volumeSnapshotClass), &v1beta1.VolumeSnapshotClass{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotClass), err
+	return obj.(*v1beta1.VolumeSnapshotClass), err
 }
 
 // Delete takes name of the volumeSnapshotClass and deletes it. Returns an error if one occurs.
 func (c *FakeVolumeSnapshotClasses) Delete(name string, options *v1.DeleteOptions) error {
 	_, err := c.Fake.
-		Invokes(testing.NewRootDeleteAction(volumesnapshotclassesResource, name), &v1alpha1.VolumeSnapshotClass{})
+		Invokes(testing.NewRootDeleteAction(volumesnapshotclassesResource, name), &v1beta1.VolumeSnapshotClass{})
 	return err
 }
 
@@ -105,16 +105,16 @@ func (c *FakeVolumeSnapshotClasses) Delete(name string, options *v1.DeleteOption
 func (c *FakeVolumeSnapshotClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
 	action := testing.NewRootDeleteCollectionAction(volumesnapshotclassesResource, listOptions)
 
-	_, err := c.Fake.Invokes(action, &v1alpha1.VolumeSnapshotClassList{})
+	_, err := c.Fake.Invokes(action, &v1beta1.VolumeSnapshotClassList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched volumeSnapshotClass.
-func (c *FakeVolumeSnapshotClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotClass, err error) {
+func (c *FakeVolumeSnapshotClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotClass, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootPatchSubresourceAction(volumesnapshotclassesResource, name, pt, data, subresources...), &v1alpha1.VolumeSnapshotClass{})
+		Invokes(testing.NewRootPatchSubresourceAction(volumesnapshotclassesResource, name, pt, data, subresources...), &v1beta1.VolumeSnapshotClass{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotClass), err
+	return obj.(*v1beta1.VolumeSnapshotClass), err
 }
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotcontent.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotcontent.go
similarity index 64%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotcontent.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotcontent.go
index 2bdd3c5f6..36cfc70fa 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake/fake_volumesnapshotcontent.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake/fake_volumesnapshotcontent.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ limitations under the License.
 package fake
 
 import (
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
@@ -30,27 +30,27 @@ import (
 
 // FakeVolumeSnapshotContents implements VolumeSnapshotContentInterface
 type FakeVolumeSnapshotContents struct {
-	Fake *FakeVolumesnapshotV1alpha1
+	Fake *FakeSnapshotV1beta1
 }
 
-var volumesnapshotcontentsResource = schema.GroupVersionResource{Group: "volumesnapshot", Version: "v1alpha1", Resource: "volumesnapshotcontents"}
+var volumesnapshotcontentsResource = schema.GroupVersionResource{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Resource: "volumesnapshotcontents"}
 
-var volumesnapshotcontentsKind = schema.GroupVersionKind{Group: "volumesnapshot", Version: "v1alpha1", Kind: "VolumeSnapshotContent"}
+var volumesnapshotcontentsKind = schema.GroupVersionKind{Group: "snapshot.storage.k8s.io", Version: "v1beta1", Kind: "VolumeSnapshotContent"}
 
 // Get takes name of the volumeSnapshotContent, and returns the corresponding volumeSnapshotContent object, and an error if there is any.
-func (c *FakeVolumeSnapshotContents) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshotContent, err error) {
+func (c *FakeVolumeSnapshotContents) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshotContent, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootGetAction(volumesnapshotcontentsResource, name), &v1alpha1.VolumeSnapshotContent{})
+		Invokes(testing.NewRootGetAction(volumesnapshotcontentsResource, name), &v1beta1.VolumeSnapshotContent{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotContent), err
+	return obj.(*v1beta1.VolumeSnapshotContent), err
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshotContents that match those selectors.
-func (c *FakeVolumeSnapshotContents) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotContentList, err error) {
+func (c *FakeVolumeSnapshotContents) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotContentList, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootListAction(volumesnapshotcontentsResource, volumesnapshotcontentsKind, opts), &v1alpha1.VolumeSnapshotContentList{})
+		Invokes(testing.NewRootListAction(volumesnapshotcontentsResource, volumesnapshotcontentsKind, opts), &v1beta1.VolumeSnapshotContentList{})
 	if obj == nil {
 		return nil, err
 	}
@@ -59,8 +59,8 @@ func (c *FakeVolumeSnapshotContents) List(opts v1.ListOptions) (result *v1alpha1
 	if label == nil {
 		label = labels.Everything()
 	}
-	list := &v1alpha1.VolumeSnapshotContentList{ListMeta: obj.(*v1alpha1.VolumeSnapshotContentList).ListMeta}
-	for _, item := range obj.(*v1alpha1.VolumeSnapshotContentList).Items {
+	list := &v1beta1.VolumeSnapshotContentList{ListMeta: obj.(*v1beta1.VolumeSnapshotContentList).ListMeta}
+	for _, item := range obj.(*v1beta1.VolumeSnapshotContentList).Items {
 		if label.Matches(labels.Set(item.Labels)) {
 			list.Items = append(list.Items, item)
 		}
@@ -75,29 +75,40 @@ func (c *FakeVolumeSnapshotContents) Watch(opts v1.ListOptions) (watch.Interface
 }
 
 // Create takes the representation of a volumeSnapshotContent and creates it.  Returns the server's representation of the volumeSnapshotContent, and an error, if there is any.
-func (c *FakeVolumeSnapshotContents) Create(volumeSnapshotContent *v1alpha1.VolumeSnapshotContent) (result *v1alpha1.VolumeSnapshotContent, err error) {
+func (c *FakeVolumeSnapshotContents) Create(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (result *v1beta1.VolumeSnapshotContent, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootCreateAction(volumesnapshotcontentsResource, volumeSnapshotContent), &v1alpha1.VolumeSnapshotContent{})
+		Invokes(testing.NewRootCreateAction(volumesnapshotcontentsResource, volumeSnapshotContent), &v1beta1.VolumeSnapshotContent{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotContent), err
+	return obj.(*v1beta1.VolumeSnapshotContent), err
 }
 
 // Update takes the representation of a volumeSnapshotContent and updates it. Returns the server's representation of the volumeSnapshotContent, and an error, if there is any.
-func (c *FakeVolumeSnapshotContents) Update(volumeSnapshotContent *v1alpha1.VolumeSnapshotContent) (result *v1alpha1.VolumeSnapshotContent, err error) {
+func (c *FakeVolumeSnapshotContents) Update(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (result *v1beta1.VolumeSnapshotContent, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootUpdateAction(volumesnapshotcontentsResource, volumeSnapshotContent), &v1alpha1.VolumeSnapshotContent{})
+		Invokes(testing.NewRootUpdateAction(volumesnapshotcontentsResource, volumeSnapshotContent), &v1beta1.VolumeSnapshotContent{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotContent), err
+	return obj.(*v1beta1.VolumeSnapshotContent), err
+}
+
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeVolumeSnapshotContents) UpdateStatus(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (*v1beta1.VolumeSnapshotContent, error) {
+	obj, err := c.Fake.
+		Invokes(testing.NewRootUpdateSubresourceAction(volumesnapshotcontentsResource, "status", volumeSnapshotContent), &v1beta1.VolumeSnapshotContent{})
+	if obj == nil {
+		return nil, err
+	}
+	return obj.(*v1beta1.VolumeSnapshotContent), err
 }
 
 // Delete takes name of the volumeSnapshotContent and deletes it. Returns an error if one occurs.
 func (c *FakeVolumeSnapshotContents) Delete(name string, options *v1.DeleteOptions) error {
 	_, err := c.Fake.
-		Invokes(testing.NewRootDeleteAction(volumesnapshotcontentsResource, name), &v1alpha1.VolumeSnapshotContent{})
+		Invokes(testing.NewRootDeleteAction(volumesnapshotcontentsResource, name), &v1beta1.VolumeSnapshotContent{})
 	return err
 }
 
@@ -105,16 +116,16 @@ func (c *FakeVolumeSnapshotContents) Delete(name string, options *v1.DeleteOptio
 func (c *FakeVolumeSnapshotContents) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
 	action := testing.NewRootDeleteCollectionAction(volumesnapshotcontentsResource, listOptions)
 
-	_, err := c.Fake.Invokes(action, &v1alpha1.VolumeSnapshotContentList{})
+	_, err := c.Fake.Invokes(action, &v1beta1.VolumeSnapshotContentList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched volumeSnapshotContent.
-func (c *FakeVolumeSnapshotContents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotContent, err error) {
+func (c *FakeVolumeSnapshotContents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotContent, err error) {
 	obj, err := c.Fake.
-		Invokes(testing.NewRootPatchSubresourceAction(volumesnapshotcontentsResource, name, pt, data, subresources...), &v1alpha1.VolumeSnapshotContent{})
+		Invokes(testing.NewRootPatchSubresourceAction(volumesnapshotcontentsResource, name, pt, data, subresources...), &v1beta1.VolumeSnapshotContent{})
 	if obj == nil {
 		return nil, err
 	}
-	return obj.(*v1alpha1.VolumeSnapshotContent), err
+	return obj.(*v1beta1.VolumeSnapshotContent), err
 }
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/generated_expansion.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/generated_expansion.go
similarity index 92%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/generated_expansion.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/generated_expansion.go
index 5c57b1149..3ed3d11f2 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/generated_expansion.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/generated_expansion.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@ limitations under the License.
 
 // Code generated by client-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 type VolumeSnapshotExpansion interface{}
 
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot.go
similarity index 77%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot.go
index f383e8073..f9ef41512 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,12 +16,12 @@ limitations under the License.
 
 // Code generated by client-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 import (
 	"time"
 
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	scheme "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -37,15 +37,15 @@ type VolumeSnapshotsGetter interface {
 
 // VolumeSnapshotInterface has methods to work with VolumeSnapshot resources.
 type VolumeSnapshotInterface interface {
-	Create(*v1alpha1.VolumeSnapshot) (*v1alpha1.VolumeSnapshot, error)
-	Update(*v1alpha1.VolumeSnapshot) (*v1alpha1.VolumeSnapshot, error)
-	UpdateStatus(*v1alpha1.VolumeSnapshot) (*v1alpha1.VolumeSnapshot, error)
+	Create(*v1beta1.VolumeSnapshot) (*v1beta1.VolumeSnapshot, error)
+	Update(*v1beta1.VolumeSnapshot) (*v1beta1.VolumeSnapshot, error)
+	UpdateStatus(*v1beta1.VolumeSnapshot) (*v1beta1.VolumeSnapshot, error)
 	Delete(name string, options *v1.DeleteOptions) error
 	DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
-	Get(name string, options v1.GetOptions) (*v1alpha1.VolumeSnapshot, error)
-	List(opts v1.ListOptions) (*v1alpha1.VolumeSnapshotList, error)
+	Get(name string, options v1.GetOptions) (*v1beta1.VolumeSnapshot, error)
+	List(opts v1.ListOptions) (*v1beta1.VolumeSnapshotList, error)
 	Watch(opts v1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshot, err error)
+	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshot, err error)
 	VolumeSnapshotExpansion
 }
 
@@ -56,7 +56,7 @@ type volumeSnapshots struct {
 }
 
 // newVolumeSnapshots returns a VolumeSnapshots
-func newVolumeSnapshots(c *VolumesnapshotV1alpha1Client, namespace string) *volumeSnapshots {
+func newVolumeSnapshots(c *SnapshotV1beta1Client, namespace string) *volumeSnapshots {
 	return &volumeSnapshots{
 		client: c.RESTClient(),
 		ns:     namespace,
@@ -64,8 +64,8 @@ func newVolumeSnapshots(c *VolumesnapshotV1alpha1Client, namespace string) *volu
 }
 
 // Get takes name of the volumeSnapshot, and returns the corresponding volumeSnapshot object, and an error if there is any.
-func (c *volumeSnapshots) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshot, err error) {
-	result = &v1alpha1.VolumeSnapshot{}
+func (c *volumeSnapshots) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshot, err error) {
+	result = &v1beta1.VolumeSnapshot{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("volumesnapshots").
@@ -77,12 +77,12 @@ func (c *volumeSnapshots) Get(name string, options v1.GetOptions) (result *v1alp
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshots that match those selectors.
-func (c *volumeSnapshots) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotList, err error) {
+func (c *volumeSnapshots) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
 	}
-	result = &v1alpha1.VolumeSnapshotList{}
+	result = &v1beta1.VolumeSnapshotList{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("volumesnapshots").
@@ -109,8 +109,8 @@ func (c *volumeSnapshots) Watch(opts v1.ListOptions) (watch.Interface, error) {
 }
 
 // Create takes the representation of a volumeSnapshot and creates it.  Returns the server's representation of the volumeSnapshot, and an error, if there is any.
-func (c *volumeSnapshots) Create(volumeSnapshot *v1alpha1.VolumeSnapshot) (result *v1alpha1.VolumeSnapshot, err error) {
-	result = &v1alpha1.VolumeSnapshot{}
+func (c *volumeSnapshots) Create(volumeSnapshot *v1beta1.VolumeSnapshot) (result *v1beta1.VolumeSnapshot, err error) {
+	result = &v1beta1.VolumeSnapshot{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("volumesnapshots").
@@ -121,8 +121,8 @@ func (c *volumeSnapshots) Create(volumeSnapshot *v1alpha1.VolumeSnapshot) (resul
 }
 
 // Update takes the representation of a volumeSnapshot and updates it. Returns the server's representation of the volumeSnapshot, and an error, if there is any.
-func (c *volumeSnapshots) Update(volumeSnapshot *v1alpha1.VolumeSnapshot) (result *v1alpha1.VolumeSnapshot, err error) {
-	result = &v1alpha1.VolumeSnapshot{}
+func (c *volumeSnapshots) Update(volumeSnapshot *v1beta1.VolumeSnapshot) (result *v1beta1.VolumeSnapshot, err error) {
+	result = &v1beta1.VolumeSnapshot{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("volumesnapshots").
@@ -136,8 +136,8 @@ func (c *volumeSnapshots) Update(volumeSnapshot *v1alpha1.VolumeSnapshot) (resul
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
 
-func (c *volumeSnapshots) UpdateStatus(volumeSnapshot *v1alpha1.VolumeSnapshot) (result *v1alpha1.VolumeSnapshot, err error) {
-	result = &v1alpha1.VolumeSnapshot{}
+func (c *volumeSnapshots) UpdateStatus(volumeSnapshot *v1beta1.VolumeSnapshot) (result *v1beta1.VolumeSnapshot, err error) {
+	result = &v1beta1.VolumeSnapshot{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("volumesnapshots").
@@ -177,8 +177,8 @@ func (c *volumeSnapshots) DeleteCollection(options *v1.DeleteOptions, listOption
 }
 
 // Patch applies the patch and returns the patched volumeSnapshot.
-func (c *volumeSnapshots) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshot, err error) {
-	result = &v1alpha1.VolumeSnapshot{}
+func (c *volumeSnapshots) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshot, err error) {
+	result = &v1beta1.VolumeSnapshot{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("volumesnapshots").
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot_client.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot_client.go
similarity index 58%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot_client.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot_client.go
index 7209839dc..574860496 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshot_client.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshot_client.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,41 +16,41 @@ limitations under the License.
 
 // Code generated by client-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 import (
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	"github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	rest "k8s.io/client-go/rest"
 )
 
-type VolumesnapshotV1alpha1Interface interface {
+type SnapshotV1beta1Interface interface {
 	RESTClient() rest.Interface
 	VolumeSnapshotsGetter
 	VolumeSnapshotClassesGetter
 	VolumeSnapshotContentsGetter
 }
 
-// VolumesnapshotV1alpha1Client is used to interact with features provided by the volumesnapshot group.
-type VolumesnapshotV1alpha1Client struct {
+// SnapshotV1beta1Client is used to interact with features provided by the snapshot.storage.k8s.io group.
+type SnapshotV1beta1Client struct {
 	restClient rest.Interface
 }
 
-func (c *VolumesnapshotV1alpha1Client) VolumeSnapshots(namespace string) VolumeSnapshotInterface {
+func (c *SnapshotV1beta1Client) VolumeSnapshots(namespace string) VolumeSnapshotInterface {
 	return newVolumeSnapshots(c, namespace)
 }
 
-func (c *VolumesnapshotV1alpha1Client) VolumeSnapshotClasses() VolumeSnapshotClassInterface {
+func (c *SnapshotV1beta1Client) VolumeSnapshotClasses() VolumeSnapshotClassInterface {
 	return newVolumeSnapshotClasses(c)
 }
 
-func (c *VolumesnapshotV1alpha1Client) VolumeSnapshotContents() VolumeSnapshotContentInterface {
+func (c *SnapshotV1beta1Client) VolumeSnapshotContents() VolumeSnapshotContentInterface {
 	return newVolumeSnapshotContents(c)
 }
 
-// NewForConfig creates a new VolumesnapshotV1alpha1Client for the given config.
-func NewForConfig(c *rest.Config) (*VolumesnapshotV1alpha1Client, error) {
+// NewForConfig creates a new SnapshotV1beta1Client for the given config.
+func NewForConfig(c *rest.Config) (*SnapshotV1beta1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -59,12 +59,12 @@ func NewForConfig(c *rest.Config) (*VolumesnapshotV1alpha1Client, error) {
 	if err != nil {
 		return nil, err
 	}
-	return &VolumesnapshotV1alpha1Client{client}, nil
+	return &SnapshotV1beta1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new VolumesnapshotV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new SnapshotV1beta1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *VolumesnapshotV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *SnapshotV1beta1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -72,13 +72,13 @@ func NewForConfigOrDie(c *rest.Config) *VolumesnapshotV1alpha1Client {
 	return client
 }
 
-// New creates a new VolumesnapshotV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *VolumesnapshotV1alpha1Client {
-	return &VolumesnapshotV1alpha1Client{c}
+// New creates a new SnapshotV1beta1Client for the given RESTClient.
+func New(c rest.Interface) *SnapshotV1beta1Client {
+	return &SnapshotV1beta1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
-	gv := v1alpha1.SchemeGroupVersion
+	gv := v1beta1.SchemeGroupVersion
 	config.GroupVersion = &gv
 	config.APIPath = "/apis"
 	config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
@@ -92,7 +92,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *VolumesnapshotV1alpha1Client) RESTClient() rest.Interface {
+func (c *SnapshotV1beta1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotclass.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotclass.go
similarity index 78%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotclass.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotclass.go
index 9e48bd945..4a8e1d324 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotclass.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotclass.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,12 +16,12 @@ limitations under the License.
 
 // Code generated by client-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 import (
 	"time"
 
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	scheme "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -37,14 +37,14 @@ type VolumeSnapshotClassesGetter interface {
 
 // VolumeSnapshotClassInterface has methods to work with VolumeSnapshotClass resources.
 type VolumeSnapshotClassInterface interface {
-	Create(*v1alpha1.VolumeSnapshotClass) (*v1alpha1.VolumeSnapshotClass, error)
-	Update(*v1alpha1.VolumeSnapshotClass) (*v1alpha1.VolumeSnapshotClass, error)
+	Create(*v1beta1.VolumeSnapshotClass) (*v1beta1.VolumeSnapshotClass, error)
+	Update(*v1beta1.VolumeSnapshotClass) (*v1beta1.VolumeSnapshotClass, error)
 	Delete(name string, options *v1.DeleteOptions) error
 	DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
-	Get(name string, options v1.GetOptions) (*v1alpha1.VolumeSnapshotClass, error)
-	List(opts v1.ListOptions) (*v1alpha1.VolumeSnapshotClassList, error)
+	Get(name string, options v1.GetOptions) (*v1beta1.VolumeSnapshotClass, error)
+	List(opts v1.ListOptions) (*v1beta1.VolumeSnapshotClassList, error)
 	Watch(opts v1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotClass, err error)
+	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotClass, err error)
 	VolumeSnapshotClassExpansion
 }
 
@@ -54,15 +54,15 @@ type volumeSnapshotClasses struct {
 }
 
 // newVolumeSnapshotClasses returns a VolumeSnapshotClasses
-func newVolumeSnapshotClasses(c *VolumesnapshotV1alpha1Client) *volumeSnapshotClasses {
+func newVolumeSnapshotClasses(c *SnapshotV1beta1Client) *volumeSnapshotClasses {
 	return &volumeSnapshotClasses{
 		client: c.RESTClient(),
 	}
 }
 
 // Get takes name of the volumeSnapshotClass, and returns the corresponding volumeSnapshotClass object, and an error if there is any.
-func (c *volumeSnapshotClasses) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshotClass, err error) {
-	result = &v1alpha1.VolumeSnapshotClass{}
+func (c *volumeSnapshotClasses) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshotClass, err error) {
+	result = &v1beta1.VolumeSnapshotClass{}
 	err = c.client.Get().
 		Resource("volumesnapshotclasses").
 		Name(name).
@@ -73,12 +73,12 @@ func (c *volumeSnapshotClasses) Get(name string, options v1.GetOptions) (result
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshotClasses that match those selectors.
-func (c *volumeSnapshotClasses) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotClassList, err error) {
+func (c *volumeSnapshotClasses) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotClassList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
 	}
-	result = &v1alpha1.VolumeSnapshotClassList{}
+	result = &v1beta1.VolumeSnapshotClassList{}
 	err = c.client.Get().
 		Resource("volumesnapshotclasses").
 		VersionedParams(&opts, scheme.ParameterCodec).
@@ -103,8 +103,8 @@ func (c *volumeSnapshotClasses) Watch(opts v1.ListOptions) (watch.Interface, err
 }
 
 // Create takes the representation of a volumeSnapshotClass and creates it.  Returns the server's representation of the volumeSnapshotClass, and an error, if there is any.
-func (c *volumeSnapshotClasses) Create(volumeSnapshotClass *v1alpha1.VolumeSnapshotClass) (result *v1alpha1.VolumeSnapshotClass, err error) {
-	result = &v1alpha1.VolumeSnapshotClass{}
+func (c *volumeSnapshotClasses) Create(volumeSnapshotClass *v1beta1.VolumeSnapshotClass) (result *v1beta1.VolumeSnapshotClass, err error) {
+	result = &v1beta1.VolumeSnapshotClass{}
 	err = c.client.Post().
 		Resource("volumesnapshotclasses").
 		Body(volumeSnapshotClass).
@@ -114,8 +114,8 @@ func (c *volumeSnapshotClasses) Create(volumeSnapshotClass *v1alpha1.VolumeSnaps
 }
 
 // Update takes the representation of a volumeSnapshotClass and updates it. Returns the server's representation of the volumeSnapshotClass, and an error, if there is any.
-func (c *volumeSnapshotClasses) Update(volumeSnapshotClass *v1alpha1.VolumeSnapshotClass) (result *v1alpha1.VolumeSnapshotClass, err error) {
-	result = &v1alpha1.VolumeSnapshotClass{}
+func (c *volumeSnapshotClasses) Update(volumeSnapshotClass *v1beta1.VolumeSnapshotClass) (result *v1beta1.VolumeSnapshotClass, err error) {
+	result = &v1beta1.VolumeSnapshotClass{}
 	err = c.client.Put().
 		Resource("volumesnapshotclasses").
 		Name(volumeSnapshotClass.Name).
@@ -151,8 +151,8 @@ func (c *volumeSnapshotClasses) DeleteCollection(options *v1.DeleteOptions, list
 }
 
 // Patch applies the patch and returns the patched volumeSnapshotClass.
-func (c *volumeSnapshotClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotClass, err error) {
-	result = &v1alpha1.VolumeSnapshotClass{}
+func (c *volumeSnapshotClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotClass, err error) {
+	result = &v1beta1.VolumeSnapshotClass{}
 	err = c.client.Patch(pt).
 		Resource("volumesnapshotclasses").
 		SubResource(subresources...).
diff --git a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotcontent.go b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotcontent.go
similarity index 72%
rename from vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotcontent.go
rename to vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotcontent.go
index 11aac5159..02f672f5e 100644
--- a/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/volumesnapshotcontent.go
+++ b/vendor/github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/volumesnapshotcontent.go
@@ -1,5 +1,5 @@
 /*
-Copyright 2018 The Kubernetes Authors.
+Copyright 2019 The Kubernetes Authors.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,12 +16,12 @@ limitations under the License.
 
 // Code generated by client-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1beta1
 
 import (
 	"time"
 
-	v1alpha1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	v1beta1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	scheme "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	types "k8s.io/apimachinery/pkg/types"
@@ -37,14 +37,15 @@ type VolumeSnapshotContentsGetter interface {
 
 // VolumeSnapshotContentInterface has methods to work with VolumeSnapshotContent resources.
 type VolumeSnapshotContentInterface interface {
-	Create(*v1alpha1.VolumeSnapshotContent) (*v1alpha1.VolumeSnapshotContent, error)
-	Update(*v1alpha1.VolumeSnapshotContent) (*v1alpha1.VolumeSnapshotContent, error)
+	Create(*v1beta1.VolumeSnapshotContent) (*v1beta1.VolumeSnapshotContent, error)
+	Update(*v1beta1.VolumeSnapshotContent) (*v1beta1.VolumeSnapshotContent, error)
+	UpdateStatus(*v1beta1.VolumeSnapshotContent) (*v1beta1.VolumeSnapshotContent, error)
 	Delete(name string, options *v1.DeleteOptions) error
 	DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
-	Get(name string, options v1.GetOptions) (*v1alpha1.VolumeSnapshotContent, error)
-	List(opts v1.ListOptions) (*v1alpha1.VolumeSnapshotContentList, error)
+	Get(name string, options v1.GetOptions) (*v1beta1.VolumeSnapshotContent, error)
+	List(opts v1.ListOptions) (*v1beta1.VolumeSnapshotContentList, error)
 	Watch(opts v1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotContent, err error)
+	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotContent, err error)
 	VolumeSnapshotContentExpansion
 }
 
@@ -54,15 +55,15 @@ type volumeSnapshotContents struct {
 }
 
 // newVolumeSnapshotContents returns a VolumeSnapshotContents
-func newVolumeSnapshotContents(c *VolumesnapshotV1alpha1Client) *volumeSnapshotContents {
+func newVolumeSnapshotContents(c *SnapshotV1beta1Client) *volumeSnapshotContents {
 	return &volumeSnapshotContents{
 		client: c.RESTClient(),
 	}
 }
 
 // Get takes name of the volumeSnapshotContent, and returns the corresponding volumeSnapshotContent object, and an error if there is any.
-func (c *volumeSnapshotContents) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeSnapshotContent, err error) {
-	result = &v1alpha1.VolumeSnapshotContent{}
+func (c *volumeSnapshotContents) Get(name string, options v1.GetOptions) (result *v1beta1.VolumeSnapshotContent, err error) {
+	result = &v1beta1.VolumeSnapshotContent{}
 	err = c.client.Get().
 		Resource("volumesnapshotcontents").
 		Name(name).
@@ -73,12 +74,12 @@ func (c *volumeSnapshotContents) Get(name string, options v1.GetOptions) (result
 }
 
 // List takes label and field selectors, and returns the list of VolumeSnapshotContents that match those selectors.
-func (c *volumeSnapshotContents) List(opts v1.ListOptions) (result *v1alpha1.VolumeSnapshotContentList, err error) {
+func (c *volumeSnapshotContents) List(opts v1.ListOptions) (result *v1beta1.VolumeSnapshotContentList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
 	}
-	result = &v1alpha1.VolumeSnapshotContentList{}
+	result = &v1beta1.VolumeSnapshotContentList{}
 	err = c.client.Get().
 		Resource("volumesnapshotcontents").
 		VersionedParams(&opts, scheme.ParameterCodec).
@@ -103,8 +104,8 @@ func (c *volumeSnapshotContents) Watch(opts v1.ListOptions) (watch.Interface, er
 }
 
 // Create takes the representation of a volumeSnapshotContent and creates it.  Returns the server's representation of the volumeSnapshotContent, and an error, if there is any.
-func (c *volumeSnapshotContents) Create(volumeSnapshotContent *v1alpha1.VolumeSnapshotContent) (result *v1alpha1.VolumeSnapshotContent, err error) {
-	result = &v1alpha1.VolumeSnapshotContent{}
+func (c *volumeSnapshotContents) Create(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (result *v1beta1.VolumeSnapshotContent, err error) {
+	result = &v1beta1.VolumeSnapshotContent{}
 	err = c.client.Post().
 		Resource("volumesnapshotcontents").
 		Body(volumeSnapshotContent).
@@ -114,8 +115,8 @@ func (c *volumeSnapshotContents) Create(volumeSnapshotContent *v1alpha1.VolumeSn
 }
 
 // Update takes the representation of a volumeSnapshotContent and updates it. Returns the server's representation of the volumeSnapshotContent, and an error, if there is any.
-func (c *volumeSnapshotContents) Update(volumeSnapshotContent *v1alpha1.VolumeSnapshotContent) (result *v1alpha1.VolumeSnapshotContent, err error) {
-	result = &v1alpha1.VolumeSnapshotContent{}
+func (c *volumeSnapshotContents) Update(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (result *v1beta1.VolumeSnapshotContent, err error) {
+	result = &v1beta1.VolumeSnapshotContent{}
 	err = c.client.Put().
 		Resource("volumesnapshotcontents").
 		Name(volumeSnapshotContent.Name).
@@ -125,6 +126,21 @@ func (c *volumeSnapshotContents) Update(volumeSnapshotContent *v1alpha1.VolumeSn
 	return
 }
 
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+
+func (c *volumeSnapshotContents) UpdateStatus(volumeSnapshotContent *v1beta1.VolumeSnapshotContent) (result *v1beta1.VolumeSnapshotContent, err error) {
+	result = &v1beta1.VolumeSnapshotContent{}
+	err = c.client.Put().
+		Resource("volumesnapshotcontents").
+		Name(volumeSnapshotContent.Name).
+		SubResource("status").
+		Body(volumeSnapshotContent).
+		Do().
+		Into(result)
+	return
+}
+
 // Delete takes name of the volumeSnapshotContent and deletes it. Returns an error if one occurs.
 func (c *volumeSnapshotContents) Delete(name string, options *v1.DeleteOptions) error {
 	return c.client.Delete().
@@ -151,8 +167,8 @@ func (c *volumeSnapshotContents) DeleteCollection(options *v1.DeleteOptions, lis
 }
 
 // Patch applies the patch and returns the patched volumeSnapshotContent.
-func (c *volumeSnapshotContents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeSnapshotContent, err error) {
-	result = &v1alpha1.VolumeSnapshotContent{}
+func (c *volumeSnapshotContents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeSnapshotContent, err error) {
+	result = &v1beta1.VolumeSnapshotContent{}
 	err = c.client.Patch(pt).
 		Resource("volumesnapshotcontents").
 		SubResource(subresources...).
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 06f6017cb..8047887b5 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -51,13 +51,13 @@ github.com/kubernetes-csi/csi-lib-utils/protosanitizer
 # github.com/kubernetes-csi/csi-test v2.0.0+incompatible
 github.com/kubernetes-csi/csi-test/driver
 github.com/kubernetes-csi/csi-test/utils
-# github.com/kubernetes-csi/external-snapshotter v0.0.0-20190401205233-54a21f108e31
+# github.com/kubernetes-csi/external-snapshotter v2.0.0-rc1.0.20191024235139-bc6e42db5bc6+incompatible
 github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned
-github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1
-github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1
+github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1
+github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1
 github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake
 github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/scheme
-github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1alpha1/fake
+github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/typed/volumesnapshot/v1beta1/fake
 # github.com/matttproud/golang_protobuf_extensions v1.0.1
 github.com/matttproud/golang_protobuf_extensions/pbutil
 # github.com/miekg/dns v1.1.8
@@ -246,7 +246,6 @@ k8s.io/apiserver/pkg/util/feature
 # k8s.io/client-go v0.0.0-20190918200256-06eb1244587a => k8s.io/client-go v0.0.0-20190918200256-06eb1244587a
 k8s.io/client-go/informers
 k8s.io/client-go/kubernetes
-k8s.io/client-go/listers/core/v1
 k8s.io/client-go/listers/storage/v1beta1
 k8s.io/client-go/rest
 k8s.io/client-go/tools/clientcmd
@@ -417,6 +416,7 @@ k8s.io/client-go/listers/batch/v2alpha1
 k8s.io/client-go/listers/certificates/v1beta1
 k8s.io/client-go/listers/coordination/v1
 k8s.io/client-go/listers/coordination/v1beta1
+k8s.io/client-go/listers/core/v1
 k8s.io/client-go/listers/events/v1beta1
 k8s.io/client-go/listers/extensions/v1beta1
 k8s.io/client-go/listers/networking/v1


Test patch:
diff --git a/pkg/controller/controller_test.go b/pkg/controller/controller_test.go
index 5e17b0608..7a2a6dc48 100644
--- a/pkg/controller/controller_test.go
+++ b/pkg/controller/controller_test.go
@@ -36,12 +36,11 @@ import (
 	"github.com/kubernetes-csi/csi-lib-utils/connection"
 	"github.com/kubernetes-csi/csi-test/driver"
 	"github.com/kubernetes-csi/external-provisioner/pkg/features"
-	crdv1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1alpha1"
+	crdv1 "github.com/kubernetes-csi/external-snapshotter/pkg/apis/volumesnapshot/v1beta1"
 	"github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned/fake"
 	"google.golang.org/grpc"
 	"k8s.io/api/core/v1"
 	storagev1 "k8s.io/api/storage/v1"
-	storagev1beta1 "k8s.io/api/storage/v1beta1"
 	"k8s.io/apimachinery/pkg/api/resource"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
@@ -401,7 +400,7 @@ func TestCreateDriverReturnsInvalidCapacityDuringProvision(t *testing.T) {
 
 	pluginCaps, controllerCaps := provisionCapabilities()
 	csiProvisioner := NewCSIProvisioner(nil, 5*time.Second, "test-provisioner", "test",
-		5, csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil, nil)
+		5, csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil)
 
 	// Requested PVC with requestedBytes storage
 	deletePolicy := v1.PersistentVolumeReclaimDelete
@@ -1394,28 +1393,27 @@ func TestProvision(t *testing.T) {
 }
 
 // newSnapshot returns a new snapshot object
-func newSnapshot(name, className, boundToContent, snapshotUID, claimName string, ready bool, err *storagev1beta1.VolumeError, creationTime *metav1.Time, size *resource.Quantity) *crdv1.VolumeSnapshot {
+func newSnapshot(name, className, boundToContent, snapshotUID, claimName string, ready bool, err *crdv1.VolumeSnapshotError, creationTime *metav1.Time, size *resource.Quantity) *crdv1.VolumeSnapshot {
 	snapshot := crdv1.VolumeSnapshot{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:            name,
 			Namespace:       "default",
 			UID:             types.UID(snapshotUID),
 			ResourceVersion: "1",
-			SelfLink:        "/apis/snapshot.storage.k8s.io/v1alpha1/namespaces/" + "default" + "/volumesnapshots/" + name,
+			SelfLink:        "/apis/snapshot.storage.k8s.io/v1beta1/namespaces/" + "default" + "/volumesnapshots/" + name,
 		},
 		Spec: crdv1.VolumeSnapshotSpec{
-			Source: &v1.TypedLocalObjectReference{
-				Name: claimName,
-				Kind: "PersistentVolumeClaim",
+			Source: crdv1.VolumeSnapshotSource{
+				PersistentVolumeClaimName: &claimName,
 			},
 			VolumeSnapshotClassName: &className,
-			SnapshotContentName:     boundToContent,
 		},
-		Status: crdv1.VolumeSnapshotStatus{
-			CreationTime: creationTime,
-			ReadyToUse:   ready,
-			Error:        err,
-			RestoreSize:  size,
+		Status: &crdv1.VolumeSnapshotStatus{
+			BoundVolumeSnapshotContentName: &boundToContent,
+			CreationTime:                   creationTime,
+			ReadyToUse:                     &ready,
+			Error:                          err,
+			RestoreSize:                    size,
 		},
 	}
 
@@ -1464,7 +1462,7 @@ func runProvisionTest(t *testing.T, k string, tc provisioningTestcase, requested
 
 	pluginCaps, controllerCaps := provisionCapabilities()
 	csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5, csiConn.conn,
-		nil, provisionDriverName, pluginCaps, controllerCaps, supportsMigrationFromInTreePluginName, false, csitrans.New(), nil, nil)
+		nil, provisionDriverName, pluginCaps, controllerCaps, supportsMigrationFromInTreePluginName, false, csitrans.New(), nil)
 
 	out := &csi.CreateVolumeResponse{
 		Volume: &csi.Volume{
@@ -1560,37 +1558,35 @@ func runProvisionTest(t *testing.T, k string, tc provisioningTestcase, requested
 
 // newContent returns a new content with given attributes
 func newContent(name, className, snapshotHandle, volumeUID, volumeName, boundToSnapshotUID, boundToSnapshotName string, size *int64, creationTime *int64) *crdv1.VolumeSnapshotContent {
+	ready := true
 	content := crdv1.VolumeSnapshotContent{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:            name,
 			ResourceVersion: "1",
 		},
 		Spec: crdv1.VolumeSnapshotContentSpec{
-			VolumeSnapshotSource: crdv1.VolumeSnapshotSource{
-				CSI: &crdv1.CSIVolumeSnapshotSource{
-					RestoreSize:    size,
-					Driver:         "test-driver",
-					SnapshotHandle: snapshotHandle,
-					CreationTime:   creationTime,
-				},
+			Driver: "test-driver",
+			Source: crdv1.VolumeSnapshotContentSource{
+				SnapshotHandle: &snapshotHandle,
 			},
 			VolumeSnapshotClassName: &className,
-			PersistentVolumeRef: &v1.ObjectReference{
-				Kind:       "PersistentVolume",
-				APIVersion: "v1",
-				UID:        types.UID(volumeUID),
-				Name:       volumeName,
-			},
 		},
 	}
+
 	if boundToSnapshotName != "" {
-		content.Spec.VolumeSnapshotRef = &v1.ObjectReference{
+		content.Spec.VolumeSnapshotRef = v1.ObjectReference{
 			Kind:       "VolumeSnapshot",
-			APIVersion: "snapshot.storage.k8s.io/v1alpha1",
+			APIVersion: "snapshot.storage.k8s.io/v1beta1",
 			UID:        types.UID(boundToSnapshotUID),
 			Namespace:  "default",
 			Name:       boundToSnapshotName,
 		}
+		content.Status = &crdv1.VolumeSnapshotContentStatus{
+			RestoreSize:    size,
+			SnapshotHandle: &snapshotHandle,
+			CreationTime:   creationTime,
+			ReadyToUse:     &ready,
+		}
 	}
 
 	return &content
@@ -1618,17 +1614,22 @@ func TestProvisionFromSnapshot(t *testing.T) {
 	}
 
 	testcases := map[string]struct {
-		volOpts                          controller.ProvisionOptions
-		restoredVolSizeSmall             bool
-		wrongDataSource                  bool
-		snapshotStatusReady              bool
-		expectedPVSpec                   *pvSpec
-		expectErr                        bool
-		expectCSICall                    bool
-		notPopulated                     bool
-		misBoundSnapshotContentUID       bool
-		misBoundSnapshotContentNamespace bool
-		misBoundSnapshotContentName      bool
+		volOpts                           controller.ProvisionOptions
+		restoredVolSizeSmall              bool
+		wrongDataSource                   bool
+		snapshotStatusReady               bool
+		expectedPVSpec                    *pvSpec
+		expectErr                         bool
+		expectCSICall                     bool
+		notPopulated                      bool
+		misBoundSnapshotContentUID        bool
+		misBoundSnapshotContentNamespace  bool
+		misBoundSnapshotContentName       bool
+		nilBoundVolumeSnapshotContentName bool
+		nilSnapshotStatus                 bool
+		nilReadyToUse                     bool
+		nilContentStatus                  bool
+		nilSnapshotHandle                 bool
 	}{
 		"provision with volume snapshot data source": {
 			volOpts: controller.ProvisionOptions{
@@ -1994,6 +1995,168 @@ func TestProvisionFromSnapshot(t *testing.T) {
 			snapshotStatusReady: true,
 			expectErr:           true,
 		},
+		"fail provision with no volume snapshot content status": {
+			volOpts: controller.ProvisionOptions{
+				StorageClass: &storagev1.StorageClass{
+					ReclaimPolicy: &deletePolicy,
+					Parameters:    map[string]string{},
+					Provisioner:   "test-driver",
+				},
+				PVName: "test-name",
+				PVC: &v1.PersistentVolumeClaim{
+					ObjectMeta: metav1.ObjectMeta{
+						UID:         "testid",
+						Annotations: driverNameAnnotation,
+					},
+					Spec: v1.PersistentVolumeClaimSpec{
+						StorageClassName: &snapClassName,
+						Resources: v1.ResourceRequirements{
+							Requests: v1.ResourceList{
+								v1.ResourceName(v1.ResourceStorage): resource.MustParse(strconv.FormatInt(requestedBytes, 10)),
+							},
+						},
+						AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
+						DataSource: &v1.TypedLocalObjectReference{
+							Name:     snapName,
+							Kind:     "VolumeSnapshot",
+							APIGroup: &apiGrp,
+						},
+					},
+				},
+			},
+			snapshotStatusReady: true,
+			nilContentStatus:    true,
+			expectErr:           true,
+		},
+		"fail provision with no volume snapshot handle in content status": {
+			volOpts: controller.ProvisionOptions{
+				StorageClass: &storagev1.StorageClass{
+					ReclaimPolicy: &deletePolicy,
+					Parameters:    map[string]string{},
+					Provisioner:   "test-driver",
+				},
+				PVName: "test-name",
+				PVC: &v1.PersistentVolumeClaim{
+					ObjectMeta: metav1.ObjectMeta{
+						UID:         "testid",
+						Annotations: driverNameAnnotation,
+					},
+					Spec: v1.PersistentVolumeClaimSpec{
+						StorageClassName: &snapClassName,
+						Resources: v1.ResourceRequirements{
+							Requests: v1.ResourceList{
+								v1.ResourceName(v1.ResourceStorage): resource.MustParse(strconv.FormatInt(requestedBytes, 10)),
+							},
+						},
+						AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
+						DataSource: &v1.TypedLocalObjectReference{
+							Name:     snapName,
+							Kind:     "VolumeSnapshot",
+							APIGroup: &apiGrp,
+						},
+					},
+				},
+			},
+			snapshotStatusReady: true,
+			nilSnapshotHandle:   true,
+			expectErr:           true,
+		},
+		"fail provision with no volume snapshot status": {
+			volOpts: controller.ProvisionOptions{
+				StorageClass: &storagev1.StorageClass{
+					ReclaimPolicy: &deletePolicy,
+					Parameters:    map[string]string{},
+					Provisioner:   "test-driver",
+				},
+				PVName: "test-name",
+				PVC: &v1.PersistentVolumeClaim{
+					ObjectMeta: metav1.ObjectMeta{
+						UID:         "testid",
+						Annotations: driverNameAnnotation,
+					},
+					Spec: v1.PersistentVolumeClaimSpec{
+						StorageClassName: &snapClassName,
+						Resources: v1.ResourceRequirements{
+							Requests: v1.ResourceList{
+								v1.ResourceName(v1.ResourceStorage): resource.MustParse(strconv.FormatInt(requestedBytes, 10)),
+							},
+						},
+						AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
+						DataSource: &v1.TypedLocalObjectReference{
+							Name:     snapName,
+							Kind:     "VolumeSnapshot",
+							APIGroup: &apiGrp,
+						},
+					},
+				},
+			},
+			nilSnapshotStatus: true,
+			expectErr:         true,
+		},
+		"fail provision with no BoundVolumeSnapshotContentName in snapshot status": {
+			volOpts: controller.ProvisionOptions{
+				StorageClass: &storagev1.StorageClass{
+					ReclaimPolicy: &deletePolicy,
+					Parameters:    map[string]string{},
+					Provisioner:   "test-driver",
+				},
+				PVName: "test-name",
+				PVC: &v1.PersistentVolumeClaim{
+					ObjectMeta: metav1.ObjectMeta{
+						UID:         "testid",
+						Annotations: driverNameAnnotation,
+					},
+					Spec: v1.PersistentVolumeClaimSpec{
+						StorageClassName: &snapClassName,
+						Resources: v1.ResourceRequirements{
+							Requests: v1.ResourceList{
+								v1.ResourceName(v1.ResourceStorage): resource.MustParse(strconv.FormatInt(requestedBytes, 10)),
+							},
+						},
+						AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
+						DataSource: &v1.TypedLocalObjectReference{
+							Name:     snapName,
+							Kind:     "VolumeSnapshot",
+							APIGroup: &apiGrp,
+						},
+					},
+				},
+			},
+			nilBoundVolumeSnapshotContentName: true,
+			expectErr:                         true,
+		},
+		"fail provision with nil ReadyToUse in snapshot status": {
+			volOpts: controller.ProvisionOptions{
+				StorageClass: &storagev1.StorageClass{
+					ReclaimPolicy: &deletePolicy,
+					Parameters:    map[string]string{},
+					Provisioner:   "test-driver",
+				},
+				PVName: "test-name",
+				PVC: &v1.PersistentVolumeClaim{
+					ObjectMeta: metav1.ObjectMeta{
+						UID:         "testid",
+						Annotations: driverNameAnnotation,
+					},
+					Spec: v1.PersistentVolumeClaimSpec{
+						StorageClassName: &snapClassName,
+						Resources: v1.ResourceRequirements{
+							Requests: v1.ResourceList{
+								v1.ResourceName(v1.ResourceStorage): resource.MustParse(strconv.FormatInt(requestedBytes, 10)),
+							},
+						},
+						AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
+						DataSource: &v1.TypedLocalObjectReference{
+							Name:     snapName,
+							Kind:     "VolumeSnapshot",
+							APIGroup: &apiGrp,
+						},
+					},
+				},
+			},
+			nilReadyToUse: true,
+			expectErr:     true,
+		},
 	}
 
 	tmpdir := tempDir(t)
@@ -2012,6 +2175,15 @@ func TestProvisionFromSnapshot(t *testing.T) {
 
 		client.AddReactor("get", "volumesnapshots", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) {
 			snap := newSnapshot(snapName, snapClassName, "snapcontent-snapuid", "snapuid", "claim", tc.snapshotStatusReady, nil, metaTimeNowUnix, resource.NewQuantity(requestedBytes, resource.BinarySI))
+			if tc.nilSnapshotStatus {
+				snap.Status = nil
+			}
+			if tc.nilBoundVolumeSnapshotContentName {
+				snap.Status.BoundVolumeSnapshotContentName = nil
+			}
+			if tc.nilReadyToUse {
+				snap.Status.ReadyToUse = nil
+			}
 			return true, snap, nil
 		})
 
@@ -2026,12 +2198,18 @@ func TestProvisionFromSnapshot(t *testing.T) {
 			if tc.misBoundSnapshotContentNamespace {
 				content.Spec.VolumeSnapshotRef.Namespace = "another-snapshot-namespace"
 			}
+			if tc.nilContentStatus {
+				content.Status = nil
+			}
+			if tc.nilSnapshotHandle {
+				content.Status.SnapshotHandle = nil
+			}
 			return true, content, nil
 		})
 
 		pluginCaps, controllerCaps := provisionFromSnapshotCapabilities()
 		csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5, csiConn.conn,
-			client, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil, nil)
+			client, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil)
 
 		out := &csi.CreateVolumeResponse{
 			Volume: &csi.Volume{
@@ -2201,11 +2379,11 @@ func TestProvisionWithTopologyEnabled(t *testing.T) {
 
 			clientSet := fakeclientset.NewSimpleClientset(nodes, csiNodes)
 
-			csiNodeLister, nodeLister, stopChan := listers(clientSet)
+			csiNodeLister, stopChan := csiNodeLister(clientSet, t)
 			defer close(stopChan)
 
 			csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5,
-				csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), csiNodeLister, nodeLister)
+				csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), csiNodeLister)
 
 			pv, err := csiProvisioner.Provision(controller.ProvisionOptions{
 				StorageClass: &storagev1.StorageClass{},
@@ -2260,7 +2438,7 @@ func TestProvisionWithTopologyDisabled(t *testing.T) {
 	clientSet := fakeclientset.NewSimpleClientset()
 	pluginCaps, controllerCaps := provisionWithTopologyCapabilities()
 	csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5,
-		csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil, nil)
+		csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil)
 
 	out := &csi.CreateVolumeResponse{
 		Volume: &csi.Volume{
@@ -2440,7 +2618,7 @@ func runDeleteTest(t *testing.T, k string, tc deleteTestcase) {
 
 	pluginCaps, controllerCaps := provisionCapabilities()
 	csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5,
-		csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil, nil)
+		csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil)
 
 	err = csiProvisioner.Delete(tc.persistentVolume)
 	if tc.expectErr && err == nil {
@@ -3096,7 +3274,7 @@ func TestProvisionFromPVC(t *testing.T) {
 		}
 
 		csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner", "test", 5, csiConn.conn,
-			nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil, nil)
+			nil, driverName, pluginCaps, controllerCaps, "", false, csitrans.New(), nil)
 
 		pv, err := csiProvisioner.Provision(tc.volOpts)
 		if tc.expectErr && err == nil {
@@ -3175,7 +3353,7 @@ func TestProvisionWithMigration(t *testing.T) {
 			pluginCaps, controllerCaps := provisionCapabilities()
 			csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner",
 				"test", 5, csiConn.conn, nil, driverName, pluginCaps, controllerCaps,
-				inTreePluginName, false, mockTranslator, nil, nil)
+				inTreePluginName, false, mockTranslator, nil)
 
 			// Set up return values (AnyTimes to avoid overfitting on implementation)
 
@@ -3335,7 +3513,7 @@ func TestDeleteMigration(t *testing.T) {
 			pluginCaps, controllerCaps := provisionCapabilities()
 			csiProvisioner := NewCSIProvisioner(clientSet, 5*time.Second, "test-provisioner",
 				"test", 5, csiConn.conn, nil, driverName, pluginCaps, controllerCaps, "",
-				false, mockTranslator, nil, nil)
+				false, mockTranslator, nil)
 
 			// Set mock return values (AnyTimes to avoid overfitting on implementation details)
 			mockTranslator.EXPECT().IsPVMigratable(gomock.Any()).Return(tc.expectTranslation).AnyTimes()
diff --git a/pkg/controller/topology_test.go b/pkg/controller/topology_test.go
index a2f1b839a..052a06b8b 100644
--- a/pkg/controller/topology_test.go
+++ b/pkg/controller/topology_test.go
@@ -27,7 +27,6 @@ import (
 	"k8s.io/apimachinery/pkg/util/sets"
 	"k8s.io/client-go/informers"
 	fakeclientset "k8s.io/client-go/kubernetes/fake"
-	corelisters "k8s.io/client-go/listers/core/v1"
 	"k8s.io/client-go/listers/storage/v1beta1"
 	"k8s.io/kubernetes/pkg/apis/core/helper"
 )
@@ -393,7 +392,7 @@ func TestStatefulSetSpreading(t *testing.T) {
 
 	kubeClient := fakeclientset.NewSimpleClientset(nodes, csiNodes)
 
-	csiNodeLister, nodeLister, stopChan := listers(kubeClient)
+	csiNodeLister, stopChan := csiNodeLister(kubeClient, t)
 	defer close(stopChan)
 
 	for name, tc := range testcases {
@@ -411,7 +410,6 @@ func TestStatefulSetSpreading(t *testing.T) {
 				nil,
 				strictTopology,
 				csiNodeLister,
-				nodeLister,
 			)
 
 			if err != nil {
@@ -806,7 +804,6 @@ func TestAllowedTopologies(t *testing.T) {
 				nil, /* selectedNode */
 				strictTopology,
 				nil,
-				nil,
 			)
 
 			if err != nil {
@@ -1083,7 +1080,7 @@ func TestTopologyAggregation(t *testing.T) {
 
 			kubeClient := fakeclientset.NewSimpleClientset(nodes, csiNodes)
 
-			csiNodeLister, nodeLister, stopChan := listers(kubeClient)
+			csiNodeLister, stopChan := csiNodeLister(kubeClient, t)
 			defer close(stopChan)
 
 			var selectedNode *v1.Node
@@ -1098,7 +1095,6 @@ func TestTopologyAggregation(t *testing.T) {
 				selectedNode,
 				strictTopology,
 				csiNodeLister,
-				nodeLister,
 			)
 
 			if tc.expectError {
@@ -1336,7 +1332,7 @@ func TestPreferredTopologies(t *testing.T) {
 			kubeClient := fakeclientset.NewSimpleClientset(nodes, csiNodes)
 			selectedNode := &nodes.Items[0]
 
-			csiNodeLister, nodeLister, stopChan := listers(kubeClient)
+			csiNodeLister, stopChan := csiNodeLister(kubeClient, t)
 			defer close(stopChan)
 
 			requirements, err := GenerateAccessibilityRequirements(
@@ -1347,7 +1343,6 @@ func TestPreferredTopologies(t *testing.T) {
 				selectedNode,
 				strictTopology,
 				csiNodeLister,
-				nodeLister,
 			)
 
 			if tc.expectError {
@@ -1550,12 +1545,11 @@ func requisiteEqual(t1, t2 []*csi.Topology) bool {
 	return unchecked.Len() == 0
 }
 
-func listers(kubeClient *fakeclientset.Clientset) (v1beta1.CSINodeLister, corelisters.NodeLister, chan struct{}) {
+func csiNodeLister(kubeClient *fakeclientset.Clientset, t *testing.T) (v1beta1.CSINodeLister, chan struct{}) {
 	factory := informers.NewSharedInformerFactory(kubeClient, ResyncPeriodOfCsiNodeInformer)
 	stopChan := make(chan struct{})
 	csiNodeLister := factory.Storage().V1beta1().CSINodes().Lister()
-	nodeLister := factory.Core().V1().Nodes().Lister()
 	factory.Start(stopChan)
 	factory.WaitForCacheSync(stopChan)
-	return csiNodeLister, nodeLister, stopChan
+	return csiNodeLister, stopChan
 }