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")
diff --git a/templates/network_check_tmpl.j2 b/templates/network_check_tmpl.j2
index bb3c19e..d45f55d 100644
--- a/templates/network_check_tmpl.j2
+++ b/templates/network_check_tmpl.j2
@@ -250,10 +250,8 @@
 <body onload="init()">
 
 <div class="header">
-    <div class="label">OpenStack release:</div>
-    <div class="text">{{ openstack_release }}</div>
-    <div class="label">MCP Version:</div>
-    <div class="text">{{ mcp_release }}</div>
+    <div class="label">k0rdent release:</div>
+    <div class="text">{{ k0rdent_release }}</div>
     <div class="label">RAM % Warning/Critical:</div>
     <div class="text">{{ const['ram_warn'] }}/{{ const['ram_critical'] }}</div>
     <div class="label">Disk % Warning/Critical:</div>
@@ -495,7 +493,7 @@
 
 <!-- Cluster nodes page -->
 {% call nodes_page(nodes, "nodes") %}
-    Cluster nodes status and simple meterings in *.{{ domain }}
+    Cluster nodes status and simple metrics
 {% endcall %}
 
 <!-- Cluster nodes page -->
