You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
isle/docs/dev/daemon-process-tree.svg

57 lines
11 KiB

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="622px" preserveAspectRatio="none" style="width:1266px;height:622px;background:#FFFFFF;" version="1.1" viewBox="0 0 1266 622" width="1266px" zoomAndPan="magnify"><defs/><g><!--MD5=[94d69829b8642ebae4272c0fe4460dd1]
cluster AppDir--><g id="cluster_AppDir"><path d="M19.5,110 L1240.5,110 A12.5,12.5 0 0 1 1253,122.5 L1253,131.7999 L7,131.7999 L7,122.5 A12.5,12.5 0 0 1 19.5,110 " fill="#F1F1F1" style="stroke:#F1F1F1;stroke-width:1.0;"/><rect fill="none" height="506" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="1246" x="7" y="110"/><line style="stroke:#181818;stroke-width:0.5;" x1="7" x2="1253" y1="131.7999" y2="131.7999"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="43" x="608.5" y="127.9999">AppDir</text></g><g id="elem_N1"><path d="M831,157.5 L831,183.1 L1147,183.1 L1147,167.5 L1137,157.5 L831,157.5 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M1137,157.5 L1137,167.5 L1147,167.5 L1137,157.5 " fill="#FEFFDD" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="295" x="837" y="175.5">All relative paths are relative to the root of the AppDir</text></g><rect fill="#F1F1F1" height="40" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="386" x="23" y="560"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="376" x="28" y="585.6">./bin/dnsmasq -d -C $_RUNTIME_DIR_PATH/dnsmasq.conf</text><rect fill="#F1F1F1" height="40" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="361" x="444.5" y="560"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="351" x="449.5" y="585.6">./bin/nebula -config $_RUNTIME_DIR_PATH/nebula.yml</text><rect fill="#F1F1F1" height="40" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="396" x="841" y="560"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="386" x="846" y="585.6">./bin/garage -c $_RUNTIME_DIR_PATH/garage-N.toml server</text><g id="AppDir.AppRun"><rect fill="#F1F1F1" height="51.2" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="163" x="543.5" y="145"/><line style="stroke:#181818;stroke-width:0.5;" x1="543.5" x2="706.5" y1="171.7999" y2="171.7999"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59" x="595.5" y="163.9999">./AppRun</text><ellipse cx="554" cy="183.7" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="131" x="560.5" y="188.8">Set PATH to APPDIR/bin</text></g><g id="AppDir.entrypoint"><rect fill="#F1F1F1" height="209.6011" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="346" x="452" y="273"/><line style="stroke:#181818;stroke-width:0.5;" x1="452" x2="798" y1="299.7999" y2="299.7999"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="247" x="501.5" y="291.9999">./bin/entrypoint daemon -c ./daemon.yml</text><ellipse cx="462.5" cy="311.7" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="246" x="469" y="316.8">Create runtime dir at $_RUNTIME_DIR_PATH</text><ellipse cx="462.5" cy="326.1001" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="83" x="469" y="331.2001">Lock runtime dir</text><ellipse cx="462.5" cy="340.5002" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="216" x="469" y="345.6002">Merge given and default daemon.yml files</text><ellipse cx="462.5" cy="354.9003" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="314" x="469" y="360.0003">Copy bootstrap.yml into $_DATA_DIR_PATH, if it's not there</text>
link init to AppRun--><g id="link_init_AppRun"><path d="M625,47.38 C625,70.78 625,110.46 625,138.22 " fill="none" id="init-to-AppRun" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="625,143.14,629,134.14,625,138.14,621,134.14,625,143.14" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="27" x="626" y="91">exec</text></g><!--MD5=[973be3d7ea581194d5ee3fc39a24a200]
link AppRun to entrypoint--><g id="link_AppRun_entrypoint"><path d="M625,196.29 C625,214.27 625,239.99 625,266.41 " fill="none" id="AppRun-to-entrypoint" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="625,271.26,629,262.26,625,266.26,621,262.26,625,271.26" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="27" x="626" y="240">exec</text></g><!--MD5=[e434b5382339aa93f4b4af3863d5866f]
link entrypoint to dnsmasq--><g id="link_entrypoint_dnsmasq"><path d="M451.55,463.82 C382.02,497.82 307.59,534.21 261.42,556.79 " fill="none" id="entrypoint-to-dnsmasq" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="257.01,558.94,266.8518,558.5683,261.4992,556.7383,263.3291,551.3856,257.01,558.94" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="27" x="349" y="527">child</text></g><!--MD5=[2ec7f39cf7359814e08342510a2551d7]
link entrypoint to nebula--><g id="link_entrypoint_nebula"><path d="M625,483.39 C625,509.54 625,535.29 625,553.47 " fill="none" id="entrypoint-to-nebula" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="625,558.29,629,549.29,625,553.29,621,549.29,625,558.29" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="27" x="626" y="527">child</text></g><!--MD5=[dfc682edd6f75b156d1c4e2d31fc76ae]
link entrypoint to garage--><g id="link_entrypoint_garage"><path d="M798.47,462.8 C869.54,497.14 946.03,534.09 993.21,556.88 " fill="none" id="entrypoint-to-garage" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="997.45,558.93,991.0827,551.4162,992.9469,556.7571,987.606,558.6212,997.45,558.93" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="183" x="928" y="527">child (one per storage allocation)</text></g><!--MD5=[ce4627e52805eaf54e84e54573469da7]
@startuml
hide empty description
state "./isle 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 daemon -c ./daemon.yml" as entrypoint {
entrypoint : * Create runtime dir at $_RUNTIME_DIR_PATH
entrypoint : * Lock runtime dir
entrypoint : * Merge given and default daemon.yml files
entrypoint : * Copy bootstrap.yml into $_DATA_DIR_PATH, if it's not there
entrypoint : * Merge daemon.yml config into bootstrap.yml
entrypoint : * Create $_RUNTIME_DIR_PATH/dnsmasq.conf
entrypoint : * Create $_RUNTIME_DIR_PATH/nebula.yml
entrypoint : * Create $_RUNTIME_DIR_PATH/garage-N.toml\n (one per storage allocation)
entrypoint : * Run child processes
entrypoint : * (in the background) Updates garage cluster layout
entrypoint : * (in the background) Stores host info in global bucket
}
init - -> AppRun : exec
AppRun - -> entrypoint : exec
state "./bin/dnsmasq -d -C $_RUNTIME_DIR_PATH/dnsmasq.conf" as dnsmasq
entrypoint - -> dnsmasq : child
state "./bin/nebula -config $_RUNTIME_DIR_PATH/nebula.yml" as nebula
entrypoint - -> nebula : child
state "./bin/garage -c $_RUNTIME_DIR_PATH/garage-N.toml server" as garage
entrypoint - -> garage : child (one per storage allocation)
}
@enduml
PlantUML version 1.2022.12(Sun Oct 23 18:12:26 UTC 2022)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: ANSI_X3.4-1968
Language: en
Country: US
--></g></svg>