Fix: support to enable SNAT from disabled status at kubevirt net

Change-Id: I82742975e0525f259d01f6279b32ebf34f8ea26f
(cherry picked from commit c2a2c07c3171b8413fa8dc3915f42efbd3c467a9)
This commit is contained in:
Jian Li 2021-07-16 17:41:13 +09:00
parent 3b7fa577da
commit 0ab242b16d

View File

@ -697,6 +697,24 @@ public class KubevirtRoutingSnatHandler {
}
if (router.enableSnat() && !router.external().isEmpty() && router.peerRouter() != null) {
initGatewayNodeSnatForRouter(router, router.electedGateway(), true);
KubevirtNode gatewayNode = kubevirtNodeService.node(router.electedGateway());
router.internal()
.stream()
.filter(networkId -> kubevirtNetworkService.network(networkId) != null)
.map(kubevirtNetworkService::network)
.forEach(network -> {
String routerSnatIp = router.external().keySet().stream().findAny().orElse(null);
if (routerSnatIp == null) {
return;
}
kubevirtPortService.ports(network.networkId()).forEach(kubevirtPort -> {
setStatefulSnatDownStreamRuleForKubevirtPort(router,
gatewayNode, kubevirtPort, true);
});
});
}
}