mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 01:40:07 +00:00
Remove PVCLister and use informer directly.
This commit is contained in:
parent
19caa9c50d
commit
0a96a75cea
@ -117,12 +117,6 @@ type ReplicaSetLister interface {
|
|||||||
GetPodReplicaSets(*v1.Pod) ([]*extensions.ReplicaSet, error)
|
GetPodReplicaSets(*v1.Pod) ([]*extensions.ReplicaSet, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PersistentVolumeClaimLister interface represents anything that can list PVCs for a scheduler.
|
|
||||||
type PersistentVolumeClaimLister interface {
|
|
||||||
// Gets given PVC
|
|
||||||
Get(namespace, name string) (*v1.PersistentVolumeClaim, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ ControllerLister = &EmptyControllerLister{}
|
var _ ControllerLister = &EmptyControllerLister{}
|
||||||
|
|
||||||
// EmptyControllerLister implements ControllerLister on []v1.ReplicationController returning empty data
|
// EmptyControllerLister implements ControllerLister on []v1.ReplicationController returning empty data
|
||||||
|
@ -64,6 +64,7 @@ go_library(
|
|||||||
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/util/trace:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/util/trace:go_default_library",
|
||||||
|
"//vendor/k8s.io/client-go/listers/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/rest:go_default_library",
|
"//vendor/k8s.io/client-go/rest:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
|
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/util/workqueue:go_default_library",
|
"//vendor/k8s.io/client-go/util/workqueue:go_default_library",
|
||||||
|
@ -31,6 +31,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/util/errors"
|
"k8s.io/apimachinery/pkg/util/errors"
|
||||||
utiltrace "k8s.io/apiserver/pkg/util/trace"
|
utiltrace "k8s.io/apiserver/pkg/util/trace"
|
||||||
|
corelisters "k8s.io/client-go/listers/core/v1"
|
||||||
"k8s.io/client-go/util/workqueue"
|
"k8s.io/client-go/util/workqueue"
|
||||||
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
|
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
|
||||||
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates"
|
"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates"
|
||||||
@ -98,10 +99,10 @@ type genericScheduler struct {
|
|||||||
extenders []algorithm.SchedulerExtender
|
extenders []algorithm.SchedulerExtender
|
||||||
lastNodeIndexLock sync.Mutex
|
lastNodeIndexLock sync.Mutex
|
||||||
lastNodeIndex uint64
|
lastNodeIndex uint64
|
||||||
pvcLister algorithm.PersistentVolumeClaimLister
|
|
||||||
|
|
||||||
cachedNodeInfoMap map[string]*schedulercache.NodeInfo
|
cachedNodeInfoMap map[string]*schedulercache.NodeInfo
|
||||||
volumeBinder *volumebinder.VolumeBinder
|
volumeBinder *volumebinder.VolumeBinder
|
||||||
|
pvcLister corelisters.PersistentVolumeClaimLister
|
||||||
}
|
}
|
||||||
|
|
||||||
// Schedule tries to schedule the given pod to one of node in the node list.
|
// Schedule tries to schedule the given pod to one of node in the node list.
|
||||||
@ -1001,7 +1002,7 @@ func podEligibleToPreemptOthers(pod *v1.Pod, nodeNameToInfo map[string]*schedule
|
|||||||
}
|
}
|
||||||
|
|
||||||
// podPassesBasicChecks makes sanity checks on the pod if it can be scheduled.
|
// podPassesBasicChecks makes sanity checks on the pod if it can be scheduled.
|
||||||
func podPassesBasicChecks(pod *v1.Pod, pvcLister algorithm.PersistentVolumeClaimLister) error {
|
func podPassesBasicChecks(pod *v1.Pod, pvcLister corelisters.PersistentVolumeClaimLister) error {
|
||||||
// Check PVCs used by the pod
|
// Check PVCs used by the pod
|
||||||
namespace := pod.Namespace
|
namespace := pod.Namespace
|
||||||
manifest := &(pod.Spec)
|
manifest := &(pod.Spec)
|
||||||
@ -1012,7 +1013,7 @@ func podPassesBasicChecks(pod *v1.Pod, pvcLister algorithm.PersistentVolumeClaim
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
pvcName := volume.PersistentVolumeClaim.ClaimName
|
pvcName := volume.PersistentVolumeClaim.ClaimName
|
||||||
pvc, err := pvcLister.Get(namespace, pvcName)
|
pvc, err := pvcLister.PersistentVolumeClaims(namespace).Get(pvcName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// The error has already enough context ("persistentvolumeclaim "myclaim" not found")
|
// The error has already enough context ("persistentvolumeclaim "myclaim" not found")
|
||||||
return err
|
return err
|
||||||
@ -1036,7 +1037,7 @@ func NewGenericScheduler(
|
|||||||
priorityMetaProducer algorithm.MetadataProducer,
|
priorityMetaProducer algorithm.MetadataProducer,
|
||||||
extenders []algorithm.SchedulerExtender,
|
extenders []algorithm.SchedulerExtender,
|
||||||
volumeBinder *volumebinder.VolumeBinder,
|
volumeBinder *volumebinder.VolumeBinder,
|
||||||
pvcLister algorithm.PersistentVolumeClaimLister) algorithm.ScheduleAlgorithm {
|
pvcLister corelisters.PersistentVolumeClaimLister) algorithm.ScheduleAlgorithm {
|
||||||
return &genericScheduler{
|
return &genericScheduler{
|
||||||
cache: cache,
|
cache: cache,
|
||||||
equivalenceCache: eCache,
|
equivalenceCache: eCache,
|
||||||
|
@ -903,7 +903,7 @@ func (f *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String,
|
|||||||
glog.Info("Created equivalence class cache")
|
glog.Info("Created equivalence class cache")
|
||||||
}
|
}
|
||||||
|
|
||||||
algo := core.NewGenericScheduler(f.schedulerCache, f.equivalencePodCache, f.podQueue, predicateFuncs, predicateMetaProducer, priorityConfigs, priorityMetaProducer, extenders, f.volumeBinder, &pvcLister{f.pVCLister})
|
algo := core.NewGenericScheduler(f.schedulerCache, f.equivalencePodCache, f.podQueue, predicateFuncs, predicateMetaProducer, priorityConfigs, priorityMetaProducer, extenders, f.volumeBinder, f.pVCLister)
|
||||||
|
|
||||||
podBackoff := util.CreateDefaultPodBackoff()
|
podBackoff := util.CreateDefaultPodBackoff()
|
||||||
return &scheduler.Config{
|
return &scheduler.Config{
|
||||||
@ -935,14 +935,6 @@ func (n *nodeLister) List() ([]*v1.Node, error) {
|
|||||||
return n.NodeLister.List(labels.Everything())
|
return n.NodeLister.List(labels.Everything())
|
||||||
}
|
}
|
||||||
|
|
||||||
type pvcLister struct {
|
|
||||||
corelisters.PersistentVolumeClaimLister
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *pvcLister) Get(namespace, name string) (*v1.PersistentVolumeClaim, error) {
|
|
||||||
return p.PersistentVolumeClaimLister.PersistentVolumeClaims(namespace).Get(name)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *configFactory) GetPriorityFunctionConfigs(priorityKeys sets.String) ([]algorithm.PriorityConfig, error) {
|
func (f *configFactory) GetPriorityFunctionConfigs(priorityKeys sets.String) ([]algorithm.PriorityConfig, error) {
|
||||||
pluginArgs, err := f.getPluginArgs()
|
pluginArgs, err := f.getPluginArgs()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -22,6 +22,7 @@ go_library(
|
|||||||
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
"//vendor/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||||
|
"//vendor/k8s.io/client-go/listers/core/v1:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
extensions "k8s.io/api/extensions/v1beta1"
|
extensions "k8s.io/api/extensions/v1beta1"
|
||||||
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"
|
||||||
|
corelisters "k8s.io/client-go/listers/core/v1"
|
||||||
. "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
|
. "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm"
|
||||||
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
|
"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache"
|
||||||
)
|
)
|
||||||
@ -180,14 +181,34 @@ func (f FakeStatefulSetLister) GetPodStatefulSets(pod *v1.Pod) (sss []*apps.Stat
|
|||||||
// FakePersistentVolumeClaimLister implements PersistentVolumeClaimLister on []*v1.PersistentVolumeClaim for test purposes.
|
// FakePersistentVolumeClaimLister implements PersistentVolumeClaimLister on []*v1.PersistentVolumeClaim for test purposes.
|
||||||
type FakePersistentVolumeClaimLister []*v1.PersistentVolumeClaim
|
type FakePersistentVolumeClaimLister []*v1.PersistentVolumeClaim
|
||||||
|
|
||||||
var _ PersistentVolumeClaimLister = FakePersistentVolumeClaimLister{}
|
var _ corelisters.PersistentVolumeClaimLister = FakePersistentVolumeClaimLister{}
|
||||||
|
|
||||||
// List returns nodes as a []string.
|
func (f FakePersistentVolumeClaimLister) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) {
|
||||||
func (f FakePersistentVolumeClaimLister) Get(namespace, name string) (*v1.PersistentVolumeClaim, error) {
|
return nil, fmt.Errorf("not implemented")
|
||||||
for _, pvc := range f {
|
}
|
||||||
if pvc.Name == name && pvc.Namespace == namespace {
|
|
||||||
|
func (f FakePersistentVolumeClaimLister) PersistentVolumeClaims(namespace string) corelisters.PersistentVolumeClaimNamespaceLister {
|
||||||
|
return &fakePersistentVolumeClaimNamespaceLister{
|
||||||
|
pvcs: f,
|
||||||
|
namespace: namespace,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// fakePersistentVolumeClaimNamespaceLister is implementation of PersistentVolumeClaimNamespaceLister returned by List() above.
|
||||||
|
type fakePersistentVolumeClaimNamespaceLister struct {
|
||||||
|
pvcs []*v1.PersistentVolumeClaim
|
||||||
|
namespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fakePersistentVolumeClaimNamespaceLister) Get(name string) (*v1.PersistentVolumeClaim, error) {
|
||||||
|
for _, pvc := range f.pvcs {
|
||||||
|
if pvc.Name == name && pvc.Namespace == f.namespace {
|
||||||
return pvc, nil
|
return pvc, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("persistentvolumeclaim %q not found", name)
|
return nil, fmt.Errorf("persistentvolumeclaim %q not found", name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f fakePersistentVolumeClaimNamespaceLister) List(selector labels.Selector) (ret []*v1.PersistentVolumeClaim, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user