diff --git a/README.md b/README.md index aedcb43..7dbedb9 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,31 @@ Cluster Network Graph Example: Without specific Namespace ![Cluster Network Graph Example: Without specific Namespace](readme-img/fig4.png) +VKACI can have 3 types of topologies based on the setup. +1. Baremetal: In this case the nodes are directly connected to the leaf(s) +2. Esxi5 and Nutanix: In this case, the nodes run on a hypervisor which in turn is connected to the leaf(s). The below image displays the Nutanix case +![Nutanix](readme-img/fig11.jpg) +3. Hybrid: This is a combination of baremetal & Esxi5 and Nutanix where some nodes are directly connected to the leaf(s) and some are running on a hypervisor which is connected to the leaf(s) + +The VKACI has the support of secondary links as well. It can have SRIOV and MacVlan links. For better visualization, VKACI provides three different filtered views of the topology. +1. Primary Links: These are the traditional links with which different topology nodes are connected to each other +2. SRIOV Links: These are the secondary links between the different topology nodes. It is denoted by purple lines as shown in the figure. + +![Cluster Network Graph Example: Sriov Links](readme-img/fig8.png) + +The label of the links between a node and a leaf is denoted as node-interface:leaf-interface. So, in the above example, PF-ens1f2 is a node interface and eth1/41 is a leaf interface. Similarly, the label of the links between a node and a pod is denoted as pod-interface:node-interface. So, in the above example net1 is a pod interface and VF-ens1f2v2 is a node interface. + +3. MacVlan Links: These are the secondary links between the different topology nodes and are denoted by teal coloured links as shown in the figure. + +![Cluster Network Graph Example: MacVlan Links](readme-img/fig9.png) + +The labels of the MacVlan links are displayed in the same way as are being displayed for SRIOV links. + +4. View All: This view provides the view of all the nodes and links for all namespaces or for a particular namespace. The below image shows an example of hybrid topology in the View All menu. + +![Cluster Network Graph Example: View All](readme-img/fig10.png) + +Worker2 is directly connected to to the leaf-101 and leaf-102 whereas worker1 runs on a hypervisor which is connected to the leaf(s) #### Table View The secondary view of Vkaci outlines the cluster network in different tree table configurations. diff --git a/app/template/assets/cui-2.0.0/js/vkaci.js b/app/template/assets/cui-2.0.0/js/vkaci.js index 0ed6140..dfbc49b 100644 --- a/app/template/assets/cui-2.0.0/js/vkaci.js +++ b/app/template/assets/cui-2.0.0/js/vkaci.js @@ -12,7 +12,6 @@ function neo_viz_config(showPodName, container, cypher, seed = null) { server_user: server_user, server_password: server_password, initial_cypher: cypher, - arrows: showPodName, fix_nodes_in_place_on_drag: true, layout: { improvedLayout: true, @@ -249,7 +248,7 @@ function draw_pods_and_nodes() { let q = ` MATCH (p:Pod)-[r1]->(n:Node) WHERE p.ns =~ '${selectedNamespace}' ` q += addLabelQuery(); q += `RETURN p,r1,n` - draw(q) + draw(q, true) //draw("MATCH (p:Pod)-[r]->(n2) WHERE p.ns =~ '" + selectedNamespace + "' RETURN *", true) } @@ -269,7 +268,7 @@ function draw_only_primary_links() { OPTIONAL MATCH (p1:Pod)-[r2:RUNNING_ON]->(n1:Node)-[r3:RUNNING_IN]->(v:VM_Host)-[r4:CONNECTED_TO]-(b) WHERE p1.ns =~ '${selectedNamespace}'` q += addLabelQuery(); q += `RETURN p, p1, n, n1, r, r2, r1, r3, r4, v, a, b` - draw(q) + draw(q, true) } function draw_only_sriov_links() { @@ -278,7 +277,7 @@ function draw_only_sriov_links() { OPTIONAL MATCH (p1:Pod)-[r2:RUNNING_ON_SEC]->(n1:Node)-[r3:RUNNING_IN]->(v:VM_Host)-[r4:CONNECTED_TO_SEC]->(b) WHERE p1.ns =~ '${selectedNamespace}'` q += addLabelQuery(); q += `RETURN p, p1, n, n1, r, r2, r1, r3, r4, v, a, b` - draw(q) + draw(q, true) } function draw_only_macvlan_links() { @@ -287,7 +286,7 @@ function draw_only_macvlan_links() { OPTIONAL MATCH (p1:Pod)-[r2:RUNNING_ON_TER]->(n1:Node)-[r3:RUNNING_IN]->(v:VM_Host)-[r4:CONNECTED_TO_TER]->(b) WHERE p1.ns =~ '${selectedNamespace}'` q += addLabelQuery(); q += `RETURN p, p1, n, n1, r, r2, r1, r3, r4, v, a, b` - draw(q) + draw(q, true) } diff --git a/readme-img/fig10.png b/readme-img/fig10.png new file mode 100644 index 0000000..94211b3 Binary files /dev/null and b/readme-img/fig10.png differ diff --git a/readme-img/fig11.jpg b/readme-img/fig11.jpg new file mode 100644 index 0000000..7c1a228 Binary files /dev/null and b/readme-img/fig11.jpg differ diff --git a/readme-img/fig8.png b/readme-img/fig8.png new file mode 100644 index 0000000..fc6d82d Binary files /dev/null and b/readme-img/fig8.png differ diff --git a/readme-img/fig9.png b/readme-img/fig9.png new file mode 100644 index 0000000..d0ad3f2 Binary files /dev/null and b/readme-img/fig9.png differ