k8s_juju_conn.py: fix cloud name for k8s 99/8399/6
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Fri, 13 Dec 2019 12:39:03 +0000 (13:39 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 30 Jan 2020 20:59:58 +0000 (21:59 +0100)
Change-Id: Id0e605f010306bd71728e1335636340674bbfb2d
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
n2vc/k8s_conn.py
n2vc/k8s_helm_conn.py
n2vc/k8s_juju_conn.py

index 11fb43e..4fdaee8 100644 (file)
@@ -71,7 +71,8 @@ class K8sConnector(abc.ABC, Loggable):
             server (Tiller/Charm)
 
         :param k8s_creds: credentials to access a given K8s cluster, i.e. a valid '.kube/config'
-        :param namespace: optional namespace for helm tiller. By default, 'kube-system' will be used
+        :param namespace: optional namespace to be used for the K8s engine (helm tiller, juju).
+        By default, 'kube-system' will be used
         :param reuse_cluster_uuid: existing cluster uuid for reuse
         :return: uuid of the K8s cluster and True if connector has installed some software in the cluster
         (on error, an exception will be raised)
index 417604a..01b448b 100644 (file)
@@ -102,6 +102,17 @@ class K8sHelmConnector(K8sConnector):
             namespace: str = 'kube-system',
             reuse_cluster_uuid=None
     ) -> (str, bool):
+        """
+        It prepares a given K8s cluster environment to run Charts on both sides:
+            client (OSM)
+            server (Tiller)
+
+        :param k8s_creds: credentials to access a given K8s cluster, i.e. a valid '.kube/config'
+        :param namespace: optional namespace to be used for helm. By default, 'kube-system' will be used
+        :param reuse_cluster_uuid: existing cluster uuid for reuse
+        :return: uuid of the K8s cluster and True if connector has installed some software in the cluster
+        (on error, an exception will be raised)
+        """
 
         cluster_uuid = reuse_cluster_uuid
         if not cluster_uuid:
index 1db34b4..d2d9e88 100644 (file)
@@ -82,13 +82,14 @@ class K8sJujuConnector(K8sConnector):
         namespace: str = 'kube-system',
         reuse_cluster_uuid: str = None,
     ) -> (str, bool):
-        """Initialize a Kubernetes environment
-
-        :param k8s_creds dict: A dictionary containing the Kubernetes cluster
-        configuration
-        :param namespace str: The Kubernetes namespace to initialize
+        """
+        It prepares a given K8s cluster environment to run Juju bundles.
 
-        :return: UUID of the k8s context or raises an exception
+        :param k8s_creds: credentials to access a given K8s cluster, i.e. a valid '.kube/config'
+        :param namespace: optional namespace to be used for juju. By default, 'kube-system' will be used
+        :param reuse_cluster_uuid: existing cluster uuid for reuse
+        :return: uuid of the K8s cluster and True if connector has installed some software in the cluster
+        (on error, an exception will be raised)
         """
 
         """Bootstrapping
@@ -119,6 +120,16 @@ class K8sJujuConnector(K8sConnector):
         # TODO: Pull info from db based on the namespace #
         ##################################################
 
+        ###################################################
+        # TODO: Make it idempotent, calling add-k8s and   #
+        # bootstrap whenever reuse_cluster_uuid is passed #
+        # as parameter                                    #
+        # `init_env` is called to initialize the K8s      #
+        # cluster for juju. If this initialization fails, #
+        # it can be called again by LCM with the param    #
+        # reuse_cluster_uuid, e.g. to try to fix it.       #
+        ###################################################
+
         if not reuse_cluster_uuid:
             # This is a new cluster, so bootstrap it
 
@@ -131,7 +142,7 @@ class K8sJujuConnector(K8sConnector):
             loadbalancer = False if localk8s else True
 
             # Name the new k8s cloud
-            k8s_cloud = "{}-k8s".format(namespace)
+            k8s_cloud = "k8s-{}".format(cluster_uuid)
 
             print("Adding k8s cloud {}".format(k8s_cloud))
             await self.add_k8s(k8s_cloud, k8s_creds)