Currently, the VLAN auto-allocation and its overlap retry logic for SubnetConnectionBindingMap are handled directly inside the controller's Reconcile loop (pkg/controllers/subnetbinding/subnetbinding_controller.go). The controller manages the VlanPoolService state (pending/commit/release) and handles the fallback mechanism when hitting NSX cache conflicts (nsxutil.IsOverlapVlanError).
To improve the separation of concerns and keep the controller thin, we should push these implementation details down to the NSX services layer.
see: #1445 (comment)
Currently, the VLAN auto-allocation and its overlap retry logic for SubnetConnectionBindingMap are handled directly inside the controller's Reconcile loop (pkg/controllers/subnetbinding/subnetbinding_controller.go). The controller manages the VlanPoolService state (pending/commit/release) and handles the fallback mechanism when hitting NSX cache conflicts (nsxutil.IsOverlapVlanError).
To improve the separation of concerns and keep the controller thin, we should push these implementation details down to the NSX services layer.
see: #1445 (comment)