From f91d492ee19c0409d410e019c489ba425f34bf64 Mon Sep 17 00:00:00 2001 From: Joseph Chen <76720045+jchen6585@users.noreply.github.com> Date: Wed, 10 Jan 2024 09:30:55 -0800 Subject: [PATCH] Faster eni scaleup (#2744) Co-authored-by: Joseph Chen --- pkg/ipamd/ipamd.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/ipamd/ipamd.go b/pkg/ipamd/ipamd.go index 6ea08d42a1..6533149900 100644 --- a/pkg/ipamd/ipamd.go +++ b/pkg/ipamd/ipamd.go @@ -652,7 +652,11 @@ func (c *IPAMContext) updateIPPoolIfRequired(ctx context.Context) { log.Debugf("IP stats - total IPs: %d, assigned IPs: %d, cooldown IPs: %d", stats.TotalIPs, stats.AssignedIPs, stats.CooldownIPs) if datastorePoolTooLow { - c.increaseDatastorePool(ctx) + // Allow for rapid scale up to decrease time it takes for pod to retrieve an ip + // but conservative scale down to account for pod churn + for datastorePoolStillTooLow := datastorePoolTooLow; datastorePoolStillTooLow; datastorePoolStillTooLow, _ = c.isDatastorePoolTooLow() { + c.increaseDatastorePool(ctx) + } } else if c.isDatastorePoolTooHigh(stats) { c.decreaseDatastorePool(decreaseIPPoolInterval) }