Added k0rdent release info in the HTML report
Related-PROD: K0RQA-20
Change-Id: If86faee9cbbff5691bea1fb42f5dcfac1b08a70d
diff --git a/cfg_checker/common/kube_utils.py b/cfg_checker/common/kube_utils.py
index e6b9922..36efcaa 100644
--- a/cfg_checker/common/kube_utils.py
+++ b/cfg_checker/common/kube_utils.py
@@ -295,6 +295,24 @@
w.stop()
return
+ def get_k0rdent_release(self, mgmt_name="kcm"):
+ group = "k0rdent.mirantis.com"
+ version = "v1beta1"
+ plural = "managements"
+
+ try:
+ mgmt_list = self.get_custom_resource(group, version, plural) or {}
+ for item in mgmt_list.get("items", []):
+ name = item.get("metadata", {}).get("name", "").lower()
+ if name == mgmt_name.lower():
+ return item.get("status", {}).get("release", "Unknown")
+ logger.warning(
+ f"Management object '{mgmt_name}' not found in CR list.")
+ except Exception as e:
+ logger.warning(
+ f"Failed to get the k0rdent release from the '{mgmt_name}' mgmt CRD: {e}")
+ return "Unknown"
+
def get_node_info(self, http=False):
# Query API for the nodes and do some presorting
_nodes = {}
diff --git a/cfg_checker/modules/network/checker.py b/cfg_checker/modules/network/checker.py
index ee28e25..b212845 100644
--- a/cfg_checker/modules/network/checker.py
+++ b/cfg_checker/modules/network/checker.py
@@ -114,8 +114,7 @@
"domain": self.mapper.domain,
"nodes": self.mapper.nodes,
"map": self.mapper.map,
- "mcp_release": self.mapper.cluster['mcp_release'],
- "openstack_release": self.mapper.cluster['openstack_release']
+ "k0rdent_release": self.mapper.cluster['k0rdent_release']
}
)
logger_cli.info("-> Done")
diff --git a/cfg_checker/nodes.py b/cfg_checker/nodes.py
index 7da09f4..eb2ebd8 100644
--- a/cfg_checker/nodes.py
+++ b/cfg_checker/nodes.py
@@ -101,8 +101,9 @@
def get_info(self):
_info = {
- 'mcp_release': self.mcp_release,
- 'openstack_release': self.openstack_release
+ 'mcp_release': self.mcp_release,
+ 'openstack_release': self.openstack_release,
+ 'k0rdent_release': self.kube.get_k0rdent_release()
}
return _info
@@ -541,6 +542,11 @@
_source
)
+ def get_k0rdent_release(self):
+ logger_cli.debug("... get k0rdent release")
+ self.k0rdent_release = self.kube.get_k0rdent_release()
+ return self.k0rdent_release
+
def gather_node_info(self, skip_list, skip_list_file):
# Gather nodes info and query pod lists for each node
logger_cli.debug("... collecting node names existing in the cloud")