mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-05 23:47:50 +00:00
Switch pv controller to shared informers
This commit is contained in:
@@ -31,6 +31,8 @@ import (
|
||||
storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
|
||||
storageutil "k8s.io/kubernetes/pkg/apis/storage/v1beta1/util"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
corelisters "k8s.io/kubernetes/pkg/client/listers/core/v1"
|
||||
storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/v1beta1"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
"k8s.io/kubernetes/pkg/util/goroutinemap"
|
||||
vol "k8s.io/kubernetes/pkg/volume"
|
||||
@@ -146,14 +148,13 @@ const createProvisionedPVInterval = 10 * time.Second
|
||||
// cache.Controllers that watch PersistentVolume and PersistentVolumeClaim
|
||||
// changes.
|
||||
type PersistentVolumeController struct {
|
||||
volumeController cache.Controller
|
||||
volumeInformer cache.Indexer
|
||||
volumeSource cache.ListerWatcher
|
||||
claimController cache.Controller
|
||||
claimInformer cache.Store
|
||||
claimSource cache.ListerWatcher
|
||||
classReflector *cache.Reflector
|
||||
classSource cache.ListerWatcher
|
||||
volumeLister corelisters.PersistentVolumeLister
|
||||
volumeListerSynced cache.InformerSynced
|
||||
claimLister corelisters.PersistentVolumeClaimLister
|
||||
claimListerSynced cache.InformerSynced
|
||||
classLister storagelisters.StorageClassLister
|
||||
classListerSynced cache.InformerSynced
|
||||
|
||||
kubeClient clientset.Interface
|
||||
eventRecorder record.EventRecorder
|
||||
cloud cloudprovider.Interface
|
||||
@@ -182,7 +183,6 @@ type PersistentVolumeController struct {
|
||||
// have been already written.
|
||||
volumes persistentVolumeOrderedIndex
|
||||
claims cache.Store
|
||||
classes cache.Store
|
||||
|
||||
// Work queues of claims and volumes to process. Every queue should have
|
||||
// exactly one worker thread, especially syncClaim() is not reentrant.
|
||||
@@ -1464,17 +1464,10 @@ func (ctrl *PersistentVolumeController) findProvisionablePlugin(claim *v1.Persis
|
||||
// provisionClaim() which leads here is never called with claimClass=="", we
|
||||
// can save some checks.
|
||||
claimClass := storageutil.GetClaimStorageClass(claim)
|
||||
classObj, found, err := ctrl.classes.GetByKey(claimClass)
|
||||
class, err := ctrl.classLister.Get(claimClass)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if !found {
|
||||
return nil, nil, fmt.Errorf("StorageClass %q not found", claimClass)
|
||||
}
|
||||
class, ok := classObj.(*storage.StorageClass)
|
||||
if !ok {
|
||||
return nil, nil, fmt.Errorf("Cannot convert object to StorageClass: %+v", classObj)
|
||||
}
|
||||
|
||||
// Find a plugin for the class
|
||||
plugin, err := ctrl.volumePluginMgr.FindProvisionablePluginByName(class.Provisioner)
|
||||
|
||||
Reference in New Issue
Block a user