b35a3d6574
There has been over 1 year of commit history leading up to this point, but almost all of that has had some kind network configuration or secrets built into the code. As of today all of that has been removed, and the codebase can finally be published! I am keeping a private copy of the previous commit history, though it's unclear if it will ever be able to be published.
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
|
|
|