Skip to content

Commit 546808e

Browse files
authored
Merge pull request #917 from l1b0k/main
feat: add IP reclaim policy
2 parents 4f8395a + f5cd55c commit 546808e

File tree

17 files changed

+2410
-83
lines changed

17 files changed

+2410
-83
lines changed

cmd/terway-controlplane/terway-controlplane.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func main() {
108108

109109
flag.Parse()
110110

111-
ctrl.SetLogger(textlogger.NewLogger(textlogger.NewConfig()))
111+
ctrl.SetLogger(textlogger.NewLogger(logCfg))
112112
log.Info(version.Version)
113113

114114
err := utilfeature.DefaultMutableFeatureGate.SetFromMap(featureGates)

daemon/builder.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ func (b *NetworkServiceBuilder) setupENIManager() error {
400400
}
401401
}
402402

403-
eniManager := eni.NewManager(poolConfig.MinPoolSize, poolConfig.MaxPoolSize, poolConfig.Capacity, b.config.GetIPPoolSYncPeriod(), eniList, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), b.service.k8s)
403+
eniManager := eni.NewManager(poolConfig, b.config.GetIPPoolSYncPeriod(), eniList, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), b.service.k8s)
404404
b.service.eniMgr = eniManager
405405
err = eniManager.Run(b.ctx, &b.service.wg, podResources)
406406
if err != nil {
@@ -432,7 +432,7 @@ func (b *NetworkServiceBuilder) PostInitForLegacyMode() *NetworkServiceBuilder {
432432
}
433433
podResources := getPodResources(objList)
434434

435-
eniManager := eni.NewManager(0, 0, 0, 30*time.Second, eniList, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), b.service.k8s)
435+
eniManager := eni.NewManager(nil, 30*time.Second, eniList, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), b.service.k8s)
436436
b.service.eniMgr = eniManager
437437
err = eniManager.Run(b.ctx, &b.service.wg, podResources)
438438
if err != nil {
@@ -466,7 +466,7 @@ func (b *NetworkServiceBuilder) PostInitForCRDV2() *NetworkServiceBuilder {
466466
return b
467467
}
468468
crdv2 := eni.NewCRDV2(b.service.k8s.NodeName(), b.namespace)
469-
mgr := eni.NewManager(0, 0, 0, 0, []eni.NetworkInterface{crdv2}, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), nil)
469+
mgr := eni.NewManager(nil, 0, []eni.NetworkInterface{crdv2}, daemon.EniSelectionPolicy(b.config.EniSelectionPolicy), nil)
470470

471471
svc := b.RunENIMgr(b.ctx, mgr)
472472
go b.service.startGarbageCollectionLoop(b.ctx)

daemon/config.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package daemon
22

33
import (
44
"context"
5+
"strconv"
6+
"time"
57

68
"github.com/AliyunContainerService/terway/pkg/aliyun/client"
79
"github.com/AliyunContainerService/terway/pkg/k8s"
@@ -166,5 +168,28 @@ func getPoolConfig(cfg *daemon.Config, daemonMode string, limit *client.Limits)
166168
poolConfig.MaxENI = maxENI
167169
poolConfig.MaxMemberENI = maxMemberENI
168170

171+
poolConfig.ReclaimBatchSize = cfg.IdleIPReclaimBatchSize
172+
if cfg.IdleIPReclaimInterval != nil {
173+
interval, err := time.ParseDuration(*cfg.IdleIPReclaimInterval)
174+
if err != nil {
175+
return nil, err
176+
}
177+
poolConfig.ReclaimInterval = interval
178+
}
179+
if cfg.IdleIPReclaimAfter != nil {
180+
after, err := time.ParseDuration(*cfg.IdleIPReclaimAfter)
181+
if err != nil {
182+
return nil, err
183+
}
184+
poolConfig.ReclaimAfter = after
185+
}
186+
if cfg.IdleIPReclaimJitterFactor != nil {
187+
factor, err := strconv.ParseFloat(*cfg.IdleIPReclaimJitterFactor, 64)
188+
if err != nil {
189+
return nil, err
190+
}
191+
poolConfig.ReclaimFactor = factor
192+
}
193+
169194
return poolConfig, nil
170195
}

0 commit comments

Comments
 (0)