ungleich-graphviz/cdn-maintenance.dot

67 lines
1.9 KiB
Plaintext

digraph G {
node [ shape=box ]
rankdir=LR;
label="CDN maintenance"
subgraph cluster_outsideuser {
label="Customer/Users"
customer [ label="Customer" ]
users [ label="Users" ]
}
subgraph cluster_user {
label="Staff"
devops [ label="DevOps" ]
developer [ label="Developer" ]
networking [ label="Network Engineer" ]
support [ label="Support Staff" ]
}
{customer,users}->support [ color=red ]
subgraph cluster_origin {
label="Origin DC"
origin [ label="Origin Node\nServing example.com" ]
}
customer->origin [ color=red ]
subgraph cluster_homedc {
label="HomeDC"
kubemaster [ label="Kubernetes master nodes" ]
kubeworker [ label="Kubernetes worker nodes" ]
vpn [ label="VPN endpoint" ]
subgraph cluster_kubernetes {
label="Kubernetes Workload"
api [ label="Tenant/OpsAPI" ]
ui [ label="User Interface\nPost MVP" ]
db [ label="Database" ]
promhome [ label="Prometheus" ]
grafana [ label="Grafana" ]
}
}
developer->{kubemaster,kubeworker,api} [ color=green ]
devops->{kubemaster,kubeworker,api} [ color=blue ]
devops->{db,promhome,grafana} [ color=blue ]
support->grafana [ color=pink ]
subgraph cluster_pops {
label="PoP"
servicenode [ label="Service Node" ]
edgenode [ label="Edge nodes" ]
delivery [ label="Delivery API" ]
prompop [ label="Prometheus" ]
switches [ label="Switches" ]
isp [ label="ISP/Upstream" ]
vpnpop [ label="VPN endpoint" ]
}
devops->{delivery, servicenode} [ color=blue ]
developer->{delivery, servicenode} [ color=green ]
devops->{edgenode,prompop} [ color=blue ]
networking->{vpn, vpnpop, switches, isp, edgenode} [ color=purple ]
}