From 640ff61422bc0ee3966941b93d9889ddbbd38d77 Mon Sep 17 00:00:00 2001 From: ckonstanski Date: Thu, 30 Jul 2026 18:17:14 -0600 Subject: more files --- doc/uml/middleware-stack-prod-birmingham.dot | 200 +++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 doc/uml/middleware-stack-prod-birmingham.dot (limited to 'doc/uml/middleware-stack-prod-birmingham.dot') diff --git a/doc/uml/middleware-stack-prod-birmingham.dot b/doc/uml/middleware-stack-prod-birmingham.dot new file mode 100644 index 0000000..5250381 --- /dev/null +++ b/doc/uml/middleware-stack-prod-birmingham.dot @@ -0,0 +1,200 @@ +// This is a graphviz file. To generate a diagram from this source, +// you must first install graphviz (available from homebrew). Then run +// the following command: +// +// dot -Tpng -o security_use_case_diagram.png security_use_case_diagram.dot + +digraph G { + graph [fontsize = 14, penwidth = 0, rankdir = LR]; + node [shape = "plaintext"]; + edge [color = "deepskyblue", fontsize = 9, dir = none]; + + subgraph cluster_vm { + label = "Nova instances"; + penwidth = 1; + + subgraph cluster_vmmiddleware { + label = ""; + penwidth = 0; + + subgraph cluster_vmmiddlewareapp1 { + label = "Django/icinga host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-MW-001"; + penwidth = 0; + vmmiddlewareapp1_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmmiddlewareapp2 { + label = "Django/icinga host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-MW-002"; + penwidth = 0; + vmmiddlewareapp2_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmmiddlewaredatabase1 { + label = "Database host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-001"; + penwidth = 0; + vmmiddlewaredatabase1_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmmiddlewaredatabase2 { + label = "Database host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-002"; + penwidth = 0; + vmmiddlewaredatabase2_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmmiddlewaredatabase3 { + label = "Database host 3\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-003"; + penwidth = 0; + vmmiddlewaredatabase3_icon [label = "", image = "computer.png"]; + } + } + + subgraph cluster_vmservices { + label = ""; + penwidth = 0; + + subgraph cluster_vmservices1 { + label = "ansible-queue/dns-admin host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-CM-001"; + penwidth = 0; + vmservices1_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmservices2 { + label = "ansible-queue/dns-admin host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-CM-002"; + penwidth = 0; + vmservices2_icon [label = "", image = "computer.png"]; + } + } + + subgraph cluster_vmlb { + label = ""; + penwidth = 0; + + subgraph cluster_vmlb1 { + label = "Load balancer host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-LB-001"; + penwidth = 0; + vmlb1_icon [label = "", image = "computer.png"]; + } + + subgraph cluster_vmlb2 { + label = "Load balancer host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-LB-002"; + penwidth = 0; + vmlb2_icon [label = "", image = "computer.png"]; + } + } + } + + subgraph cluster_port { + label = "Neutron ports"; + penwidth = 1; + + subgraph cluster_portmiddleware { + label = ""; + penwidth = 0; + + subgraph cluster_portmiddlewareapp1 { + label = "Django/icinga host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-MW-001\n2001:4888:a21:3102:245:29::"; + penwidth = 0; + portmiddlewareapp1_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portmiddlewareapp2 { + label = "Django/icinga host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-MW-002\n2001:4888:a21:3102:245:29:0:a"; + penwidth = 0; + portmiddlewareapp2_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portmiddlewaredatabase1 { + label = "Database host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-001\n2001:4888:a21:3102:245:29:0:1"; + penwidth = 0; + portmiddlewaredatabase1_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portmiddlewaredatabase2 { + label = "Database host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-002\n2001:4888:a21:3102:245:29:0:7"; + penwidth = 0; + portmiddlewaredatabase2_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portmiddlewaredatabase3 { + label = "Database host 3\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-003\n2001:4888:a21:3102:245:29:0:2"; + penwidth = 0; + portmiddlewaredatabase3_icon [label = "", image = "network-wired.png"]; + } + } + + subgraph cluster_portservices { + label = ""; + penwidth = 0; + + subgraph cluster_portservices1 { + label = "ansible-queue/\ndns-admin host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-CM-001\n2001:4888:a21:3102:245:29:0:b"; + penwidth = 0; + portservices1_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portservices2 { + label = "ansible-queue/\ndns-admin host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-CM-002\n2001:4888:a21:3102:245:29:0:10"; + penwidth = 0; + portservices2_icon [label = "", image = "network-wired.png"]; + } + } + + subgraph cluster_portlb { + label = ""; + penwidth = 0; + + subgraph cluster_portlb1 { + label = "Load balancer host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-LB-001\n2001:4888:a21:3102:245:29:0:11"; + penwidth = 0; + portlb1_icon [label = "", image = "network-wired.png"]; + } + + subgraph cluster_portlb2 { + label = "Load balancer host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-LB-002\n2001:4888:a21:3102:245:29:0:8"; + penwidth = 0; + portlb2_icon [label = "", image = "network-wired.png"]; + } + } + } + + subgraph cluster_volume { + label = "Cinder volumes"; + penwidth = 1; + + subgraph cluster_volumemiddleware { + label = ""; + penwidth = 0; + + subgraph cluster_volumemiddlewaredatabase1 { + label = "Database host 1\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-01"; + penwidth = 0; + volumemiddlewaredatabase1_icon [label = "", image = "drive-removable-media.png"]; + } + + subgraph cluster_volumemiddlewaredatabase2 { + label = "Database host 2\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-02"; + penwidth = 0; + volumemiddlewaredatabase2_icon [label = "", image = "drive-removable-media.png"]; + } + + subgraph cluster_volumemiddlewaredatabase3 { + label = "Database host 3\nBRHOALTBVZBvVFE-Y-WR-X-00-DB-03"; + penwidth = 0; + volumemiddlewaredatabase3_icon [label = "", image = "drive-removable-media.png"]; + } + } + } + + vmmiddlewareapp1_icon -> portmiddlewareapp1_icon; + vmmiddlewareapp2_icon -> portmiddlewareapp2_icon; + vmmiddlewaredatabase1_icon -> portmiddlewaredatabase1_icon; + vmmiddlewaredatabase2_icon -> portmiddlewaredatabase2_icon; + vmmiddlewaredatabase3_icon -> portmiddlewaredatabase3_icon; + vmservices1_icon -> portservices1_icon; + vmservices2_icon -> portservices2_icon; + vmlb1_icon -> portlb1_icon; + vmlb2_icon -> portlb2_icon; + vmmiddlewaredatabase1_icon -> volumemiddlewaredatabase1_icon; + vmmiddlewaredatabase2_icon -> volumemiddlewaredatabase2_icon; + vmmiddlewaredatabase3_icon -> volumemiddlewaredatabase3_icon; +} -- cgit v1.3