Skip to content

Commit 5ed39d0

Browse files
authored
Merge pull request #66 from cwdsuzhou/tensile-kube
Change some funcs
2 parents df3a580 + e66d06d commit 5ed39d0

File tree

7 files changed

+149
-172
lines changed

7 files changed

+149
-172
lines changed

cmd/provider/main.go

+6-41
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import (
3434
"golang.org/x/time/rate"
3535
kubeinformers "k8s.io/client-go/informers"
3636
"k8s.io/client-go/kubernetes"
37-
corelisters "k8s.io/client-go/listers/core/v1"
3837
"k8s.io/client-go/util/workqueue"
3938
"k8s.io/klog"
4039

@@ -89,8 +88,7 @@ func main() {
8988
cfg.ConfigPath = o.KubeConfigPath
9089
provider, err := k8sprovider.NewVirtualK8S(cfg, &cc, ignoreLabels, enableServiceAccount, o)
9190
if err == nil {
92-
go RunController(ctx, provider.GetMaster(),
93-
provider.GetClient(), provider.GetNameSpaceLister(), cfg.NodeName, numberOfWorkers)
91+
go RunController(ctx, provider, cfg.NodeName, numberOfWorkers)
9492
}
9593
return provider, err
9694
}),
@@ -114,10 +112,10 @@ func main() {
114112
}
115113

116114
// RunController starts controllers for objects needed to be synced
117-
func RunController(ctx context.Context, master,
118-
client kubernetes.Interface, nsLister corelisters.NamespaceLister, hostIP string,
115+
func RunController(ctx context.Context, p *k8sprovider.VirtualK8S, hostIP string,
119116
workers int) *controllers.ServiceController {
120-
117+
master := p.GetMaster()
118+
client := p.GetClient()
121119
masterInformer := kubeinformers.NewSharedInformerFactory(master, 0)
122120
if masterInformer == nil {
123121
return nil
@@ -136,10 +134,10 @@ func RunController(ctx context.Context, master,
136134
}
137135
switch c {
138136
case "PVControllers":
139-
pvCtrl := buildPVController(master, client, masterInformer, clientInformer, hostIP)
137+
pvCtrl := controllers.NewPVController(master, client, masterInformer, clientInformer, hostIP)
140138
runningControllers = append(runningControllers, pvCtrl)
141139
case "ServiceControllers":
142-
serviceCtrl := buildServiceController(master, client, masterInformer, clientInformer, nsLister)
140+
serviceCtrl := controllers.NewServiceController(master, client, masterInformer, clientInformer, p.GetNameSpaceLister())
143141
runningControllers = append(runningControllers, serviceCtrl)
144142
default:
145143
klog.Warningf("Skip: %v", c)
@@ -154,39 +152,6 @@ func RunController(ctx context.Context, master,
154152
return nil
155153
}
156154

157-
func buildServiceController(master, client kubernetes.Interface, masterInformer,
158-
clientInformer kubeinformers.SharedInformerFactory,
159-
nsLister corelisters.NamespaceLister) controllers.Controller {
160-
// master
161-
serviceInformer := masterInformer.Core().V1().Services()
162-
endpointsInformer := masterInformer.Core().V1().Endpoints()
163-
// client
164-
clientServiceInformer := clientInformer.Core().V1().Services()
165-
clientEndpointsInformer := clientInformer.Core().V1().Endpoints()
166-
167-
serviceRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
168-
endpointsRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
169-
return controllers.NewServiceController(master, client, serviceInformer, endpointsInformer,
170-
clientServiceInformer, clientEndpointsInformer, nsLister, serviceRateLimiter, endpointsRateLimiter)
171-
}
172-
173-
func buildPVController(master, client kubernetes.Interface, masterInformer,
174-
clientInformer kubeinformers.SharedInformerFactory, hostIP string) controllers.Controller {
175-
176-
pvcInformer := masterInformer.Core().V1().PersistentVolumeClaims()
177-
pvInformer := masterInformer.Core().V1().PersistentVolumes()
178-
179-
clientPVCInformer := clientInformer.Core().V1().PersistentVolumeClaims()
180-
clientPVInformer := clientInformer.Core().V1().PersistentVolumes()
181-
182-
pvcRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
183-
pvRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
184-
185-
return controllers.NewPVController(master, client, pvcInformer, pvInformer,
186-
clientPVCInformer,
187-
clientPVInformer, pvcRateLimiter, pvRateLimiter, hostIP)
188-
}
189-
190155
func buildCommonControllers(client kubernetes.Interface, masterInformer,
191156
clientInformer kubeinformers.SharedInformerFactory) controllers.Controller {
192157

pkg/controllers/pv_controller.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
mergetypes "k8s.io/apimachinery/pkg/types"
2828
"k8s.io/apimachinery/pkg/util/runtime"
2929
"k8s.io/apimachinery/pkg/util/wait"
30-
coreinformers "k8s.io/client-go/informers/core/v1"
30+
"k8s.io/client-go/informers"
3131
"k8s.io/client-go/kubernetes"
3232
"k8s.io/client-go/kubernetes/scheme"
3333
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -67,13 +67,19 @@ type PVController struct {
6767

6868
// NewPVController returns a new *PVController
6969
func NewPVController(master kubernetes.Interface, client kubernetes.Interface,
70-
pvcInformer coreinformers.PersistentVolumeClaimInformer, pvInformer coreinformers.PersistentVolumeInformer,
71-
clientPVCInformer coreinformers.PersistentVolumeClaimInformer, clientPVInformer coreinformers.PersistentVolumeInformer,
72-
pvcRateLimiter, pvRateLimiter workqueue.RateLimiter, hostIP string) Controller {
70+
masterInformer, clientInformer informers.SharedInformerFactory, hostIP string) Controller {
7371
broadcaster := record.NewBroadcaster()
7472
broadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: master.CoreV1().Events(v1.NamespaceAll)})
7573
var eventRecorder record.EventRecorder
7674
eventRecorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "virtual-kubelet"})
75+
pvcInformer := masterInformer.Core().V1().PersistentVolumeClaims()
76+
pvInformer := masterInformer.Core().V1().PersistentVolumes()
77+
78+
clientPVCInformer := clientInformer.Core().V1().PersistentVolumeClaims()
79+
clientPVInformer := clientInformer.Core().V1().PersistentVolumes()
80+
81+
pvcRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
82+
pvRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
7783
ctrl := &PVController{
7884
master: master,
7985
client: client,

pkg/controllers/service_controller.go

+11-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
mergetypes "k8s.io/apimachinery/pkg/types"
2929
"k8s.io/apimachinery/pkg/util/runtime"
3030
"k8s.io/apimachinery/pkg/util/wait"
31-
coreinformers "k8s.io/client-go/informers/core/v1"
31+
"k8s.io/client-go/informers"
3232
"k8s.io/client-go/kubernetes"
3333
"k8s.io/client-go/kubernetes/scheme"
3434
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -62,14 +62,20 @@ type ServiceController struct {
6262

6363
// NewServiceController returns a new *ServiceController
6464
func NewServiceController(master kubernetes.Interface, client kubernetes.Interface,
65-
serviceInformer coreinformers.ServiceInformer, endpointsInformer coreinformers.EndpointsInformer,
66-
clientServiceInformer coreinformers.ServiceInformer, clientEndpointsInformer coreinformers.EndpointsInformer,
67-
nsLister corelisters.NamespaceLister,
68-
serviceRateLimiter, endpointsRateLimiter workqueue.RateLimiter) Controller {
65+
masterInformer, clientInformer informers.SharedInformerFactory,
66+
nsLister corelisters.NamespaceLister) Controller {
6967
broadcaster := record.NewBroadcaster()
7068
broadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: master.CoreV1().Events(v1.NamespaceAll)})
7169
var eventRecorder record.EventRecorder
7270
eventRecorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "virtual-kubelet"})
71+
serviceRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
72+
endpointsRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
73+
// master
74+
serviceInformer := masterInformer.Core().V1().Services()
75+
endpointsInformer := masterInformer.Core().V1().Endpoints()
76+
// client
77+
clientServiceInformer := clientInformer.Core().V1().Services()
78+
clientEndpointsInformer := clientInformer.Core().V1().Endpoints()
7379
ctrl := &ServiceController{
7480
master: master,
7581
client: client,

pkg/controllers/service_controller_test.go

+1-13
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"k8s.io/apimachinery/pkg/util/wait"
2929
"k8s.io/client-go/informers"
3030
"k8s.io/client-go/kubernetes/fake"
31-
"k8s.io/client-go/util/workqueue"
3231
"k8s.io/kubernetes/pkg/controller"
3332
)
3433

@@ -424,19 +423,8 @@ func newServiceController() *svcTestBase {
424423
clientInformer := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc())
425424
masterInformer := informers.NewSharedInformerFactory(master, controller.NoResyncPeriodFunc())
426425

427-
serviceInformer := masterInformer.Core().V1().Services()
428-
endPointsInformer := masterInformer.Core().V1().Endpoints()
429-
430426
nsLister := masterInformer.Core().V1().Namespaces().Lister()
431-
432-
clientServiceInformer := clientInformer.Core().V1().Services()
433-
clientEndPointsInformer := clientInformer.Core().V1().Endpoints()
434-
435-
serviceRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
436-
endPointsRateLimiter := workqueue.NewItemExponentialFailureRateLimiter(time.Second, 30*time.Second)
437-
438-
controller := NewServiceController(master, client, serviceInformer, endPointsInformer, clientServiceInformer,
439-
clientEndPointsInformer, nsLister, serviceRateLimiter, endPointsRateLimiter)
427+
controller := NewServiceController(master, client, masterInformer, clientInformer, nsLister)
440428
c := controller.(*ServiceController)
441429
return &svcTestBase{
442430
c: c,

pkg/descheduler/descheduler.go

-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ func RunDeschedulerStrategies(ctx context.Context, rs *options.DeschedulerServer
9999
podEvictor := evictions.NewPodEvictor(
100100
rs.Client,
101101
evictionPolicyGroupVersion,
102-
rs.DryRun,
103102
rs.MaxNoOfPodsToEvictPerNode,
104103
nodes, unschedulableCache,
105104
)

pkg/descheduler/evictions/evictions.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ type PodEvictor struct {
6666
func NewPodEvictor(
6767
client clientset.Interface,
6868
policyGroupVersion string,
69-
dryRun bool,
7069
maxPodsToEvict int,
7170
nodes []*v1.Node, unschedulableCache *util.UnschedulableCache) *PodEvictor {
7271
var nodePodCount = make(nodePodEvictedCount)
@@ -90,7 +89,7 @@ func NewPodEvictor(
9089
return &PodEvictor{
9190
client: client,
9291
policyGroupVersion: policyGroupVersion,
93-
dryRun: dryRun,
92+
dryRun: false,
9493
maxPodsToEvict: maxPodsToEvict,
9594
nodepodCount: nodePodCount,
9695
nodeNum: virtualCount,

0 commit comments

Comments
 (0)