-
Notifications
You must be signed in to change notification settings - Fork 0
/
genesis.drawio
132 lines (132 loc) · 13.6 KB
/
genesis.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<mxfile host="65bd71144e" modified="2021-02-21T05:20:23.308Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.53.2 Chrome/87.0.4280.141 Electron/11.2.1 Safari/537.36" etag="k46SOgCheTtismPboKh3" version="14.2.4" type="embed" pages="2">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Local Execution">
<mxGraphModel dx="2028" dy="777" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="4681" pageHeight="3300" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0"/>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0"/>
<mxCell id="rVuuMh4xKK5Rf1KdjTCu-59" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-3" target="rVuuMh4xKK5Rf1KdjTCu-58" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-3" value="CI SYSTEM ENTRYPOINT" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="295" y="100" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontSize=11;endArrow=block;endFill=0;endSize=8;strokeWidth=1;shadow=0;labelBackgroundColor=none;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-6" target="WIyWlLk6GJQsqaUBKTNV-7" edge="1">
<mxGeometry y="10" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="Uct1RBrVptcxzeJhYlY0-1" value="No" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="WIyWlLk6GJQsqaUBKTNV-5" vertex="1" connectable="0">
<mxGeometry x="-0.12" y="2" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="rVuuMh4xKK5Rf1KdjTCu-63" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-6" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="355" y="430" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="Uct1RBrVptcxzeJhYlY0-0" value="Yes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="rVuuMh4xKK5Rf1KdjTCu-63" vertex="1" connectable="0">
<mxGeometry x="-0.15" y="-1" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-6" value="Is the configuration valid?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="292.5" y="270" width="125" height="80" as="geometry"/>
</mxCell>
<mxCell id="rVuuMh4xKK5Rf1KdjTCu-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="655" y="310" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-7" value="exit" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="480" y="290" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="xeliOBLKgj8c5SrrBK7k-6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="WIyWlLk6GJQsqaUBKTNV-12" target="xeliOBLKgj8c5SrrBK7k-5" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-12" value="Build graph relational mapping between step dependencies" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="292.5" y="410" width="130" height="40" as="geometry"/>
</mxCell>
<mxCell id="rVuuMh4xKK5Rf1KdjTCu-60" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="rVuuMh4xKK5Rf1KdjTCu-58" target="WIyWlLk6GJQsqaUBKTNV-6" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="rVuuMh4xKK5Rf1KdjTCu-58" value="Start Genesis Daemon" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="290" y="180" width="130" height="40" as="geometry"/>
</mxCell>
<mxCell id="3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="1" target="rVuuMh4xKK5Rf1KdjTCu-58" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="1" value="Test<br>Configuration<br>(YAML)" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;rounded=1;shadow=0;strokeWidth=1;glass=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="480" y="164.93" width="60" height="70.15" as="geometry"/>
</mxCell>
<mxCell id="xeliOBLKgj8c5SrrBK7k-3" value="<h1><font style="font-size: 18px">Valid Configuration</font></h1><p>It should</p><p>- be valid YAML</p><p>- contain at least one step</p><p>- steps must have a name and image</p><p>- steps must have distinct names</p><p>- depends_on must conform to a DAG</p><p><br></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="10" y="190" width="240" height="200" as="geometry"/>
</mxCell>
<mxCell id="xeliOBLKgj8c5SrrBK7k-5" value="Prepare execution plan and enter main loop" style="whiteSpace=wrap;html=1;rounded=1;shadow=0;strokeWidth=1;glass=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="297.5" y="520" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="xeliOBLKgj8c5SrrBK7k-10" value="<h1>Main Loop</h1><div>(state machine)</div><div><br></div><div>Every cycle, traverse a topologically sorted list of nodes taken from the directed,acylic graph that comprises the depdendency graph</div><div><br></div>This main loop should implement a state machine that accepts the current node state and the parent nodes states as a declarative way to evolve to the next state.<br><br><div>For example,</div><div>If the parent node has a node.values.status == "complete" then diapatch the next container, and set the node to node.values.status == "running"</div><div><br></div><div><br></div><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="470" y="350" width="190" height="410" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="bAwMlhtMbVOUwc5wcZYE" name="State evolution">
<mxGraphModel dx="1159" dy="444" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="D-FDgTZUWwcqTd28g5-i-0"/>
<mxCell id="D-FDgTZUWwcqTd28g5-i-1" parent="D-FDgTZUWwcqTd28g5-i-0"/>
<mxCell id="D-FDgTZUWwcqTd28g5-i-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="D-FDgTZUWwcqTd28g5-i-1" source="D-FDgTZUWwcqTd28g5-i-2" target="D-FDgTZUWwcqTd28g5-i-3">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-15" value="Any self.parrent.status == Failed" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="D-FDgTZUWwcqTd28g5-i-11">
<mxGeometry x="0.2529" y="2" relative="1" as="geometry">
<mxPoint x="8" y="-5.14" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-2" value="Waiting" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="D-FDgTZUWwcqTd28g5-i-1">
<mxGeometry x="40" y="40" width="80" height="80" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-3" value="Cancelled" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="D-FDgTZUWwcqTd28g5-i-1">
<mxGeometry x="40" y="160" width="80" height="80" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-4" value="Succeeded" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="D-FDgTZUWwcqTd28g5-i-1">
<mxGeometry x="160" y="160" width="80" height="80" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="D-FDgTZUWwcqTd28g5-i-1" source="D-FDgTZUWwcqTd28g5-i-6" target="D-FDgTZUWwcqTd28g5-i-4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-23" value="self.container.did_exit_0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="D-FDgTZUWwcqTd28g5-i-21">
<mxGeometry x="-0.308" y="-3" relative="1" as="geometry">
<mxPoint x="-37.29" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="D-FDgTZUWwcqTd28g5-i-1" source="D-FDgTZUWwcqTd28g5-i-6" target="D-FDgTZUWwcqTd28g5-i-13">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-24" value="self.container.did_not_exit_0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="D-FDgTZUWwcqTd28g5-i-22">
<mxGeometry x="-0.0943" relative="1" as="geometry">
<mxPoint x="15" y="-7.43" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-6" value="Running" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="D-FDgTZUWwcqTd28g5-i-1">
<mxGeometry x="345" y="40" width="80" height="80" as="geometry"/>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-8" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="D-FDgTZUWwcqTd28g5-i-1" source="D-FDgTZUWwcqTd28g5-i-2" target="D-FDgTZUWwcqTd28g5-i-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="290" y="140" as="sourcePoint"/>
<mxPoint x="450" y="230" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-10" value="All self.parents.status == Suceeded" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="D-FDgTZUWwcqTd28g5-i-8">
<mxGeometry x="0.2619" relative="1" as="geometry">
<mxPoint x="-31.71" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="D-FDgTZUWwcqTd28g5-i-13" value="Failed" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="D-FDgTZUWwcqTd28g5-i-1">
<mxGeometry x="280" y="160" width="80" height="80" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>