Fix the search algorithm
[samplevnf.git] / VNFs / DPPD-PROX / helper-scripts / rapid / rapid_k8s_deployment.py
index 822ead5..bfb8161 100644 (file)
@@ -40,6 +40,7 @@ class K8sDeployment:
     _create_config = None
     _runtime_config = None
     _total_number_of_pods = 0
+    _namespace = "rapid-testing"
     _pods = []
 
     def __init__(self):
@@ -64,7 +65,11 @@ class K8sDeployment:
         self._log.addHandler(console_handler)
 
         # Initialize k8s plugin
-        config.load_kube_config()
+        try:
+            config.load_kube_config()
+        except:
+            config.load_incluster_config()
+
         Pod.k8s_CoreV1Api = client.CoreV1Api()
 
     def load_create_config(self, config_file_name):
@@ -89,6 +94,15 @@ class K8sDeployment:
 
         self._log.debug("Total number of pods %d" % self._total_number_of_pods)
 
+        if self._create_config.has_option("DEFAULT", "namespace"):
+            self._namespace = self._create_config.get(
+                "DEFAULT", "namespace")
+        else:
+            self._log.error("No option namespace in DEFAULT section")
+            return -1
+
+        self._log.debug("Using namespace %s" % self._total_number_of_pods)
+
         # Parse [PODx] sections
         for i in range(1, int(self._total_number_of_pods) + 1):
             # Search for POD name
@@ -115,9 +129,18 @@ class K8sDeployment:
             else:
                 pod_dp_ip = None
 
-            pod = Pod(pod_name)
+            # Search for POD dataplane subnet
+            if self._create_config.has_option("POD%d" % i,
+                                              "dp_subnet"):
+                pod_dp_subnet = self._create_config.get(
+                    "POD%d" % i, "dp_subnet")
+            else:
+                pod_dp_subnet = "24"
+
+            pod = Pod(pod_name, self._namespace)
             pod.set_nodeselector(pod_nodeselector_hostname)
             pod.set_dp_ip(pod_dp_ip)
+            pod.set_dp_subnet(pod_dp_subnet)
             pod.set_id(i)
 
             # Add POD to the list of PODs which need to be created
@@ -181,7 +204,8 @@ class K8sDeployment:
             self._runtime_config.set("M%d" % pod.get_id(),
                                      "dp_pci_dev", pod.get_dp_pci_dev())
             self._runtime_config.set("M%d" % pod.get_id(),
-                                     "dp_ip1", pod.get_dp_ip())
+                                     "dp_ip1", pod.get_dp_ip() + "/" +
+                                     pod.get_dp_subnet())
 
         # Section [Varia]
         self._runtime_config.add_section("Varia")