conlink 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/examples/test4-multiple/modes/all/deps +1 -0
- package/examples/test4-multiple/{base-compose.yaml → modes/base/compose.yaml} +3 -3
- package/examples/test4-multiple/{node1-compose.yaml → modes/node1/compose.yaml} +0 -3
- package/examples/test4-multiple/{nodes2-compose.yaml → modes/nodes2/compose.yaml} +0 -5
- package/examples/test4-multiple/modes/web/compose.yaml +5 -0
- package/examples/test4-multiple/modes/web/deps +1 -0
- package/mdc +108 -0
- package/package.json +2 -1
- package/scripts/copy.sh +48 -0
- package/scripts/wait.sh +73 -0
- package/.env +0 -3
- package/TODO +0 -34
- package/examples/data.dot +0 -457
- package/examples/net2dot-data.dot +0 -123
- package/examples/net2dot.dot +0 -457
- package/examples/test1-data.dot +0 -82
- package/examples/test1.dot +0 -286
- package/examples/test4-multiple/all-compose.yaml +0 -5
- package/examples/test4-multiple/web-network.yaml +0 -2
- package/host-build.yaml +0 -1
- package/inspect.json +0 -210
- package/modes0/a/deps +0 -1
- package/modes0/b/deps +0 -1
- package/modes0/c/deps +0 -1
- package/modes0/e/deps +0 -1
- package/modes1/a/deps +0 -1
- package/modes1/b/deps +0 -1
- package/modes1/c/deps +0 -1
- package/modes1/d/deps +0 -1
- package/modes2/a/deps +0 -1
- package/modes2/b/deps +0 -1
- package/modes2/c/deps +0 -1
- package/modes2/d/de +0 -1
- package/modes2/d/deps +0 -1
- package/modes3/accel/deps +0 -1
- package/modes4/a/deps +0 -1
- package/modes4/b/deps +0 -1
- package/net2dot.mjs +0 -21
- package/notes.txt +0 -82
- package/old/Dockerfile.bak +0 -26
- package/old/add-link.sh +0 -82
- package/old/conlink +0 -12
- package/old/conlink.cljs +0 -131
- package/old/dot_gitignore +0 -1
- package/old/examples/test2-compose.yaml +0 -32
- package/old/examples/test2-network.yaml +0 -42
- package/old/graphviz.cljs +0 -14
- package/old/move-link.sh +0 -108
- package/old/net2dot.cljs +0 -114
- package/old/net2dot.py +0 -122
- package/old/notes-old.txt +0 -97
- package/old/package.json +0 -16
- package/old/schema.yaml +0 -138
- package/old/schema.yaml.bak +0 -76
- package/old/set-cover-old.cljs +0 -205
- package/old/set-cover-old2.cljs +0 -150
- package/old/test2b-compose.yaml +0 -18
- package/old/veth-link.sh +0 -96
- package/read-stream.cljs +0 -12
- package/resolve-deps.cljs +0 -183
- package/schema-ish.yaml +0 -29
- package/tests/invalid-schema-1.yaml +0 -6
- package/tests/invalid-schema-2.yaml +0 -6
- package/tests/invalid-schema-3.yaml +0 -17
- package/tests/invalid-schema-4.yaml +0 -14
- package/tests/invalid-schema-5.yaml +0 -12
- package/tests/invalid-schema-6.yaml +0 -12
- package/tmp/conlink/.env +0 -1
- package/topo1.cljs +0 -35
- package/topo2.cljs +0 -36
- package/topo3.cljs +0 -44
- /package/{modes3/ab → examples/test4-multiple/modes/node1}/deps +0 -0
- /package/{modes3/mach3 → examples/test4-multiple/modes/nodes2}/deps +0 -0
package/examples/test1.dot
DELETED
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
digraph {
|
|
2
|
-
splines = true;
|
|
3
|
-
compound = true;
|
|
4
|
-
subgraph "cluster_host" {
|
|
5
|
-
shape = "box";
|
|
6
|
-
fontsize = 14;
|
|
7
|
-
style = "filled";
|
|
8
|
-
penwidth = 1;
|
|
9
|
-
fillcolor = "#f5f5f5";
|
|
10
|
-
color = "#666666";
|
|
11
|
-
label = "host system";
|
|
12
|
-
subgraph "cluster_conlink" {
|
|
13
|
-
shape = "box";
|
|
14
|
-
fontsize = 14;
|
|
15
|
-
style = "rounded,filled";
|
|
16
|
-
penwidth = 3;
|
|
17
|
-
fillcolor = "#c5d1e7";
|
|
18
|
-
color = "#7396a0";
|
|
19
|
-
label = "conlink/network";
|
|
20
|
-
subgraph "cluster_bridge_s1" {
|
|
21
|
-
shape = "box";
|
|
22
|
-
fontsize = 14;
|
|
23
|
-
style = "filled";
|
|
24
|
-
penwidth = 1;
|
|
25
|
-
fillcolor = "#c8badc";
|
|
26
|
-
color = "#6e509f";
|
|
27
|
-
label = "s1";
|
|
28
|
-
}
|
|
29
|
-
subgraph "cluster_bridge_s2" {
|
|
30
|
-
shape = "box";
|
|
31
|
-
fontsize = 14;
|
|
32
|
-
style = "filled";
|
|
33
|
-
penwidth = 1;
|
|
34
|
-
fillcolor = "#c8badc";
|
|
35
|
-
color = "#6e509f";
|
|
36
|
-
label = "s2";
|
|
37
|
-
}
|
|
38
|
-
subgraph "cluster_bridge_s3" {
|
|
39
|
-
shape = "box";
|
|
40
|
-
fontsize = 14;
|
|
41
|
-
style = "filled";
|
|
42
|
-
penwidth = 1;
|
|
43
|
-
fillcolor = "#c8badc";
|
|
44
|
-
color = "#6e509f";
|
|
45
|
-
label = "s3";
|
|
46
|
-
}
|
|
47
|
-
subgraph "cluster_bridge_s1" {
|
|
48
|
-
shape = "box";
|
|
49
|
-
fontsize = 14;
|
|
50
|
-
style = "filled";
|
|
51
|
-
penwidth = 1;
|
|
52
|
-
fillcolor = "#c8badc";
|
|
53
|
-
color = "#6e509f";
|
|
54
|
-
label = "s1";
|
|
55
|
-
"out_DASH_r0_1_DASH_eth_DASH_s1" [
|
|
56
|
-
color = "#af6b4e";
|
|
57
|
-
fillcolor = "#e8e8c8";
|
|
58
|
-
width = 0.1;
|
|
59
|
-
penwidth = 1;
|
|
60
|
-
style = "filled";
|
|
61
|
-
label = "r0_1-eth-s1";
|
|
62
|
-
shape = "box";
|
|
63
|
-
fontsize = 10;
|
|
64
|
-
height = 0.1;
|
|
65
|
-
];
|
|
66
|
-
"out_DASH_h1_1_DASH_eth0" [
|
|
67
|
-
color = "#af6b4e";
|
|
68
|
-
fillcolor = "#e8e8c8";
|
|
69
|
-
width = 0.1;
|
|
70
|
-
penwidth = 1;
|
|
71
|
-
style = "filled";
|
|
72
|
-
label = "h1_1-eth0";
|
|
73
|
-
shape = "box";
|
|
74
|
-
fontsize = 10;
|
|
75
|
-
height = 0.1;
|
|
76
|
-
];
|
|
77
|
-
}
|
|
78
|
-
subgraph "cluster_bridge_s2" {
|
|
79
|
-
shape = "box";
|
|
80
|
-
fontsize = 14;
|
|
81
|
-
style = "filled";
|
|
82
|
-
penwidth = 1;
|
|
83
|
-
fillcolor = "#c8badc";
|
|
84
|
-
color = "#6e509f";
|
|
85
|
-
label = "s2";
|
|
86
|
-
"out_DASH_r0_1_DASH_eth_DASH_s2" [
|
|
87
|
-
color = "#af6b4e";
|
|
88
|
-
fillcolor = "#e8e8c8";
|
|
89
|
-
width = 0.1;
|
|
90
|
-
penwidth = 1;
|
|
91
|
-
style = "filled";
|
|
92
|
-
label = "r0_1-eth-s2";
|
|
93
|
-
shape = "box";
|
|
94
|
-
fontsize = 10;
|
|
95
|
-
height = 0.1;
|
|
96
|
-
];
|
|
97
|
-
"out_DASH_h2_1_DASH_eth0" [
|
|
98
|
-
color = "#af6b4e";
|
|
99
|
-
fillcolor = "#e8e8c8";
|
|
100
|
-
width = 0.1;
|
|
101
|
-
penwidth = 1;
|
|
102
|
-
style = "filled";
|
|
103
|
-
label = "h2_1-eth0";
|
|
104
|
-
shape = "box";
|
|
105
|
-
fontsize = 10;
|
|
106
|
-
height = 0.1;
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
|
-
subgraph "cluster_bridge_s3" {
|
|
110
|
-
shape = "box";
|
|
111
|
-
fontsize = 14;
|
|
112
|
-
style = "filled";
|
|
113
|
-
penwidth = 1;
|
|
114
|
-
fillcolor = "#c8badc";
|
|
115
|
-
color = "#6e509f";
|
|
116
|
-
label = "s3";
|
|
117
|
-
"out_DASH_r0_1_DASH_eth_DASH_s3" [
|
|
118
|
-
color = "#af6b4e";
|
|
119
|
-
fillcolor = "#e8e8c8";
|
|
120
|
-
width = 0.1;
|
|
121
|
-
penwidth = 1;
|
|
122
|
-
style = "filled";
|
|
123
|
-
label = "r0_1-eth-s3";
|
|
124
|
-
shape = "box";
|
|
125
|
-
fontsize = 10;
|
|
126
|
-
height = 0.1;
|
|
127
|
-
];
|
|
128
|
-
"out_DASH_h3_1_DASH_eth0" [
|
|
129
|
-
color = "#af6b4e";
|
|
130
|
-
fillcolor = "#e8e8c8";
|
|
131
|
-
width = 0.1;
|
|
132
|
-
penwidth = 1;
|
|
133
|
-
style = "filled";
|
|
134
|
-
label = "h3_1-eth0";
|
|
135
|
-
shape = "box";
|
|
136
|
-
fontsize = 10;
|
|
137
|
-
height = 0.1;
|
|
138
|
-
];
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
subgraph "cluster_service_r0" {
|
|
142
|
-
shape = "box";
|
|
143
|
-
fontsize = 14;
|
|
144
|
-
style = "rounded,filled";
|
|
145
|
-
penwidth = 2;
|
|
146
|
-
fillcolor = "#c1d0d7";
|
|
147
|
-
color = "#7396a6";
|
|
148
|
-
label = "service 'r0'";
|
|
149
|
-
"r0_COLON_eth_DASH_s1" [
|
|
150
|
-
color = "#af6b4e";
|
|
151
|
-
fillcolor = "#e8e8c8";
|
|
152
|
-
width = 0.1;
|
|
153
|
-
penwidth = 1;
|
|
154
|
-
style = "filled";
|
|
155
|
-
label = "eth-s1";
|
|
156
|
-
shape = "box";
|
|
157
|
-
fontsize = 10;
|
|
158
|
-
height = 0.1;
|
|
159
|
-
];
|
|
160
|
-
"r0_COLON_eth_DASH_s2" [
|
|
161
|
-
color = "#af6b4e";
|
|
162
|
-
fillcolor = "#e8e8c8";
|
|
163
|
-
width = 0.1;
|
|
164
|
-
penwidth = 1;
|
|
165
|
-
style = "filled";
|
|
166
|
-
label = "eth-s2";
|
|
167
|
-
shape = "box";
|
|
168
|
-
fontsize = 10;
|
|
169
|
-
height = 0.1;
|
|
170
|
-
];
|
|
171
|
-
"r0_COLON_eth_DASH_s3" [
|
|
172
|
-
color = "#af6b4e";
|
|
173
|
-
fillcolor = "#e8e8c8";
|
|
174
|
-
width = 0.1;
|
|
175
|
-
penwidth = 1;
|
|
176
|
-
style = "filled";
|
|
177
|
-
label = "eth-s3";
|
|
178
|
-
shape = "box";
|
|
179
|
-
fontsize = 10;
|
|
180
|
-
height = 0.1;
|
|
181
|
-
];
|
|
182
|
-
}
|
|
183
|
-
subgraph "cluster_service_h1" {
|
|
184
|
-
shape = "box";
|
|
185
|
-
fontsize = 14;
|
|
186
|
-
style = "rounded,filled";
|
|
187
|
-
penwidth = 2;
|
|
188
|
-
fillcolor = "#c1d0d7";
|
|
189
|
-
color = "#7396a6";
|
|
190
|
-
label = "service 'h1'";
|
|
191
|
-
"h1_COLON_eth0" [
|
|
192
|
-
color = "#af6b4e";
|
|
193
|
-
fillcolor = "#e8e8c8";
|
|
194
|
-
width = 0.1;
|
|
195
|
-
penwidth = 1;
|
|
196
|
-
style = "filled";
|
|
197
|
-
label = "eth0";
|
|
198
|
-
shape = "box";
|
|
199
|
-
fontsize = 10;
|
|
200
|
-
height = 0.1;
|
|
201
|
-
];
|
|
202
|
-
}
|
|
203
|
-
subgraph "cluster_service_h2" {
|
|
204
|
-
shape = "box";
|
|
205
|
-
fontsize = 14;
|
|
206
|
-
style = "rounded,filled";
|
|
207
|
-
penwidth = 2;
|
|
208
|
-
fillcolor = "#c1d0d7";
|
|
209
|
-
color = "#7396a6";
|
|
210
|
-
label = "service 'h2'";
|
|
211
|
-
"h2_COLON_eth0" [
|
|
212
|
-
color = "#af6b4e";
|
|
213
|
-
fillcolor = "#e8e8c8";
|
|
214
|
-
width = 0.1;
|
|
215
|
-
penwidth = 1;
|
|
216
|
-
style = "filled";
|
|
217
|
-
label = "eth0";
|
|
218
|
-
shape = "box";
|
|
219
|
-
fontsize = 10;
|
|
220
|
-
height = 0.1;
|
|
221
|
-
];
|
|
222
|
-
}
|
|
223
|
-
subgraph "cluster_service_h3" {
|
|
224
|
-
shape = "box";
|
|
225
|
-
fontsize = 14;
|
|
226
|
-
style = "rounded,filled";
|
|
227
|
-
penwidth = 2;
|
|
228
|
-
fillcolor = "#c1d0d7";
|
|
229
|
-
color = "#7396a6";
|
|
230
|
-
label = "service 'h3'";
|
|
231
|
-
"h3_COLON_eth0" [
|
|
232
|
-
color = "#af6b4e";
|
|
233
|
-
fillcolor = "#e8e8c8";
|
|
234
|
-
width = 0.1;
|
|
235
|
-
penwidth = 1;
|
|
236
|
-
style = "filled";
|
|
237
|
-
label = "eth0";
|
|
238
|
-
shape = "box";
|
|
239
|
-
fontsize = 10;
|
|
240
|
-
height = 0.1;
|
|
241
|
-
];
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
"r0_COLON_eth_DASH_s1" -> "out_DASH_r0_1_DASH_eth_DASH_s1" [
|
|
245
|
-
shape = "box";
|
|
246
|
-
fontsize = 14;
|
|
247
|
-
style = "filled";
|
|
248
|
-
penwidth = 1;
|
|
249
|
-
label = "";
|
|
250
|
-
];
|
|
251
|
-
"r0_COLON_eth_DASH_s2" -> "out_DASH_r0_1_DASH_eth_DASH_s2" [
|
|
252
|
-
shape = "box";
|
|
253
|
-
fontsize = 14;
|
|
254
|
-
style = "filled";
|
|
255
|
-
penwidth = 1;
|
|
256
|
-
label = "";
|
|
257
|
-
];
|
|
258
|
-
"r0_COLON_eth_DASH_s3" -> "out_DASH_r0_1_DASH_eth_DASH_s3" [
|
|
259
|
-
shape = "box";
|
|
260
|
-
fontsize = 14;
|
|
261
|
-
style = "filled";
|
|
262
|
-
penwidth = 1;
|
|
263
|
-
label = "";
|
|
264
|
-
];
|
|
265
|
-
"h1_COLON_eth0" -> "out_DASH_h1_1_DASH_eth0" [
|
|
266
|
-
shape = "box";
|
|
267
|
-
fontsize = 14;
|
|
268
|
-
style = "filled";
|
|
269
|
-
penwidth = 1;
|
|
270
|
-
label = "";
|
|
271
|
-
];
|
|
272
|
-
"h2_COLON_eth0" -> "out_DASH_h2_1_DASH_eth0" [
|
|
273
|
-
shape = "box";
|
|
274
|
-
fontsize = 14;
|
|
275
|
-
style = "filled";
|
|
276
|
-
penwidth = 1;
|
|
277
|
-
label = "";
|
|
278
|
-
];
|
|
279
|
-
"h3_COLON_eth0" -> "out_DASH_h3_1_DASH_eth0" [
|
|
280
|
-
shape = "box";
|
|
281
|
-
fontsize = 14;
|
|
282
|
-
style = "filled";
|
|
283
|
-
penwidth = 1;
|
|
284
|
-
label = "";
|
|
285
|
-
];
|
|
286
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
version: "2.4"
|
|
2
|
-
|
|
3
|
-
services:
|
|
4
|
-
network:
|
|
5
|
-
command: /app/build/conlink.js --compose-file ${COMPOSE_FILE:-examples/test4-multiple/base-compose.yaml:examples/test4-multiple/node1-compose.yaml:examples/test4-multiple/nodes2.yaml:examples/test4-multiple/all-compose.yaml} --network-file examples/test4-multiple/web-network.yaml
|
package/host-build.yaml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
services: {network: {volumes: ["../:/app/"]}}
|
package/inspect.json
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"Id": "43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357",
|
|
4
|
-
"Created": "2023-10-11T15:55:04.428835024Z",
|
|
5
|
-
"Path": "sh",
|
|
6
|
-
"Args": [
|
|
7
|
-
"-c",
|
|
8
|
-
"while ! ip link show eth0 up; do sleep 1; done; sleep 864000"
|
|
9
|
-
],
|
|
10
|
-
"State": {
|
|
11
|
-
"Status": "running",
|
|
12
|
-
"Running": true,
|
|
13
|
-
"Paused": false,
|
|
14
|
-
"Restarting": false,
|
|
15
|
-
"OOMKilled": false,
|
|
16
|
-
"Dead": false,
|
|
17
|
-
"Pid": 10216,
|
|
18
|
-
"ExitCode": 0,
|
|
19
|
-
"Error": "",
|
|
20
|
-
"StartedAt": "2023-10-11T15:55:04.576997181Z",
|
|
21
|
-
"FinishedAt": "0001-01-01T00:00:00Z"
|
|
22
|
-
},
|
|
23
|
-
"Image": "sha256:8ca4688f4f356596b5ae539337c9941abc78eda10021d35cbc52659c74d9b443",
|
|
24
|
-
"ResolvConfPath": "/var/lib/docker/containers/43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357/resolv.conf",
|
|
25
|
-
"HostnamePath": "/var/lib/docker/containers/43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357/hostname",
|
|
26
|
-
"HostsPath": "/var/lib/docker/containers/43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357/hosts",
|
|
27
|
-
"LogPath": "/var/lib/docker/containers/43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357/43e63a3c948443f55198f4de29fd96805fdb306398ff64d89f1103c355e28357-json.log",
|
|
28
|
-
"Name": "/examples_node2_1",
|
|
29
|
-
"RestartCount": 0,
|
|
30
|
-
"Driver": "overlay2",
|
|
31
|
-
"Platform": "linux",
|
|
32
|
-
"MountLabel": "",
|
|
33
|
-
"ProcessLabel": "",
|
|
34
|
-
"AppArmorProfile": "docker-default",
|
|
35
|
-
"ExecIDs": null,
|
|
36
|
-
"HostConfig": {
|
|
37
|
-
"Binds": [],
|
|
38
|
-
"ContainerIDFile": "",
|
|
39
|
-
"LogConfig": {
|
|
40
|
-
"Type": "json-file",
|
|
41
|
-
"Config": {}
|
|
42
|
-
},
|
|
43
|
-
"NetworkMode": "none",
|
|
44
|
-
"PortBindings": {},
|
|
45
|
-
"RestartPolicy": {
|
|
46
|
-
"Name": "",
|
|
47
|
-
"MaximumRetryCount": 0
|
|
48
|
-
},
|
|
49
|
-
"AutoRemove": false,
|
|
50
|
-
"VolumeDriver": "",
|
|
51
|
-
"VolumesFrom": [],
|
|
52
|
-
"ConsoleSize": [
|
|
53
|
-
0,
|
|
54
|
-
0
|
|
55
|
-
],
|
|
56
|
-
"CapAdd": [
|
|
57
|
-
"NET_ADMIN"
|
|
58
|
-
],
|
|
59
|
-
"CapDrop": null,
|
|
60
|
-
"CgroupnsMode": "host",
|
|
61
|
-
"Dns": null,
|
|
62
|
-
"DnsOptions": null,
|
|
63
|
-
"DnsSearch": null,
|
|
64
|
-
"ExtraHosts": null,
|
|
65
|
-
"GroupAdd": null,
|
|
66
|
-
"IpcMode": "private",
|
|
67
|
-
"Cgroup": "",
|
|
68
|
-
"Links": null,
|
|
69
|
-
"OomScoreAdj": 0,
|
|
70
|
-
"PidMode": "",
|
|
71
|
-
"Privileged": false,
|
|
72
|
-
"PublishAllPorts": false,
|
|
73
|
-
"ReadonlyRootfs": false,
|
|
74
|
-
"SecurityOpt": null,
|
|
75
|
-
"UTSMode": "",
|
|
76
|
-
"UsernsMode": "",
|
|
77
|
-
"ShmSize": 67108864,
|
|
78
|
-
"Runtime": "runc",
|
|
79
|
-
"Isolation": "",
|
|
80
|
-
"CpuShares": 0,
|
|
81
|
-
"Memory": 0,
|
|
82
|
-
"NanoCpus": 0,
|
|
83
|
-
"CgroupParent": "",
|
|
84
|
-
"BlkioWeight": 0,
|
|
85
|
-
"BlkioWeightDevice": null,
|
|
86
|
-
"BlkioDeviceReadBps": null,
|
|
87
|
-
"BlkioDeviceWriteBps": null,
|
|
88
|
-
"BlkioDeviceReadIOps": null,
|
|
89
|
-
"BlkioDeviceWriteIOps": null,
|
|
90
|
-
"CpuPeriod": 0,
|
|
91
|
-
"CpuQuota": 0,
|
|
92
|
-
"CpuRealtimePeriod": 0,
|
|
93
|
-
"CpuRealtimeRuntime": 0,
|
|
94
|
-
"CpusetCpus": "",
|
|
95
|
-
"CpusetMems": "",
|
|
96
|
-
"Devices": null,
|
|
97
|
-
"DeviceCgroupRules": null,
|
|
98
|
-
"DeviceRequests": null,
|
|
99
|
-
"MemoryReservation": 0,
|
|
100
|
-
"MemorySwap": 0,
|
|
101
|
-
"MemorySwappiness": null,
|
|
102
|
-
"OomKillDisable": false,
|
|
103
|
-
"PidsLimit": null,
|
|
104
|
-
"Ulimits": null,
|
|
105
|
-
"CpuCount": 0,
|
|
106
|
-
"CpuPercent": 0,
|
|
107
|
-
"IOMaximumIOps": 0,
|
|
108
|
-
"IOMaximumBandwidth": 0,
|
|
109
|
-
"MaskedPaths": [
|
|
110
|
-
"/proc/asound",
|
|
111
|
-
"/proc/acpi",
|
|
112
|
-
"/proc/kcore",
|
|
113
|
-
"/proc/keys",
|
|
114
|
-
"/proc/latency_stats",
|
|
115
|
-
"/proc/timer_list",
|
|
116
|
-
"/proc/timer_stats",
|
|
117
|
-
"/proc/sched_debug",
|
|
118
|
-
"/proc/scsi",
|
|
119
|
-
"/sys/firmware"
|
|
120
|
-
],
|
|
121
|
-
"ReadonlyPaths": [
|
|
122
|
-
"/proc/bus",
|
|
123
|
-
"/proc/fs",
|
|
124
|
-
"/proc/irq",
|
|
125
|
-
"/proc/sys",
|
|
126
|
-
"/proc/sysrq-trigger"
|
|
127
|
-
]
|
|
128
|
-
},
|
|
129
|
-
"GraphDriver": {
|
|
130
|
-
"Data": {
|
|
131
|
-
"LowerDir": "/var/lib/docker/overlay2/f45757baf87c92f0934409fa9617bd4027e1e4472711312b1d8145ca59cdf0f3-init/diff:/var/lib/docker/overlay2/0ee1adfcd9b69bb9354db86819da1c06904d5c664f8d9e0aded8c158a24654df/diff",
|
|
132
|
-
"MergedDir": "/var/lib/docker/overlay2/f45757baf87c92f0934409fa9617bd4027e1e4472711312b1d8145ca59cdf0f3/merged",
|
|
133
|
-
"UpperDir": "/var/lib/docker/overlay2/f45757baf87c92f0934409fa9617bd4027e1e4472711312b1d8145ca59cdf0f3/diff",
|
|
134
|
-
"WorkDir": "/var/lib/docker/overlay2/f45757baf87c92f0934409fa9617bd4027e1e4472711312b1d8145ca59cdf0f3/work"
|
|
135
|
-
},
|
|
136
|
-
"Name": "overlay2"
|
|
137
|
-
},
|
|
138
|
-
"Mounts": [],
|
|
139
|
-
"Config": {
|
|
140
|
-
"Hostname": "43e63a3c9484",
|
|
141
|
-
"Domainname": "",
|
|
142
|
-
"User": "",
|
|
143
|
-
"AttachStdin": false,
|
|
144
|
-
"AttachStdout": false,
|
|
145
|
-
"AttachStderr": false,
|
|
146
|
-
"Tty": false,
|
|
147
|
-
"OpenStdin": false,
|
|
148
|
-
"StdinOnce": false,
|
|
149
|
-
"Env": [
|
|
150
|
-
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
151
|
-
],
|
|
152
|
-
"Cmd": [
|
|
153
|
-
"sh",
|
|
154
|
-
"-c",
|
|
155
|
-
"while ! ip link show eth0 up; do sleep 1; done; sleep 864000"
|
|
156
|
-
],
|
|
157
|
-
"Image": "alpine",
|
|
158
|
-
"Volumes": null,
|
|
159
|
-
"WorkingDir": "",
|
|
160
|
-
"Entrypoint": null,
|
|
161
|
-
"OnBuild": null,
|
|
162
|
-
"Labels": {
|
|
163
|
-
"com.docker.compose.config-hash": "be458eaf2e2aba67235023be9f8342d88ce0e0f7979749d6496423229a954bd3",
|
|
164
|
-
"com.docker.compose.container-number": "1",
|
|
165
|
-
"com.docker.compose.oneoff": "False",
|
|
166
|
-
"com.docker.compose.project": "examples",
|
|
167
|
-
"com.docker.compose.project.config_files": "examples/test2-compose.yaml",
|
|
168
|
-
"com.docker.compose.project.working_dir": "/home/jmartin/work/viasat/repos/conlink.cljs/examples",
|
|
169
|
-
"com.docker.compose.service": "node2",
|
|
170
|
-
"com.docker.compose.version": "1.29.2"
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
"NetworkSettings": {
|
|
174
|
-
"Bridge": "",
|
|
175
|
-
"SandboxID": "963251cd8230a51e9c658653a3fdeedfe10e9f16c03aed802b69d5a6c86f6d19",
|
|
176
|
-
"HairpinMode": false,
|
|
177
|
-
"LinkLocalIPv6Address": "",
|
|
178
|
-
"LinkLocalIPv6PrefixLen": 0,
|
|
179
|
-
"Ports": {},
|
|
180
|
-
"SandboxKey": "/var/run/docker/netns/963251cd8230",
|
|
181
|
-
"SecondaryIPAddresses": null,
|
|
182
|
-
"SecondaryIPv6Addresses": null,
|
|
183
|
-
"EndpointID": "",
|
|
184
|
-
"Gateway": "",
|
|
185
|
-
"GlobalIPv6Address": "",
|
|
186
|
-
"GlobalIPv6PrefixLen": 0,
|
|
187
|
-
"IPAddress": "",
|
|
188
|
-
"IPPrefixLen": 0,
|
|
189
|
-
"IPv6Gateway": "",
|
|
190
|
-
"MacAddress": "",
|
|
191
|
-
"Networks": {
|
|
192
|
-
"none": {
|
|
193
|
-
"IPAMConfig": null,
|
|
194
|
-
"Links": null,
|
|
195
|
-
"Aliases": null,
|
|
196
|
-
"NetworkID": "c7b50bdae4d8c2baa2dfbfcf81a783cddcfd66df84c6ce3f3506985434a161c8",
|
|
197
|
-
"EndpointID": "376d2c90a9e33a6e0fd62dc3f67c6f784d717594b54ebbb7e9d4d372ee0cf115",
|
|
198
|
-
"Gateway": "",
|
|
199
|
-
"IPAddress": "",
|
|
200
|
-
"IPPrefixLen": 0,
|
|
201
|
-
"IPv6Gateway": "",
|
|
202
|
-
"GlobalIPv6Address": "",
|
|
203
|
-
"GlobalIPv6PrefixLen": 0,
|
|
204
|
-
"MacAddress": "",
|
|
205
|
-
"DriverOpts": null
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
]
|
package/modes0/a/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b,c
|
package/modes0/b/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c,d
|
package/modes0/c/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e
|
package/modes0/e/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f
|
package/modes1/a/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b c|d
|
package/modes1/b/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e f
|
package/modes1/c/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
g
|
package/modes1/d/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
g h
|
package/modes2/a/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b c
|
package/modes2/b/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c|d
|
package/modes2/c/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e
|
package/modes2/d/de
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e
|
package/modes2/d/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e
|
package/modes3/accel/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
base mach3|ab
|
package/modes4/a/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b c
|
package/modes4/b/deps
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d|c
|
package/net2dot.mjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { attribute as _, Digraph, Subgraph, Node, Edge, toDot } from 'ts-graphviz';
|
|
2
|
-
|
|
3
|
-
const G = new Digraph();
|
|
4
|
-
const A = new Subgraph('A');
|
|
5
|
-
const node1 = new Node('node1', {
|
|
6
|
-
color: 'red'
|
|
7
|
-
});
|
|
8
|
-
const node2 = new Node('node2', {
|
|
9
|
-
color: 'blue'
|
|
10
|
-
});
|
|
11
|
-
const edge = new Edge([node1, node2], {
|
|
12
|
-
label: 'Edge Label',
|
|
13
|
-
color: 'pink'
|
|
14
|
-
});
|
|
15
|
-
G.addSubgraph(A);
|
|
16
|
-
A.addNode(node1);
|
|
17
|
-
A.addNode(node2);
|
|
18
|
-
A.addEdge(edge);
|
|
19
|
-
const dot = toDot(G);
|
|
20
|
-
|
|
21
|
-
console.log(dot)
|
package/notes.txt
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
- Also see schema-ish.yaml
|
|
2
|
-
links:
|
|
3
|
-
- type: TYPE # Default: 'veth'
|
|
4
|
-
# Others: '*vlan/*vtap', 'dummy', 'tunnel', etc
|
|
5
|
-
|
|
6
|
-
container: FOO # full container name
|
|
7
|
-
# OR
|
|
8
|
-
service: FOO # compose service name
|
|
9
|
-
|
|
10
|
-
bridge: BRIDGE # name of OVS or linux bridge
|
|
11
|
-
|
|
12
|
-
base: BASE # 'conlink', 'host', or 'local'
|
|
13
|
-
# 'conlink' is default for 'type: veth'
|
|
14
|
-
# 'host' is default for 'type: *vlan/*vtap'
|
|
15
|
-
|
|
16
|
-
dev: DEV # internal container device/interface name
|
|
17
|
-
outer-dev: DEV # conlink or host (*vlan) device/interface name
|
|
18
|
-
|
|
19
|
-
# --- optional general ---
|
|
20
|
-
|
|
21
|
-
ip(s): IP # starting address, can include net slash to limit max
|
|
22
|
-
mac: MAC
|
|
23
|
-
mtu: MTU
|
|
24
|
-
route(s): ROUTE # `ip route add ROUTE`, maybe add "dev INTF" automatically
|
|
25
|
-
tc(s): TC # tc/qdisc commands/settings
|
|
26
|
-
flow(s): FLOW # `ovs-ofctl add-flow DOMAIN FLOW`. With var templating.
|
|
27
|
-
command(s): CMD # arbitrary shell cmd. After all links setup for this container
|
|
28
|
-
|
|
29
|
-
# --- optional for 'type: *vlan/*vtap' ---
|
|
30
|
-
|
|
31
|
-
mode: MODE # 'bridge', etc
|
|
32
|
-
vlanid: VLANID # VLAN #
|
|
33
|
-
nat: NAT # nat target
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- type maps to 'ip link' type with default of 'veth'
|
|
37
|
-
- when type is 'veth', then base default is 'conlink'
|
|
38
|
-
- when type is 'veth' and base is 'conlink', then bridge is required.
|
|
39
|
-
|
|
40
|
-
- conlink veth link: {type: veth [DEFAULT], base: conlink [DEFAULT], bridge: BRIDGE, dev: DEV}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Dependencies in python version:
|
|
45
|
-
- argparse
|
|
46
|
-
- shlex (parsing commands)
|
|
47
|
-
- compose_interpolation import TemplateWithDefaults
|
|
48
|
-
- cerberus import Validator
|
|
49
|
-
- options: joi, ajv, json-schema, and z-schema.
|
|
50
|
-
- docker
|
|
51
|
-
- psutil (pid_exists)
|
|
52
|
-
- json
|
|
53
|
-
- yaml
|
|
54
|
-
- mininet
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- [deprecated idea] conlink sub-commands:
|
|
58
|
-
conlink spit
|
|
59
|
-
- output override docker-compose file with conlink service
|
|
60
|
-
- figure out volume mounts to get to other compose file(s)
|
|
61
|
-
conlink dc up ...
|
|
62
|
-
- generate override docker-compose file with conlink service
|
|
63
|
-
- run the compose command with override file
|
|
64
|
-
conlink start
|
|
65
|
-
- start inside compose
|
|
66
|
-
conlink run
|
|
67
|
-
- start outside compose
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
tc:
|
|
71
|
-
tc-htb:
|
|
72
|
-
- replace cbq, control outbound bandwidth
|
|
73
|
-
tc qdisc ... dev dev ( parent classid | root) [ handle major: ] htb [ default minor-id ]
|
|
74
|
-
tc class ... dev dev parent major:[minor] [ classid major:minor ] htb rate rate [ ceil rate ] burst bytes [ cburst bytes ] [ prio priority ]
|
|
75
|
-
|
|
76
|
-
tc-cbq:
|
|
77
|
-
tc qdisc ... dev dev ( parent classid | root) [ handle major: ] cbq [ allot bytes ] avpkt bytes bandwidth rate [ cell bytes ] [ ewma log ] [ mpu bytes ]
|
|
78
|
-
tc class ... dev dev parent major:[minor] [ classid major:minor ] cbq allot bytes [ bandwidth rate ] [ rate rate ] prio pri‐ority [ weight weight ] [ minburst packets ] [ maxburst packets ] [ ewma log ] [ cell bytes ] avpkt bytes [ mpu bytes ] [ bounded isolated ] [ split handle & defmap defmap ] [ estimator interval timeconstant ]
|
|
79
|
-
|
|
80
|
-
tc-netem:
|
|
81
|
-
tc qdisc ... dev DEVICE ] add netem OPTIONS
|
|
82
|
-
|