Inject service FQDN into kubevirt node, let onos resolve service IP
Change-Id: I6f3f66ad97f8be461c464dad5d133f3477c40f5a
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
index 1821564..603a293 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
@@ -109,6 +109,7 @@
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.getRouterForKubevirtPort;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.getRouterMacAddress;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.portNumber;
+import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.resolveHostname;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.segmentIdHex;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.tunnelPort;
import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.tunnelToTenantPort;
@@ -228,7 +229,20 @@
Device device = deviceService.getDevice(node.ovsdb());
- IpAddress serverIp = apiConfigService.apiConfig().ipAddress();
+ IpAddress serverIp;
+ String serviceFqdn = apiConfigService.apiConfig().serviceFqdn();
+ IpAddress serviceIp = null;
+
+ if (serviceFqdn != null) {
+ serviceIp = resolveHostname(serviceFqdn);
+ }
+
+ if (serviceIp != null) {
+ serverIp = serviceIp;
+ } else {
+ serverIp = apiConfigService.apiConfig().ipAddress();
+ }
+
ControllerInfo controlInfo =
new ControllerInfo(serverIp, DEFAULT_OFPORT, DEFAULT_OF_PROTO);
List<ControllerInfo> controllers = Lists.newArrayList(controlInfo);
@@ -1140,7 +1154,7 @@
return;
}
- nodeService.completeNodes().forEach(n -> {
+ nodeService.completeNodes(WORKER).forEach(n -> {
createBridge(n, network);
createPatchTenantInterface(n, network);
setDefaultRulesForTenantNetwork(n, network);