diff --git a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/util/KubevirtNodeUtil.java b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/util/KubevirtNodeUtil.java
index 46a5ea5..f857364 100644
--- a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/util/KubevirtNodeUtil.java
+++ b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/util/KubevirtNodeUtil.java
@@ -318,6 +318,36 @@
     }
 
     /**
+     * Returns the type of the given kubernetes node.
+     *
+     * @param node kubernetes node
+     * @return node type
+     */
+    public static KubevirtNode.Type getNodeType(Node node) {
+        Set<String> rolesFull = node.getMetadata().getLabels().keySet().stream()
+                .filter(l -> l.contains(K8S_ROLE))
+                .collect(Collectors.toSet());
+
+        KubevirtNode.Type nodeType = WORKER;
+
+        for (String roleStr : rolesFull) {
+            String role = roleStr.split("/")[1];
+            if (MASTER.name().equalsIgnoreCase(role)) {
+                nodeType = MASTER;
+                break;
+            }
+        }
+
+        Map<String, String> annots = node.getMetadata().getAnnotations();
+        String gatewayConfig = annots.get(GATEWAY_CONFIG_KEY);
+        if (gatewayConfig != null) {
+            nodeType = GATEWAY;
+        }
+
+        return nodeType;
+    }
+
+    /**
      * Returns the kubevirt node from the node.
      *
      * @param node a raw node object returned from a k8s client
