Fix Bug 2187: Optional atomic flag in helm upgrades
[osm/LCM.git] / osm_lcm / ns.py
index d267065..7b59ea8 100644 (file)
@@ -1905,6 +1905,7 @@ class NsLcm(LcmBase):
                         db_dict=db_dict,
                         config=osm_config,
                         artifact_path=artifact_path,
+                        chart_model=vca_name,
                         vca_type=vca_type,
                     )
                 else:
@@ -2181,6 +2182,8 @@ class NsLcm(LcmBase):
 
             # STEP 7 Configure metrics
             if vca_type == "helm" or vca_type == "helm-v3":
+                # TODO: review for those cases where the helm chart is a reference and
+                # is not part of the NF package
                 prometheus_jobs = await self.extract_prometheus_scrape_jobs(
                     ee_id=ee_id,
                     artifact_path=artifact_path,
@@ -5253,12 +5256,17 @@ class NsLcm(LcmBase):
                         parts = kdu_model.split(sep=":")
                         if len(parts) == 2:
                             kdu_model = parts[0]
+                    if desc_params.get("kdu_atomic_upgrade"):
+                        atomic_upgrade = desc_params.get("kdu_atomic_upgrade").lower() in ("yes", "true", "1")
+                        del desc_params["kdu_atomic_upgrade"]
+                    else:
+                        atomic_upgrade = True
 
                     detailed_status = await asyncio.wait_for(
                         self.k8scluster_map[kdu["k8scluster-type"]].upgrade(
                             cluster_uuid=kdu.get("k8scluster-uuid"),
                             kdu_instance=kdu.get("kdu-instance"),
-                            atomic=True,
+                            atomic=atomic_upgrade,
                             kdu_model=kdu_model,
                             params=desc_params,
                             db_dict=db_dict,