Bug 2105 fixed
[osm/N2VC.git] / n2vc / k8s_helm_conn.py
index 8e17a0e..adeb272 100644 (file)
@@ -654,20 +654,24 @@ class K8sHelmConnector(K8sHelmBaseConnector):
         resource_name: str,
         kubeconfig: str,
     ) -> str:
-
-        timeout_str = ""
-        if timeout:
-            timeout_str = "--timeout {}s".format(timeout)
-
-        # atomic
-        atomic_str = ""
-        if atomic:
-            atomic_str = "--atomic"
-
-        # version
-        version_str = ""
-        if version:
-            version_str = "--version {}".format(version)
+        """Generates the command to scale a Helm Chart release
+
+        Args:
+            kdu_model (str): Kdu model name, corresponding to the Helm local location or repository
+            kdu_instance (str): KDU instance, corresponding to the Helm Chart release in question
+            namespace (str): Namespace where this KDU instance is deployed
+            scale (int): Scale count
+            version (str): Constraint with specific version of the Chart to use
+            atomic (bool): If set, upgrade process rolls back changes made in case of failed upgrade.
+                The --wait flag will be set automatically if --atomic is used
+            replica_str (str): The key under resource_name key where the scale count is stored
+            timeout (float): The time, in seconds, to wait
+            resource_name (str): The KDU's resource to scale
+            kubeconfig (str): Kubeconfig file path
+
+        Returns:
+            str: command to scale a Helm Chart release
+        """
 
         # scale
         if resource_name:
@@ -677,19 +681,16 @@ class K8sHelmConnector(K8sHelmBaseConnector):
 
         scale_str = self._params_to_set_option(scale_dict)
 
-        command = (
-            "env KUBECONFIG={kubeconfig} {helm} upgrade {atomic} --output yaml {scale} {timeout} {name} {model} {ver}"
-        ).format(
-            helm=self._helm_command,
-            name=kdu_instance,
-            atomic=atomic_str,
-            scale=scale_str,
-            timeout=timeout_str,
-            model=kdu_model,
-            ver=version_str,
+        return self._get_upgrade_command(
+            kdu_model=kdu_model,
+            kdu_instance=kdu_instance,
+            namespace=namespace,
+            params_str=scale_str,
+            version=version,
+            atomic=atomic,
+            timeout=timeout,
             kubeconfig=kubeconfig,
         )
-        return command
 
     def _get_upgrade_command(
         self,
@@ -702,6 +703,22 @@ class K8sHelmConnector(K8sHelmBaseConnector):
         timeout,
         kubeconfig,
     ) -> str:
+        """Generates the command to upgrade a Helm Chart release
+
+        Args:
+            kdu_model (str): Kdu model name, corresponding to the Helm local location or repository
+            kdu_instance (str): KDU instance, corresponding to the Helm Chart release in question
+            namespace (str): Namespace where this KDU instance is deployed
+            params_str (str): Params used to upgrade the Helm Chart release
+            version (str): Constraint with specific version of the Chart to use
+            atomic (bool): If set, upgrade process rolls back changes made in case of failed upgrade.
+                The --wait flag will be set automatically if --atomic is used
+            timeout (float): The time, in seconds, to wait
+            kubeconfig (str): Kubeconfig file path
+
+        Returns:
+            str: command to upgrade a Helm Chart release
+        """
 
         timeout_str = ""
         if timeout:
@@ -718,7 +735,8 @@ class K8sHelmConnector(K8sHelmBaseConnector):
             version_str = "--version {}".format(version)
 
         command = (
-            "env KUBECONFIG={kubeconfig} {helm} upgrade {atomic} --output yaml {params} {timeout} {name} {model} {ver}"
+            "env KUBECONFIG={kubeconfig} {helm} upgrade {atomic} --output yaml {params} {timeout} "
+            "--reuse-values {name} {model} {ver}"
         ).format(
             kubeconfig=kubeconfig,
             helm=self._helm_command,