isle/docs/dev/daemon-process-tree.svg

90 lines
19 KiB
XML
Raw Normal View History

<?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" contentScriptType="application/ecmascript" contentStyleType="text/css" height="693px" preserveAspectRatio="none" style="width:2672px;height:693px;" version="1.1" viewBox="0 0 2672 693" width="2672px" zoomAndPan="magnify"><defs><filter height="300%" id="f136koxildkhhk" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[94d69829b8642ebae4272c0fe4460dd1]
cluster AppDir--><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="570" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="2653" x="7" y="111"/><rect fill="#FFFFFF" height="537.7031" rx="12.5" ry="12.5" style="stroke:#FFFFFF;stroke-width:1.0;" width="2647" x="10" y="140.2969"/><line style="stroke:#A80036;stroke-width:1.5;" x1="7" x2="2660" y1="137.2969" y2="137.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="1310" y="127.9951">AppDir</text><path d="M1830.75,159.5 L1830.75,184.6328 L2193.75,184.6328 L2193.75,169.5 L2183.75,159.5 L1830.75,159.5 " fill="#FBFB77" filter="url(#f136koxildkhhk)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M2183.75,159.5 L2183.75,169.5 L2193.75,169.5 L2183.75,159.5 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="342" x="1836.75" y="176.5669">All relative paths are relative to the root of the AppDir</text><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="407" x="23.75" y="613"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="397" x="28.75" y="637.8467">./bin/dnsmasq -d -C $_RUNTIME_DIR_PATH/dnsmasq.conf</text><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="380" x="466" y="613"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="370" x="471" y="637.8467">./bin/nebula -config $_RUNTIME_DIR_PATH/nebula.yml</text><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="40" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="417" x="1432.75" y="613"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="407" x="1437.75" y="637.8467">./bin/garage -c $_RUNTIME_DIR_PATH/garage-N.toml server</text><g id="AppDir.AppRun"><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="50.2656" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="176" x="869.5" y="147"/><line style="stroke:#A80036;stroke-width:1.5;" x1="869.5" x2="1045.5" y1="173.2969" y2="173.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64" x="925.5" y="164.9951">./AppRun</text><ellipse cx="880" cy="184.7656" 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="145" x="885.5" y="189.4355">Set PATH to APPDIR/bin</text></g><g id="AppDir.entrypoint"><rect fill="#FEFECE" filter="url(#f136koxildkhhk)" height="92.1719" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="298" x="808.5" y="275"/><line style="stroke:#A80036;stroke-width:1.5;" x1="808.5" x2="1106.5" y1="301.2969" y2="301.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="905" y="292.9951">./bin/entrypoint</text><ellipse cx="819" cy="312.7656" 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="260" x="824.5" y="317.4355">Merge given and default daemon.yml files</text><ellipse cx="819" cy="326.7344" 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="267" x="824.5" y="331.4043">Create runtime dir at $_RUNTIME_DIR_PATH</text><ellipse cx="819" cy="340.7031" 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="100" x="824.5" y="345.373">Lock runtime dir</text><ellipse cx="819" cy="354.6719" fill="#000000" rx="2.5" ry="2.5" style="stroke:#000000;stroke-width:0.0;"/><text fi
link init to AppRun--><path d="M957,47.286 C957,71.544 957,113.432 957,141.669 " fill="none" id="init-to-AppRun" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="957,146.775,961,137.775,957,141.775,953,137.775,957,146.775" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="958" y="90.0669">exec</text><!--MD5=[973be3d7ea581194d5ee3fc39a24a200]
link AppRun to entrypoint--><path d="M957,197.274 C957,216.916 957,245.239 957,269.727 " fill="none" id="AppRun-to-entrypoint" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="957,274.89,961,265.89,957,269.89,953,265.89,957,274.89" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="958" y="240.0669">exec</text><!--MD5=[083a25c5b19d53ca66969ca5947a1cf6]
link entrypoint to dnsmasqEntrypoint--><path d="M833.291,367.062 C753.357,396.178 652.208,433.022 585.652,457.265 " fill="none" id="entrypoint-to-dnsmasqEntrypoint" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="580.92,458.988,590.7454,459.6679,585.6183,457.2776,588.0087,452.1505,580.92,458.988" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="750" y="410.0669">child</text><!--MD5=[c7ea69d4ff6721f817d13683540cf18f]
link dnsmasqEntrypoint to dnsmasq--><path d="M467.765,509.109 C412.619,537.257 322.234,583.391 269.3,610.4093 " fill="none" id="dnsmasqEntrypoint-to-dnsmasq" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="264.612,612.8024,274.4467,612.274,269.0655,610.5295,270.81,605.1483,264.612,612.8024" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="381" y="566.0669">exec</text><!--MD5=[e57db689e698a4cac2a90f0a38fcb110]
link entrypoint to nebulaEntrypoint--><path d="M957,367.276 C957,394.946 957,429.531 957,453.654 " fill="none" id="entrypoint-to-nebulaEntrypoint" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="957,458.94,961,449.94,957,453.94,953,449.94,957,458.94" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="958" y="410.0669">child</text><!--MD5=[b8917cf0c8fa712950e6c2e129fc0a6a]
link nebulaEntrypoint to nebula--><path d="M907.633,509.109 C849.882,537.314 755.153,583.577 699.876,610.5721 " fill="none" id="nebulaEntrypoint-to-nebula" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="695.309,612.8024,705.1514,612.447,699.8018,610.6081,701.6406,605.2585,695.309,612.8024" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30" x="816" y="566.0669">exec</text><!--MD5=[5f8fdfeb0a5dc67ee4d5669420a40cee]
link nebulaEntrypoint to nebulaUpdateGlobalBucket--><path d="M987.054,509.274 C1016.84,533.331 1062.74,570.409 1096.31,597.5169 " fill="none" id="nebulaEntrypoint-to-nebulaUpdateGlobalBucket" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1100.34,600.7717,1095.8541,592.0038,1096.4511,597.629,1090.8258,598.226,1100.34,600.7717" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="1059" y="566.0669">child</text><!--MD5=[b16f4e4f6f0194775e8cc00ba594229f]
link entrypoint to garageEntrypoint--><path d="M1105.65,349.86 C1260.51,378.885 1502.11,424.169 1659.74,453.713 " fill="none" id="entrypoint-to-garageEntrypoint" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1664.85,454.67,1656.7492,449.0685,1659.9369,453.7417,1655.2638,456.9294,1664.85,454.67" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="371" x="1438" y="410.0669">child (only if &gt;1 storage allocation defined in daemon.yml)</text><!--MD5=[7604ba225da9a0d6f108d03d7e486e8b]
link garageEntrypoint to garage--><path d="M1751,523.167 C1737.29,532.283 1723.27,542.451 1711,553 C1691.4,569.852 1672.15,592.116 1658.81,608.712 " fill="none" id="garageEntrypoint-to-garage" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1655.55,612.8026,1664.2851,608.2531,1658.6643,608.891,1658.0265,603.2702,1655.55,612.8026" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="210" x="1712" y="566.0669">child (one per storage allocation)</text><!--MD5=[7472d79ac569d4db6634ba16e8ae6010]
link garageEntrypoint to garageApplyLayoutDiff--><path d="M1886.99,523.008 C1901.21,531.996 1915.58,542.153 1928,553 C1942.71,565.84 1956.65,582.331 1967.75,596.922 " fill="none" id="garageEntrypoint-to-garageApplyLayoutDiff" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="1970.8,600.9825,1968.5758,591.3881,1967.7899,596.9901,1962.1879,596.2042,1970.8,600.9825" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="1946" y="566.0669">child</text><!--MD5=[28040088c0886f2a1ce0f5a6f1c646b2]
link garageEntrypoint to garageUpdateGlobalBucket--><path d="M1964.31,523.047 C2056.9,546.8 2174.81,577.05 2262.88,599.645 " fill="none" id="garageEntrypoint-to-garageUpdateGlobalBucket" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="2267.84,600.9183,2260.1167,594.8067,2262.9969,599.6755,2258.1282,602.5556,2267.84,600.9183" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="2137" y="566.0669">child</text><!--MD5=[8f4ad328989dd844abfc0d21ccc0f169]
@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
PlantUML version 1.2021.3(Mon Mar 22 16:53:19 UTC 2021)
(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>