From 4348646128317cb649f4385200335ee5115cfd1d Mon Sep 17 00:00:00 2001 From: Vacant2333 <vacant2333@gmail.com> Date: Fri, 1 Nov 2024 16:59:33 +0800 Subject: [PATCH] fix: avoid selecting subnets with insufficient available IP addresses Signed-off-by: Vacant2333 <vacant2333@gmail.com> --- pkg/providers/subnet/subnet.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/providers/subnet/subnet.go b/pkg/providers/subnet/subnet.go index 58fc1776804c..7cef3de4c8a1 100644 --- a/pkg/providers/subnet/subnet.go +++ b/pkg/providers/subnet/subnet.go @@ -166,6 +166,13 @@ func (p *DefaultProvider) ZonalSubnetsForLaunch(ctx context.Context, nodeClass * if trackedIPs, ok := p.inflightIPs[subnet.ID]; ok { prevIPs = trackedIPs } + + // Check if the remaining IP count is insufficient to meet the predicted IP usage; + // if so, remove this subnet zone record from inflightIPs and continue to the next item in the loop。 + if prevIPs-predictedIPsUsed < 0 { + delete(zonalSubnets, subnet.Zone) + continue + } p.inflightIPs[subnet.ID] = prevIPs - predictedIPsUsed } return zonalSubnets, nil