Skip to content

Commit 94e2547

Browse files
TomatoAresCui Shuaijie
andauthored
fix(platform): add needUpdate func in cluster/machine provider (#1503)
Co-authored-by: Cui Shuaijie <arescui@tencent.com>
1 parent 1fdf4f3 commit 94e2547

File tree

4 files changed

+37
-2
lines changed

4 files changed

+37
-2
lines changed

pkg/platform/controller/cluster/cluster_controller.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"k8s.io/apimachinery/pkg/util/wait"
3535
"k8s.io/client-go/tools/cache"
3636
"k8s.io/client-go/util/workqueue"
37+
3738
platformversionedclient "tkestack.io/tke/api/client/clientset/versioned/typed/platform/v1"
3839
platformv1informer "tkestack.io/tke/api/client/informers/externalversions/platform/v1"
3940
platformv1lister "tkestack.io/tke/api/client/listers/platform/v1"
@@ -131,7 +132,14 @@ func (c *Controller) addCluster(obj interface{}) {
131132
func (c *Controller) updateCluster(old, obj interface{}) {
132133
oldCluster := old.(*platformv1.Cluster)
133134
cluster := obj.(*platformv1.Cluster)
134-
if !c.needsUpdate(oldCluster, cluster) {
135+
136+
controllerNeedUpddateResult := c.needsUpdate(oldCluster, cluster)
137+
var providerNeedUpddateResult bool
138+
provider, _ := clusterprovider.GetProvider(cluster.Spec.Type)
139+
if provider != nil {
140+
providerNeedUpddateResult = provider.NeedUpdate(oldCluster, cluster)
141+
}
142+
if !(controllerNeedUpddateResult || providerNeedUpddateResult) {
135143
return
136144
}
137145
c.log.Info("Updating cluster", "clusterName", cluster.Name)

pkg/platform/controller/machine/machine_controller.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,14 @@ func (c *Controller) addMachine(obj interface{}) {
109109
func (c *Controller) updateMachine(old, obj interface{}) {
110110
oldMachine := old.(*platformv1.Machine)
111111
machine := obj.(*platformv1.Machine)
112-
if !c.needsUpdate(oldMachine, machine) {
112+
113+
controllerNeedUpddateResult := c.needsUpdate(oldMachine, machine)
114+
var providerNeedUpddateResult bool
115+
provider, _ := machineprovider.GetProvider(machine.Spec.Type)
116+
if provider != nil {
117+
providerNeedUpddateResult = provider.NeedUpdate(oldMachine, machine)
118+
}
119+
if !(controllerNeedUpddateResult || providerNeedUpddateResult) {
113120
return
114121
}
115122
c.log.Info("Updating machine", "machine", machine.Name)

pkg/platform/provider/cluster/interface.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ type ControllerProvider interface {
6565
Setup() error
6666
// Teardown called by controller for plugin do some clean job.
6767
Teardown() error
68+
// NeedUpdate could be implemented by user to judge whether cluster need update or not.
69+
NeedUpdate(old, new *platformv1.Cluster) bool
6870

6971
OnCreate(ctx context.Context, cluster *v1.Cluster) error
7072
OnUpdate(ctx context.Context, cluster *v1.Cluster) error
@@ -339,6 +341,10 @@ func (p *DelegateProvider) OnFilter(ctx context.Context, cluster *platformv1.Clu
339341
return true
340342
}
341343

344+
func (p *DelegateProvider) NeedUpdate(old, new *platformv1.Cluster) bool {
345+
return false
346+
}
347+
342348
func (p *DelegateProvider) getNextConditionType(conditionType string, handlers []Handler) string {
343349
var (
344350
i int

pkg/platform/provider/machine/interface.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,17 @@ const (
5151
type Provider interface {
5252
Name() string
5353

54+
APIProvider
55+
ControllerProvider
56+
}
57+
58+
type APIProvider interface {
5459
Validate(machine *platform.Machine) field.ErrorList
60+
}
61+
62+
type ControllerProvider interface {
63+
// NeedUpdate could be implemented by user to judge whether machine need update or not.
64+
NeedUpdate(old, new *platformv1.Machine) bool
5565

5666
PreCreate(machine *platform.Machine) error
5767
AfterCreate(machine *platform.Machine) error
@@ -213,6 +223,10 @@ func (p *DelegateProvider) OnDelete(ctx context.Context, machine *platformv1.Mac
213223
return nil
214224
}
215225

226+
func (p *DelegateProvider) NeedUpdate(old, new *platformv1.Machine) bool {
227+
return false
228+
}
229+
216230
func (p *DelegateProvider) getNextConditionType(conditionType string) string {
217231
var (
218232
i int

0 commit comments

Comments
 (0)