131 lines
6.2 KiB
Text
131 lines
6.2 KiB
Text
digraph ComponentDependencies {
|
|
rankdir=TB;
|
|
node [shape=box, style=rounded];
|
|
|
|
// Infrastructure Layer (Base Services)
|
|
subgraph cluster_infra {
|
|
label="Infrastructure Layer";
|
|
style=dashed;
|
|
|
|
ChainFire [fillcolor="#e1f5ff", style="filled,rounded"];
|
|
FlareDB [fillcolor="#e1f5ff", style="filled,rounded"];
|
|
}
|
|
|
|
// Platform Layer
|
|
subgraph cluster_platform {
|
|
label="Platform Layer";
|
|
style=dashed;
|
|
|
|
IAM [fillcolor="#fff4e1", style="filled,rounded"];
|
|
Deployer [fillcolor="#fff4e1", style="filled,rounded"];
|
|
}
|
|
|
|
// Application Layer
|
|
subgraph cluster_app {
|
|
label="Application Layer";
|
|
style=dashed;
|
|
|
|
PlasmaVMC [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
PrismNET [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
FlashDNS [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
FiberLB [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
APIGateway [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
LightningStor [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
NightLight [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
CreditService [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
K8sHost [fillcolor="#e8f5e9", style="filled,rounded"];
|
|
}
|
|
|
|
// Deployment Layer
|
|
subgraph cluster_deploy {
|
|
label="Deployment Layer";
|
|
style=dashed;
|
|
|
|
NixOSModules [fillcolor="#f3e5f5", style="filled,rounded"];
|
|
NetbootImages [fillcolor="#f3e5f5", style="filled,rounded"];
|
|
BootstrapISO [fillcolor="#f3e5f5", style="filled,rounded"];
|
|
FirstBootAutomation [fillcolor="#f3e5f5", style="filled,rounded"];
|
|
NixNOS [fillcolor="#f3e5f5", style="filled,rounded"];
|
|
}
|
|
|
|
// Infrastructure dependencies
|
|
FlareDB -> ChainFire [label="requires", color=blue];
|
|
|
|
// Platform dependencies
|
|
IAM -> FlareDB [label="uses", color=blue];
|
|
IAM -> ChainFire [label="uses", color=blue, style=dashed];
|
|
Deployer -> ChainFire [label="storage", color=blue];
|
|
|
|
// Application dependencies on Infrastructure
|
|
PlasmaVMC -> ChainFire [label="uses", color=blue, style=dashed];
|
|
PlasmaVMC -> FlareDB [label="uses", color=blue, style=dashed];
|
|
PrismNET -> ChainFire [label="uses", color=blue, style=dashed];
|
|
FlashDNS -> ChainFire [label="uses", color=blue, style=dashed];
|
|
FlashDNS -> FlareDB [label="uses", color=blue, style=dashed];
|
|
FiberLB -> ChainFire [label="uses", color=blue, style=dashed];
|
|
FiberLB -> FlareDB [label="uses", color=blue, style=dashed];
|
|
LightningStor -> ChainFire [label="uses", color=blue, style=dashed];
|
|
LightningStor -> FlareDB [label="uses", color=blue, style=dashed];
|
|
CreditService -> ChainFire [label="uses", color=blue];
|
|
K8sHost -> FlareDB [label="uses", color=blue];
|
|
K8sHost -> ChainFire [label="uses", color=blue, style=dashed];
|
|
|
|
// Application dependencies on Platform
|
|
PlasmaVMC -> IAM [label="auth", color=orange];
|
|
PlasmaVMC -> CreditService [label="billing", color=orange, style=dashed];
|
|
PlasmaVMC -> PrismNET [label="networking", color=orange];
|
|
K8sHost -> IAM [label="auth", color=orange];
|
|
K8sHost -> CreditService [label="billing", color=orange, style=dashed];
|
|
K8sHost -> PrismNET [label="CNI", color=orange];
|
|
K8sHost -> FiberLB [label="ingress", color=orange, style=dashed];
|
|
K8sHost -> FlashDNS [label="DNS", color=orange, style=dashed];
|
|
APIGateway -> FiberLB [label="fronted by", color=orange, style=dashed];
|
|
APIGateway -> IAM [label="auth", color=orange, style=dashed];
|
|
APIGateway -> CreditService [label="billing", color=orange, style=dashed];
|
|
|
|
// Deployment dependencies
|
|
NixOSModules -> ChainFire [label="module", color=purple, style=dotted];
|
|
NixOSModules -> FlareDB [label="module", color=purple, style=dotted];
|
|
NixOSModules -> IAM [label="module", color=purple, style=dotted];
|
|
NixOSModules -> PlasmaVMC [label="module", color=purple, style=dotted];
|
|
NixOSModules -> PrismNET [label="module", color=purple, style=dotted];
|
|
NixOSModules -> FlashDNS [label="module", color=purple, style=dotted];
|
|
NixOSModules -> FiberLB [label="module", color=purple, style=dotted];
|
|
NixOSModules -> APIGateway [label="module", color=purple, style=dotted];
|
|
NixOSModules -> LightningStor [label="module", color=purple, style=dotted];
|
|
NixOSModules -> NightLight [label="module", color=purple, style=dotted];
|
|
NixOSModules -> CreditService [label="module", color=purple, style=dotted];
|
|
NixOSModules -> K8sHost [label="module", color=purple, style=dotted];
|
|
|
|
NetbootImages -> NixOSModules [label="uses", color=purple];
|
|
BootstrapISO -> NixOSModules [label="uses", color=purple];
|
|
BootstrapISO -> Deployer [label="phone-home", color=purple];
|
|
FirstBootAutomation -> ChainFire [label="cluster-join", color=purple];
|
|
FirstBootAutomation -> FlareDB [label="cluster-join", color=purple];
|
|
FirstBootAutomation -> IAM [label="initial-setup", color=purple];
|
|
FirstBootAutomation -> NixOSModules [label="uses", color=purple];
|
|
NixNOS -> NixOSModules [label="generates", color=purple];
|
|
NixNOS -> FirstBootAutomation [label="config", color=purple];
|
|
|
|
// Systemd dependencies (runtime)
|
|
FlareDB -> ChainFire [label="systemd:after", color=red, style=dashed];
|
|
IAM -> FlareDB [label="systemd:after", color=red, style=dashed];
|
|
PlasmaVMC -> ChainFire [label="systemd:requires", color=red, style=dashed];
|
|
PlasmaVMC -> FlareDB [label="systemd:requires", color=red, style=dashed];
|
|
PlasmaVMC -> IAM [label="systemd:requires", color=red, style=dashed];
|
|
CreditService -> ChainFire [label="systemd:wants", color=red, style=dashed];
|
|
K8sHost -> IAM [label="systemd:requires", color=red, style=dashed];
|
|
K8sHost -> FlareDB [label="systemd:requires", color=red, style=dashed];
|
|
K8sHost -> PrismNET [label="systemd:requires", color=red, style=dashed];
|
|
|
|
// Legend
|
|
subgraph cluster_legend {
|
|
label="Legend";
|
|
style=invis;
|
|
|
|
L1 [label="Runtime Dependency", color=blue, style=invis];
|
|
L2 [label="Service Integration", color=orange, style=invis];
|
|
L3 [label="Deployment/Config", color=purple, style=invis];
|
|
L4 [label="Systemd Order", color=red, style=invis];
|
|
}
|
|
}
|