174 lines
7.6 KiB
Text
174 lines
7.6 KiB
Text
digraph DetailedComponentDependencies {
|
|
rankdir=LR;
|
|
node [shape=box, style=rounded];
|
|
|
|
// Infrastructure Services
|
|
subgraph cluster_chainfire {
|
|
label="ChainFire (Distributed KV Store)";
|
|
style=dashed;
|
|
|
|
CF_Server [label="chainfire-server", fillcolor="#e1f5ff", style="filled"];
|
|
CF_Client [label="chainfire-client", fillcolor="#e1f5ff", style="filled"];
|
|
CF_Raft [label="chainfire-raft", fillcolor="#e1f5ff", style="filled"];
|
|
CF_Storage [label="chainfire-storage\n(RocksDB)", fillcolor="#e1f5ff", style="filled"];
|
|
|
|
CF_Server -> CF_Raft;
|
|
CF_Server -> CF_Storage;
|
|
CF_Client -> CF_Server [style=dashed, label="gRPC"];
|
|
}
|
|
|
|
subgraph cluster_flaredb {
|
|
label="FlareDB (Multi-Model Database\nFoundationDB-like)";
|
|
style=dashed;
|
|
|
|
FD_Server [label="flaredb-server", fillcolor="#e1f5ff", style="filled"];
|
|
FD_Client [label="flaredb-client", fillcolor="#e1f5ff", style="filled"];
|
|
FD_Raft [label="flaredb-raft\n(openraft)", fillcolor="#e1f5ff", style="filled"];
|
|
FD_Storage [label="flaredb-storage\n(RocksDB)\nKV Store Base", fillcolor="#e1f5ff", style="filled"];
|
|
FD_KV [label="KV APIs\n(Raw, CAS)", fillcolor="#e1f5ff", style="filled"];
|
|
FD_SQL [label="SQL Layer\n(sql-service)", fillcolor="#e1f5ff", style="filled"];
|
|
|
|
FD_Server -> FD_Raft;
|
|
FD_Server -> FD_Storage;
|
|
FD_Server -> FD_KV;
|
|
FD_Server -> FD_SQL;
|
|
FD_KV -> FD_Storage;
|
|
FD_SQL -> FD_Storage;
|
|
FD_Client -> FD_Server [style=dashed, label="gRPC"];
|
|
FD_Server -> CF_Client [style=dashed, label="uses"];
|
|
}
|
|
|
|
// Platform Services
|
|
subgraph cluster_iam {
|
|
label="IAM (Identity & Access)";
|
|
style=dashed;
|
|
|
|
IAM_Server [label="iam-server", fillcolor="#fff4e1", style="filled"];
|
|
IAM_Client [label="iam-client", fillcolor="#fff4e1", style="filled"];
|
|
IAM_Store [label="iam-store", fillcolor="#fff4e1", style="filled"];
|
|
|
|
IAM_Server -> IAM_Store;
|
|
IAM_Server -> CF_Client [style=dashed];
|
|
IAM_Server -> FD_Client [style=dashed];
|
|
IAM_Client -> IAM_Server [style=dashed, label="gRPC"];
|
|
}
|
|
|
|
subgraph cluster_deployer {
|
|
label="Deployer (Provisioning)";
|
|
style=dashed;
|
|
|
|
DEP_Server [label="deployer-server", fillcolor="#fff4e1", style="filled"];
|
|
DEP_Types [label="deployer-types", fillcolor="#fff4e1", style="filled"];
|
|
|
|
DEP_Server -> DEP_Types;
|
|
DEP_Server -> CF_Client [style=dashed, label="storage"];
|
|
}
|
|
|
|
// Application Services
|
|
subgraph cluster_plasmavmc {
|
|
label="PlasmaVMC (VM Control)";
|
|
style=dashed;
|
|
|
|
PVMC_Server [label="plasmavmc-server", fillcolor="#e8f5e9", style="filled"];
|
|
PVMC_Hypervisor [label="plasmavmc-hypervisor", fillcolor="#e8f5e9", style="filled"];
|
|
PVMC_KVM [label="plasmavmc-kvm", fillcolor="#e8f5e9", style="filled"];
|
|
PVMC_FC [label="plasmavmc-firecracker", fillcolor="#e8f5e9", style="filled"];
|
|
|
|
PVMC_Server -> PVMC_Hypervisor;
|
|
PVMC_Hypervisor -> PVMC_KVM;
|
|
PVMC_Hypervisor -> PVMC_FC;
|
|
PVMC_Server -> CF_Client [style=dashed];
|
|
PVMC_Server -> FD_Client [style=dashed];
|
|
PVMC_Server -> IAM_Client [style=dashed];
|
|
}
|
|
|
|
subgraph cluster_prismnet {
|
|
label="PrismNET (SDN Controller)";
|
|
style=dashed;
|
|
|
|
PN_Server [label="prismnet-server", fillcolor="#e8f5e9", style="filled"];
|
|
PN_API [label="prismnet-api", fillcolor="#e8f5e9", style="filled"];
|
|
|
|
PN_Server -> PN_API;
|
|
PN_Server -> CF_Client [style=dashed];
|
|
}
|
|
|
|
subgraph cluster_k8shost {
|
|
label="K8sHost (K8s-like)";
|
|
style=dashed;
|
|
|
|
K8S_Server [label="k8shost-server", fillcolor="#e8f5e9", style="filled"];
|
|
K8S_Controllers [label="k8shost-controllers", fillcolor="#e8f5e9", style="filled"];
|
|
K8S_CNI [label="k8shost-cni", fillcolor="#e8f5e9", style="filled"];
|
|
K8S_CSI [label="k8shost-csi", fillcolor="#e8f5e9", style="filled"];
|
|
|
|
K8S_Server -> K8S_Controllers;
|
|
K8S_Server -> K8S_CNI;
|
|
K8S_Server -> K8S_CSI;
|
|
K8S_Server -> FD_Client [style=dashed];
|
|
K8S_Server -> IAM_Client [style=dashed];
|
|
K8S_Server -> PN_API [style=dashed];
|
|
}
|
|
|
|
subgraph cluster_other_apps {
|
|
label="Other Application Services";
|
|
style=dashed;
|
|
|
|
FlashDNS_Server [label="flashdns-server", fillcolor="#e8f5e9", style="filled"];
|
|
FiberLB_Server [label="fiberlb-server", fillcolor="#e8f5e9", style="filled"];
|
|
APIGateway_Server [label="apigateway-server", fillcolor="#e8f5e9", style="filled"];
|
|
LightningStor_Server [label="lightningstor-server", fillcolor="#e8f5e9", style="filled"];
|
|
NightLight_Server [label="nightlight-server", fillcolor="#e8f5e9", style="filled"];
|
|
CreditService_Server [label="creditservice-server", fillcolor="#e8f5e9", style="filled"];
|
|
|
|
FlashDNS_Server -> CF_Client [style=dashed];
|
|
FlashDNS_Server -> FD_Client [style=dashed];
|
|
FiberLB_Server -> CF_Client [style=dashed];
|
|
FiberLB_Server -> FD_Client [style=dashed];
|
|
APIGateway_Server -> FiberLB_Server [style=dashed, label="fronted by"];
|
|
APIGateway_Server -> IAM_Client [style=dashed, label="auth"];
|
|
APIGateway_Server -> CreditService_Server [style=dashed, label="billing"];
|
|
LightningStor_Server -> CF_Client [style=dashed];
|
|
LightningStor_Server -> FD_Client [style=dashed];
|
|
CreditService_Server -> CF_Client [style=dashed];
|
|
}
|
|
|
|
// Deployment Components
|
|
subgraph cluster_nixos {
|
|
label="NixOS Deployment";
|
|
style=dashed;
|
|
|
|
NixModules [label="NixOS Modules\n(nix/modules/)", fillcolor="#f3e5f5", style="filled"];
|
|
Netboot [label="Netboot Images\n(nix/images/)", fillcolor="#f3e5f5", style="filled"];
|
|
ISO [label="Bootstrap ISO\n(nix/iso/)", fillcolor="#f3e5f5", style="filled"];
|
|
FirstBoot [label="First-Boot Automation\n(first-boot-automation.nix)", fillcolor="#f3e5f5", style="filled"];
|
|
ClusterConfig [label="Cluster Config\n(plasmacloud-cluster.nix)", fillcolor="#f3e5f5", style="filled"];
|
|
NixNOS_Topo [label="Nix-NOS Topology\n(nix-nos/topology.nix)", fillcolor="#f3e5f5", style="filled"];
|
|
|
|
Netboot -> NixModules;
|
|
ISO -> NixModules;
|
|
ISO -> DEP_Server [style=dashed, label="phone-home"];
|
|
FirstBoot -> NixModules;
|
|
FirstBoot -> CF_Server [style=dashed, label="cluster-join"];
|
|
FirstBoot -> FD_Server [style=dashed, label="cluster-join"];
|
|
ClusterConfig -> NixModules;
|
|
NixNOS_Topo -> ClusterConfig;
|
|
}
|
|
|
|
// Service dependencies (runtime)
|
|
FD_Server -> CF_Server [label="systemd:after", color=red, style=dotted];
|
|
IAM_Server -> FD_Server [label="systemd:after", color=red, style=dotted];
|
|
PVMC_Server -> CF_Server [label="systemd:requires", color=red, style=dotted];
|
|
PVMC_Server -> FD_Server [label="systemd:requires", color=red, style=dotted];
|
|
PVMC_Server -> IAM_Server [label="systemd:requires", color=red, style=dotted];
|
|
K8S_Server -> IAM_Server [label="systemd:requires", color=red, style=dotted];
|
|
K8S_Server -> FD_Server [label="systemd:requires", color=red, style=dotted];
|
|
K8S_Server -> PN_Server [label="systemd:requires", color=red, style=dotted];
|
|
|
|
// Application integrations
|
|
PVMC_Server -> PN_API [style=dashed, label="networking", color=orange];
|
|
K8S_Server -> PN_API [style=dashed, label="CNI", color=orange];
|
|
|
|
// Styling
|
|
edge [color=blue];
|
|
}
|