mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 11:13:48 +00:00
Convert volume binder to use CSINode GA
This commit is contained in:
parent
dcb8c78e38
commit
bbfc6ef450
@ -17,7 +17,7 @@ go_library(
|
|||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/storage/v1beta1:go_default_library",
|
"//staging/src/k8s.io/api/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||||
@ -27,7 +27,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/storage/v1beta1:go_default_library",
|
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/listers/storage/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/listers/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
||||||
@ -53,7 +52,6 @@ go_test(
|
|||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/storage/v1:go_default_library",
|
"//staging/src/k8s.io/api/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/storage/v1beta1:go_default_library",
|
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
@ -63,7 +61,7 @@ go_test(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/storage/v1beta1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/testing:go_default_library",
|
"//staging/src/k8s.io/client-go/testing:go_default_library",
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
storagev1beta1 "k8s.io/api/storage/v1beta1"
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
@ -32,7 +32,6 @@ import (
|
|||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
coreinformers "k8s.io/client-go/informers/core/v1"
|
coreinformers "k8s.io/client-go/informers/core/v1"
|
||||||
storageinformers "k8s.io/client-go/informers/storage/v1"
|
storageinformers "k8s.io/client-go/informers/storage/v1"
|
||||||
storagev1beta1informers "k8s.io/client-go/informers/storage/v1beta1"
|
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
storagelisters "k8s.io/client-go/listers/storage/v1"
|
storagelisters "k8s.io/client-go/listers/storage/v1"
|
||||||
csitrans "k8s.io/csi-translation-lib"
|
csitrans "k8s.io/csi-translation-lib"
|
||||||
@ -120,7 +119,7 @@ type volumeBinder struct {
|
|||||||
classLister storagelisters.StorageClassLister
|
classLister storagelisters.StorageClassLister
|
||||||
|
|
||||||
nodeInformer coreinformers.NodeInformer
|
nodeInformer coreinformers.NodeInformer
|
||||||
csiNodeInformer storagev1beta1informers.CSINodeInformer
|
csiNodeInformer storageinformers.CSINodeInformer
|
||||||
pvcCache PVCAssumeCache
|
pvcCache PVCAssumeCache
|
||||||
pvCache PVAssumeCache
|
pvCache PVAssumeCache
|
||||||
|
|
||||||
@ -138,7 +137,7 @@ type volumeBinder struct {
|
|||||||
func NewVolumeBinder(
|
func NewVolumeBinder(
|
||||||
kubeClient clientset.Interface,
|
kubeClient clientset.Interface,
|
||||||
nodeInformer coreinformers.NodeInformer,
|
nodeInformer coreinformers.NodeInformer,
|
||||||
csiNodeInformer storagev1beta1informers.CSINodeInformer,
|
csiNodeInformer storageinformers.CSINodeInformer,
|
||||||
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
||||||
pvInformer coreinformers.PersistentVolumeInformer,
|
pvInformer coreinformers.PersistentVolumeInformer,
|
||||||
storageClassInformer storageinformers.StorageClassInformer,
|
storageClassInformer storageinformers.StorageClassInformer,
|
||||||
@ -850,7 +849,7 @@ func isCSIMigrationOnForPlugin(pluginName string) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// isPluginMigratedToCSIOnNode checks if an in-tree plugin has been migrated to a CSI driver on the node.
|
// isPluginMigratedToCSIOnNode checks if an in-tree plugin has been migrated to a CSI driver on the node.
|
||||||
func isPluginMigratedToCSIOnNode(pluginName string, csiNode *storagev1beta1.CSINode) bool {
|
func isPluginMigratedToCSIOnNode(pluginName string, csiNode *storagev1.CSINode) bool {
|
||||||
if csiNode == nil {
|
if csiNode == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -873,7 +872,7 @@ func isPluginMigratedToCSIOnNode(pluginName string, csiNode *storagev1beta1.CSIN
|
|||||||
}
|
}
|
||||||
|
|
||||||
// tryTranslatePVToCSI will translate the in-tree PV to CSI if it meets the criteria. If not, it returns the unmodified in-tree PV.
|
// tryTranslatePVToCSI will translate the in-tree PV to CSI if it meets the criteria. If not, it returns the unmodified in-tree PV.
|
||||||
func (b *volumeBinder) tryTranslatePVToCSI(pv *v1.PersistentVolume, csiNode *storagev1beta1.CSINode) (*v1.PersistentVolume, error) {
|
func (b *volumeBinder) tryTranslatePVToCSI(pv *v1.PersistentVolume, csiNode *storagev1.CSINode) (*v1.PersistentVolume, error) {
|
||||||
if !b.translator.IsPVMigratable(pv) {
|
if !b.translator.IsPVMigratable(pv) {
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,6 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
storagev1 "k8s.io/api/storage/v1"
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
storagev1beta1 "k8s.io/api/storage/v1beta1"
|
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
@ -35,7 +34,7 @@ import (
|
|||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/client-go/informers"
|
"k8s.io/client-go/informers"
|
||||||
coreinformers "k8s.io/client-go/informers/core/v1"
|
coreinformers "k8s.io/client-go/informers/core/v1"
|
||||||
storagev1beta1informers "k8s.io/client-go/informers/storage/v1beta1"
|
storageinformers "k8s.io/client-go/informers/storage/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
k8stesting "k8s.io/client-go/testing"
|
k8stesting "k8s.io/client-go/testing"
|
||||||
@ -121,7 +120,7 @@ type testEnv struct {
|
|||||||
binder SchedulerVolumeBinder
|
binder SchedulerVolumeBinder
|
||||||
internalBinder *volumeBinder
|
internalBinder *volumeBinder
|
||||||
internalNodeInformer coreinformers.NodeInformer
|
internalNodeInformer coreinformers.NodeInformer
|
||||||
internalCSINodeInformer storagev1beta1informers.CSINodeInformer
|
internalCSINodeInformer storageinformers.CSINodeInformer
|
||||||
internalPVCache *assumeCache
|
internalPVCache *assumeCache
|
||||||
internalPVCCache *assumeCache
|
internalPVCCache *assumeCache
|
||||||
}
|
}
|
||||||
@ -142,7 +141,7 @@ func newTestBinder(t *testing.T, stopCh <-chan struct{}) *testEnv {
|
|||||||
informerFactory := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc())
|
informerFactory := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc())
|
||||||
|
|
||||||
nodeInformer := informerFactory.Core().V1().Nodes()
|
nodeInformer := informerFactory.Core().V1().Nodes()
|
||||||
csiNodeInformer := informerFactory.Storage().V1beta1().CSINodes()
|
csiNodeInformer := informerFactory.Storage().V1().CSINodes()
|
||||||
pvcInformer := informerFactory.Core().V1().PersistentVolumeClaims()
|
pvcInformer := informerFactory.Core().V1().PersistentVolumeClaims()
|
||||||
classInformer := informerFactory.Storage().V1().StorageClasses()
|
classInformer := informerFactory.Storage().V1().StorageClasses()
|
||||||
binder := NewVolumeBinder(
|
binder := NewVolumeBinder(
|
||||||
@ -257,7 +256,7 @@ func (env *testEnv) initNodes(cachedNodes []*v1.Node) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (env *testEnv) initCSINodes(cachedCSINodes []*storagev1beta1.CSINode) {
|
func (env *testEnv) initCSINodes(cachedCSINodes []*storagev1.CSINode) {
|
||||||
csiNodeInformer := env.internalCSINodeInformer.Informer()
|
csiNodeInformer := env.internalCSINodeInformer.Informer()
|
||||||
for _, csiNode := range cachedCSINodes {
|
for _, csiNode := range cachedCSINodes {
|
||||||
csiNodeInformer.GetIndexer().Add(csiNode)
|
csiNodeInformer.GetIndexer().Add(csiNode)
|
||||||
@ -668,8 +667,8 @@ func makeNode(name string, labels map[string]string) *v1.Node {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeCSINode(name, migratedPlugin string) *storagev1beta1.CSINode {
|
func makeCSINode(name, migratedPlugin string) *storagev1.CSINode {
|
||||||
return &storagev1beta1.CSINode{
|
return &storagev1.CSINode{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: name,
|
Name: name,
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
@ -1056,7 +1055,7 @@ func TestFindPodVolumesWithCSIMigration(t *testing.T) {
|
|||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
initNodes []*v1.Node
|
initNodes []*v1.Node
|
||||||
initCSINodes []*storagev1beta1.CSINode
|
initCSINodes []*storagev1.CSINode
|
||||||
|
|
||||||
// Expected return values
|
// Expected return values
|
||||||
expectedUnbound bool
|
expectedUnbound bool
|
||||||
@ -1067,7 +1066,7 @@ func TestFindPodVolumesWithCSIMigration(t *testing.T) {
|
|||||||
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
||||||
pvs: []*v1.PersistentVolume{migrationPVBound},
|
pvs: []*v1.PersistentVolume{migrationPVBound},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
expectedBound: true,
|
expectedBound: true,
|
||||||
expectedUnbound: true,
|
expectedUnbound: true,
|
||||||
},
|
},
|
||||||
@ -1075,7 +1074,7 @@ func TestFindPodVolumesWithCSIMigration(t *testing.T) {
|
|||||||
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
||||||
pvs: []*v1.PersistentVolume{migrationPVBound},
|
pvs: []*v1.PersistentVolume{migrationPVBound},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1NotMigrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1NotMigrated},
|
||||||
expectedBound: true,
|
expectedBound: true,
|
||||||
expectedUnbound: true,
|
expectedUnbound: true,
|
||||||
},
|
},
|
||||||
@ -1090,7 +1089,7 @@ func TestFindPodVolumesWithCSIMigration(t *testing.T) {
|
|||||||
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
podPVCs: []*v1.PersistentVolumeClaim{boundMigrationPVC},
|
||||||
pvs: []*v1.PersistentVolume{migrationPVBound},
|
pvs: []*v1.PersistentVolume{migrationPVBound},
|
||||||
initNodes: []*v1.Node{node1Zone2},
|
initNodes: []*v1.Node{node1Zone2},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
expectedBound: false,
|
expectedBound: false,
|
||||||
expectedUnbound: true,
|
expectedUnbound: true,
|
||||||
},
|
},
|
||||||
@ -1588,7 +1587,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs []*v1.PersistentVolume
|
initPVs []*v1.PersistentVolume
|
||||||
initPVCs []*v1.PersistentVolumeClaim
|
initPVCs []*v1.PersistentVolumeClaim
|
||||||
initNodes []*v1.Node
|
initNodes []*v1.Node
|
||||||
initCSINodes []*storagev1beta1.CSINode
|
initCSINodes []*storagev1.CSINode
|
||||||
|
|
||||||
bindings []*bindingInfo
|
bindings []*bindingInfo
|
||||||
provisionedPVCs []*v1.PersistentVolumeClaim
|
provisionedPVCs []*v1.PersistentVolumeClaim
|
||||||
@ -1608,7 +1607,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBound},
|
initPVs: []*v1.PersistentVolume{migrationPVBound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{provMigrationPVCBound},
|
initPVCs: []*v1.PersistentVolumeClaim{provMigrationPVCBound},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
apiPVCs: []*v1.PersistentVolumeClaim{addProvisionAnn(provMigrationPVCBound)},
|
apiPVCs: []*v1.PersistentVolumeClaim{addProvisionAnn(provMigrationPVCBound)},
|
||||||
expectedBound: true,
|
expectedBound: true,
|
||||||
},
|
},
|
||||||
@ -1618,7 +1617,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
migrationEnabled: true,
|
migrationEnabled: true,
|
||||||
},
|
},
|
||||||
"binding-without-csinode": {
|
"binding-without-csinode": {
|
||||||
@ -1627,7 +1626,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{},
|
initCSINodes: []*storagev1.CSINode{},
|
||||||
migrationEnabled: true,
|
migrationEnabled: true,
|
||||||
},
|
},
|
||||||
"binding-non-migrated-plugin": {
|
"binding-non-migrated-plugin": {
|
||||||
@ -1636,7 +1635,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
||||||
initNodes: []*v1.Node{node1Zone1},
|
initNodes: []*v1.Node{node1Zone1},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1NotMigrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1NotMigrated},
|
||||||
migrationEnabled: true,
|
migrationEnabled: true,
|
||||||
},
|
},
|
||||||
"binding-node-pv-in-different-zones": {
|
"binding-node-pv-in-different-zones": {
|
||||||
@ -1645,7 +1644,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
||||||
initNodes: []*v1.Node{node1Zone2},
|
initNodes: []*v1.Node{node1Zone2},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
migrationEnabled: true,
|
migrationEnabled: true,
|
||||||
shouldFail: true,
|
shouldFail: true,
|
||||||
},
|
},
|
||||||
@ -1655,7 +1654,7 @@ func TestCheckBindingsWithCSIMigration(t *testing.T) {
|
|||||||
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
initPVs: []*v1.PersistentVolume{migrationPVBoundToUnbound},
|
||||||
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
initPVCs: []*v1.PersistentVolumeClaim{unboundPVC},
|
||||||
initNodes: []*v1.Node{node1Zone2},
|
initNodes: []*v1.Node{node1Zone2},
|
||||||
initCSINodes: []*storagev1beta1.CSINode{csiNode1Migrated},
|
initCSINodes: []*storagev1.CSINode{csiNode1Migrated},
|
||||||
migrationEnabled: false,
|
migrationEnabled: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -276,7 +276,7 @@ func New(client clientset.Interface,
|
|||||||
volumeBinder := volumebinder.NewVolumeBinder(
|
volumeBinder := volumebinder.NewVolumeBinder(
|
||||||
client,
|
client,
|
||||||
informerFactory.Core().V1().Nodes(),
|
informerFactory.Core().V1().Nodes(),
|
||||||
informerFactory.Storage().V1beta1().CSINodes(),
|
informerFactory.Storage().V1().CSINodes(),
|
||||||
informerFactory.Core().V1().PersistentVolumeClaims(),
|
informerFactory.Core().V1().PersistentVolumeClaims(),
|
||||||
informerFactory.Core().V1().PersistentVolumes(),
|
informerFactory.Core().V1().PersistentVolumes(),
|
||||||
informerFactory.Storage().V1().StorageClasses(),
|
informerFactory.Storage().V1().StorageClasses(),
|
||||||
|
@ -10,7 +10,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers/storage/v1beta1:go_default_library",
|
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -22,7 +22,6 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
coreinformers "k8s.io/client-go/informers/core/v1"
|
coreinformers "k8s.io/client-go/informers/core/v1"
|
||||||
storageinformers "k8s.io/client-go/informers/storage/v1"
|
storageinformers "k8s.io/client-go/informers/storage/v1"
|
||||||
storagev1beta1informers "k8s.io/client-go/informers/storage/v1beta1"
|
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
volumescheduling "k8s.io/kubernetes/pkg/controller/volume/scheduling"
|
volumescheduling "k8s.io/kubernetes/pkg/controller/volume/scheduling"
|
||||||
)
|
)
|
||||||
@ -36,7 +35,7 @@ type VolumeBinder struct {
|
|||||||
func NewVolumeBinder(
|
func NewVolumeBinder(
|
||||||
client clientset.Interface,
|
client clientset.Interface,
|
||||||
nodeInformer coreinformers.NodeInformer,
|
nodeInformer coreinformers.NodeInformer,
|
||||||
csiNodeInformer storagev1beta1informers.CSINodeInformer,
|
csiNodeInformer storageinformers.CSINodeInformer,
|
||||||
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
pvcInformer coreinformers.PersistentVolumeClaimInformer,
|
||||||
pvInformer coreinformers.PersistentVolumeInformer,
|
pvInformer coreinformers.PersistentVolumeInformer,
|
||||||
storageClassInformer storageinformers.StorageClassInformer,
|
storageClassInformer storageinformers.StorageClassInformer,
|
||||||
|
Loading…
Reference in New Issue
Block a user