Initial support for multi kubernetes clusters for k8s nodes
Change-Id: I6ca132898f8e157e0583de38a637fdc135f21d6f
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
index 055b0df..8931b45 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
@@ -17,6 +17,7 @@
import org.onlab.packet.IpAddress;
import org.onlab.packet.MacAddress;
+import org.onosproject.k8snode.api.K8sApiConfig.Mode;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
@@ -37,10 +38,53 @@
/**
* Signifies that this is a kubernetes minion node.
*/
- MINION
+ MINION,
}
/**
+ * Returns cluster name of the node.
+ *
+ * @return cluster name
+ */
+ String clusterName();
+
+ /**
+ * Returns host short name.
+ *
+ * @return host short name
+ */
+ String hostShortName();
+
+ /**
+ * Returns a unique string with the given length and string.
+ *
+ * @param length target string length
+ * @return a unique string
+ */
+ String uniqueString(int length);
+
+ /**
+ * Returns the segmentation ID.
+ *
+ * @return segmentation ID
+ */
+ int segmentId();
+
+ /**
+ * Returns the key of VXLAN/GRE/GENEVE tunnel.
+ *
+ * @return key of various tunnel
+ */
+ String tunnelKey();
+
+ /**
+ * Returns the CNI running mode.
+ *
+ * @return CNI running mode
+ */
+ Mode mode();
+
+ /**
* Returns hostname of the node.
*
* @return hostname
@@ -83,6 +127,13 @@
DeviceId localBridge();
/**
+ * Returns the device ID of the tunnel bridge at the node.
+ *
+ * @return device id
+ */
+ DeviceId tunBridge();
+
+ /**
* Returns the external interface name.
*
* @return external interface name
@@ -114,6 +165,14 @@
K8sNode updateLocalBridge(DeviceId deviceId);
/**
+ * Returns new kubernetes node instance with given tun bridge.
+ *
+ * @param deviceId tunnel bridge device ID
+ * @return updated kubernetes node
+ */
+ K8sNode updateTunBridge(DeviceId deviceId);
+
+ /**
* Returns the management network IP address of the node.
*
* @return ip address
@@ -158,6 +217,118 @@
K8sNode updateExtGatewayMac(MacAddress macAddress);
/**
+ * Returns GRE port name.
+ *
+ * @return GRE port name
+ */
+ String grePortName();
+
+ /**
+ * Returns VXLAN port name.
+ *
+ * @return VXLAN port name
+ */
+ String vxlanPortName();
+
+ /**
+ * Returns GENEVE port name.
+ *
+ * @return GENEVE port name
+ */
+ String genevePortName();
+
+ /**
+ * Returns integration bridge name.
+ *
+ * @return integration bridge name
+ */
+ String intgBridgeName();
+
+ /**
+ * Returns external bridge name.
+ *
+ * @return external bridge name
+ */
+ String extBridgeName();
+
+ /**
+ * Returns local bridge name.
+ *
+ * @return local bridge name
+ */
+ String localBridgeName();
+
+ /**
+ * Returns tun bridge name.
+ *
+ * @return tun bridge name
+ */
+ String tunBridgeName();
+
+ /**
+ * Returns integration bridge port name.
+ *
+ * @return integration bridge port name
+ */
+ String intgBridgePortName();
+
+ /**
+ * Returns external bridge port name.
+ *
+ * @return external bridge port name
+ */
+ String extBridgePortName();
+
+ /**
+ * Returns local bridge port name.
+ *
+ * @return local bridge port name
+ */
+ String localBridgePortName();
+
+ /**
+ * Returns integration to external patch port name.
+ *
+ * @return integration to external patch port name
+ */
+ String intgToExtPatchPortName();
+
+ /**
+ * Returns integration to tunnel patch port name.
+ *
+ * @return integration to tunnel patch port name
+ */
+ String intgToTunPatchPortName();
+
+ /**
+ * Returns integration to local patch port name.
+ *
+ * @return integration to local patch port name
+ */
+ String intgToLocalPatchPortName();
+
+ /**
+ * Returns local to integration patch port name.
+ *
+ * @return local to integration patch port name
+ */
+ String localToIntgPatchPortName();
+
+ /**
+ * Returns external to integration patch port name.
+ *
+ * @return external to integration patch port name
+ */
+ String extToIntgPatchPortName();
+
+ /**
+ * Returns tunnel to integration patch port name.
+ *
+ * @return tunnel to integration patch port name
+ */
+ String tunToIntgPatchPortName();
+
+ /**
* Returns the GRE tunnel port number.
*
* @return GRE port number; null if the GRE tunnel port does not exist
@@ -204,7 +375,7 @@
*
* @return patch port number
*/
- PortNumber localToIntgPatchPortNumber();
+ PortNumber localToIntgPatchPortNum();
/**
* Returns the external to integration patch port number.
@@ -268,6 +439,14 @@
K8sNode build();
/**
+ * Returns kubernetes node builder with supplied cluster name.
+ *
+ * @param clusterName cluster name
+ * @return kubernetes node builder
+ */
+ Builder clusterName(String clusterName);
+
+ /**
* Returns kubernetes node builder with supplied hostname.
*
* @param hostname hostname of the node
@@ -284,6 +463,22 @@
Builder type(Type type);
/**
+ * Returns kubernetes node builder with supplied segment ID.
+ *
+ * @param segmentId kubernetes node segment ID
+ * @return kubernetes node builder
+ */
+ Builder segmentId(int segmentId);
+
+ /**
+ * Return kubernetes node builder with supplied mode.
+ *
+ * @param mode kubernetes CNI running mode
+ * @return kubernetes node builder
+ */
+ Builder mode(Mode mode);
+
+ /**
* Returns kubernetes node builder with supplied integration bridge name.
*
* @param deviceId integration bridge device ID
@@ -308,6 +503,14 @@
Builder localBridge(DeviceId deviceId);
/**
+ * Returns kubernetes node builder with supplied tunnel bridge name.
+ *
+ * @param deviceId tunnel bridge device ID
+ * @return kubernetes node builder
+ */
+ Builder tunBridge(DeviceId deviceId);
+
+ /**
* Returns kubernetes node builder with supplied external interface.
*
* @param intf external interface