kosmos-specs/specs/mitaka/sysarch/sysarch-diagram.dot

114 lines
3.0 KiB
Plaintext

digraph "Kosmos"{
rankdir=TB
node [ fontname="sans-serif"fontsize=10 ];
edge [ fontname="sans-serif"fontsize=10 ];
label="Kosmos System Overview";
overlap="ortho";
fontname="sans-serif"
newrank=true
subgraph cluster_keystone {
fontname="sans-serif"
label="Keystone";
fontsize=12
style="dashed"
Keystone[label="Keystone API", style="dotted"];
}
subgraph cluster_api_service {
fontname="sans-serif"
label="API Service";
fontsize=12
WSGI[label="WSGI API"];
}
subgraph cluster_conductor_service {
fontname="sans-serif"
label="Conductor Service";
fontsize=12
Conductor[label="Conductor"];
Database[label="Database", shape="folder"];
Logger[label="Logger", shape="folder"];
}
subgraph cluster_engine_service {
fontname="sans-serif"
label="Engine Service";
fontsize=12
node[shape=record];
Engine[label="<f0> Engine|<f1> GSLB Plugin Interface |<f2> Status Check Consumer"];
PluginDriver[label="GSLB Plugin Driver", shape="component"]
}
subgraph cluster_gslb_appliance {
fontname="sans-serif"
fontsize=12
label="GSLB Appliance";
style="dashed"
Applicance[label="GSLB Traffic Director", style="dotted"];
ApplicanceAPI[label="GSLB Appliance API", style="dotted"];
}
subgraph cluster_status_checks {
fontname="sans-serif"
fontsize=12
label="Status Check Service";
Worker[label="Status Checking Worker"];
node[shape=record];
Checks[label="<f0> Build In Checks Interface |<f1> GSLB Plugin Checks Interface"];
BuiltInChecks[label="Built In Status Checks"]
PluginChecks[label="Plugin Status Checks", shape="component"]
}
subgraph cluster_endpoints {
fontname="sans-serif"
fontsize=12
label="Endpoints";
style="dashed"
Endpoint1[label="Endpoint", style="dotted"];
Endpoint2[label="Endpoint", style="dotted"];
Endpoint3[label="Endpoint", style="dotted"];
LBaaSAPI[label="LBaaS Status API", style="dotted"];
}
AdminUser[label="GSLB User", style="dashed"];
AdminUser -> WSGI [dir="both"];
Keystone -> WSGI [dir="both"];
WSGI -> Conductor:f0 [dir="both"];
Conductor -> Database [dir="both"];
Engine:f0 -> Conductor [dir="both"];
Engine:f1 -> PluginDriver [dir="both"];
PluginDriver -> ApplicanceAPI [dir="both"];
Applicance -> ApplicanceAPI [dir="both"];
Worker -> Engine:f2;
Worker -> Checks [dir="both"];
Checks:f0 -> BuiltInChecks [dir="both"];
Checks:f1 -> PluginChecks [dir="both"];
BuiltInChecks -> {Endpoint1; Endpoint2; Endpoint3; LBaaSAPI} [dir="both"];
LBaaSAPI -> {Endpoint1; Endpoint2; Endpoint3}
PluginChecks -> {Endpoint1; Endpoint2; Endpoint3} [dir="both"];
EndUser[label="End User", style="dashed"];
EndUser -> Applicance
EndUser -> {Endpoint1; Endpoint2; Endpoint3}
}