Skip to content

Commit 601297c

Browse files
committed
perf: only enqueue subnet when necessary
Signed-off-by: Mengxin Liu <liumengxinfly@gmail.com>
1 parent 15c7c79 commit 601297c

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

pkg/controller/subnet.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,15 @@ func (c *Controller) handleAddOrUpdateSubnet(key string) error {
493493
return err
494494
}
495495

496+
subnet, deleted, err := c.handleSubnetFinalizer(subnet)
497+
if err != nil {
498+
klog.Errorf("handle subnet finalizer failed %v", err)
499+
return err
500+
}
501+
if deleted {
502+
return nil
503+
}
504+
496505
err = c.validateSubnetVlan(subnet)
497506
if err != nil {
498507
err := fmt.Errorf("failed to validate vlan for subnet %s, %w", key, err)
@@ -529,15 +538,6 @@ func (c *Controller) handleAddOrUpdateSubnet(key string) error {
529538
return err
530539
}
531540

532-
subnet, deleted, err := c.handleSubnetFinalizer(subnet)
533-
if err != nil {
534-
klog.Errorf("handle subnet finalizer failed %v", err)
535-
return err
536-
}
537-
if deleted {
538-
return nil
539-
}
540-
541541
if !isOvnSubnet(subnet) {
542542
// subnet provider is not ovn, and vpc is empty, should not reconcile
543543
if err = c.patchSubnetStatus(subnet, "SetNonOvnSubnetSuccess", ""); err != nil {

pkg/controller/vpc.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,11 @@ func (c *Controller) handleAddOrUpdateVpc(key string) error {
594594
custVpcEnableExternalEcmp := false
595595
for _, subnet := range subnets {
596596
if subnet.Spec.Vpc == key {
597-
c.addOrUpdateSubnetQueue.Add(subnet.Name)
597+
// Accelerate subnet update when vpc config is updated.
598+
// In case VPC not set namespaces, subnet will backoff and may take long time to back to ready.
599+
if subnet.Status.IsNotReady() {
600+
c.addOrUpdateSubnetQueue.Add(subnet.Name)
601+
}
598602
if vpc.Name != util.DefaultVpc && vpc.Spec.EnableBfd && subnet.Spec.EnableEcmp {
599603
custVpcEnableExternalEcmp = true
600604
}

0 commit comments

Comments
 (0)