70 lines
2.4 KiB
Plaintext
70 lines
2.4 KiB
Plaintext
|
@startuml
|
||
|
hide empty description
|
||
|
|
||
|
state "./cryptic-net daemon -c ./daemon.yml" as init
|
||
|
|
||
|
state AppDir {
|
||
|
|
||
|
note "All relative paths are relative to the root of the AppDir" as N1
|
||
|
|
||
|
state "./AppRun" as AppRun {
|
||
|
AppRun : * Set PATH to APPDIR/bin
|
||
|
}
|
||
|
|
||
|
state "./bin/entrypoint" as entrypoint {
|
||
|
entrypoint : * Merge given and default daemon.yml files
|
||
|
entrypoint : * Create runtime dir at $_RUNTIME_DIR_PATH
|
||
|
entrypoint : * Lock runtime dir
|
||
|
entrypoint : * Run child processes
|
||
|
}
|
||
|
|
||
|
init --> AppRun : exec
|
||
|
AppRun --> entrypoint : exec
|
||
|
|
||
|
state "./bin/dnsmasq-entrypoint" as dnsmasqEntrypoint {
|
||
|
dnsmasqEntrypoint : * Create $_RUNTIME_DIR_PATH/dnsmasq.conf
|
||
|
}
|
||
|
|
||
|
state "./bin/dnsmasq -d -C $_RUNTIME_DIR_PATH/dnsmasq.conf" as dnsmasq
|
||
|
|
||
|
entrypoint --> dnsmasqEntrypoint : child
|
||
|
dnsmasqEntrypoint --> dnsmasq : exec
|
||
|
|
||
|
state "./bin/nebula-entrypoint" as nebulaEntrypoint {
|
||
|
nebulaEntrypoint : * Create $_RUNTIME_DIR_PATH/nebula.yml
|
||
|
}
|
||
|
|
||
|
state "./bin/nebula -config $_RUNTIME_DIR_PATH/nebula.yml" as nebula
|
||
|
state "./bin/nebula-update-global-bucket" as nebulaUpdateGlobalBucket {
|
||
|
nebulaUpdateGlobalBucket : * Runs once then exits
|
||
|
nebulaUpdateGlobalBucket : * Updates network topo data in garage global bucket (used for bootstrapping)
|
||
|
}
|
||
|
|
||
|
entrypoint --> nebulaEntrypoint : child
|
||
|
nebulaEntrypoint --> nebula : exec
|
||
|
nebulaEntrypoint --> nebulaUpdateGlobalBucket : child
|
||
|
|
||
|
state "./bin/garage-entrypoint" as garageEntrypoint {
|
||
|
garageEntrypoint : * Create $_RUNTIME_DIR_PATH/garage-N.toml\n (one per storage allocation)
|
||
|
garageEntrypoint : * Run child processes
|
||
|
}
|
||
|
|
||
|
state "./bin/garage -c $_RUNTIME_DIR_PATH/garage-N.toml server" as garage
|
||
|
state "./bin/garage-apply-layout-diff" as garageApplyLayoutDiff {
|
||
|
garageApplyLayoutDiff : * Runs once then exits
|
||
|
garageApplyLayoutDiff : * Updates cluster topo
|
||
|
}
|
||
|
state "./bin/garage-update-global-bucket" as garageUpdateGlobalBucket {
|
||
|
garageUpdateGlobalBucket : * Runs once then exits
|
||
|
garageUpdateGlobalBucket : * Updates cluster topo data in garage global bucket (used for bootstrapping)
|
||
|
}
|
||
|
|
||
|
entrypoint --> garageEntrypoint : child (only if >1 storage allocation defined in daemon.yml)
|
||
|
garageEntrypoint --> garage : child (one per storage allocation)
|
||
|
garageEntrypoint --> garageApplyLayoutDiff : child
|
||
|
garageEntrypoint --> garageUpdateGlobalBucket : child
|
||
|
}
|
||
|
|
||
|
@enduml
|
||
|
|