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/K8sApiConfig.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
index 62d050d..d01f3a2 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
@@ -16,6 +16,9 @@
package org.onosproject.k8snode.api;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.IpPrefix;
+
+import java.util.Set;
/**
* Representation of configuration used in kubernetes API server.
@@ -52,6 +55,46 @@
DISCONNECTED,
}
+ enum Mode {
+ /**
+ * Signifies that the CNI is running in normal mode.
+ */
+ NORMAL,
+
+ /**
+ * Signifies that the CNI is running in pass-through mode.
+ */
+ PASSTHROUGH,
+ }
+
+ /**
+ * Returns the cluster name.
+ *
+ * @return cluster name
+ */
+ String clusterName();
+
+ /**
+ * Returns cluster short name.
+ *
+ * @return cluster short name
+ */
+ String clusterShortName();
+
+ /**
+ * Returns the segmentation ID.
+ *
+ * @return segmentation ID
+ */
+ int segmentId();
+
+ /**
+ * Returns the external network CIDR.
+ *
+ * @return external network CIDR
+ */
+ IpPrefix extNetworkCidr();
+
/**
* Returns the authentication scheme.
*
@@ -81,6 +124,13 @@
State state();
/**
+ * Returns the CNI running mode.
+ *
+ * @return running mode
+ */
+ Mode mode();
+
+ /**
* Returns new kubernetes API config instance with given state.
*
* @param newState updated state
@@ -117,6 +167,13 @@
String clientKeyData();
/**
+ * Returns the host Nodes info set.
+ *
+ * @return host nodes info set
+ */
+ Set<HostNodesInfo> infos();
+
+ /**
* Builder of new API config entity.
*/
interface Builder {
@@ -129,6 +186,30 @@
K8sApiConfig build();
/**
+ * Returns kubernetes API server config builder with cluster name.
+ *
+ * @param clusterName cluster name
+ * @return kubernetes API config builder
+ */
+ Builder clusterName(String clusterName);
+
+ /**
+ * Returns kubernetes API server config builder with segment ID.
+ *
+ * @param segmentId segment ID
+ * @return kubernetes API config builder
+ */
+ Builder segmentId(int segmentId);
+
+ /**
+ * Returns kubernetes API server config builder with external network CIDR.
+ *
+ * @param extNetworkCidr external network CIDR
+ * @return kubernetes API config builder
+ */
+ Builder extNetworkCidr(IpPrefix extNetworkCidr);
+
+ /**
* Returns kubernetes API server config builder with supplied scheme.
*
* @param scheme scheme of authentication
@@ -161,6 +242,14 @@
Builder state(State state);
/**
+ * Returns kubernetes API server config builder with supplied mode.
+ *
+ * @param mode CNI running mode
+ * @return kubernetes API config builder
+ */
+ Builder mode(Mode mode);
+
+ /**
* Returns kubernetes API server config builder with supplied token.
*
* @param token token for authentication
@@ -191,5 +280,13 @@
* @return kubernetes API config builder
*/
Builder clientKeyData(String clientKeyData);
+
+ /**
+ * Returns kubernetes API server config builder with supplied hostNodesInfo.
+ *
+ * @param infos hostNodesInfo
+ * @return kubernetes API config builder
+ */
+ Builder infos(Set<HostNodesInfo> infos);
}
}