-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtopo.sample.yml
63 lines (51 loc) · 1.33 KB
/
topo.sample.yml
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
topology:
# Define build environments
# Syntax inspired from docker-compose format
envs:
debian12:
context: envs/debian12
alpine318:
context: .
containerfile: alpine318.cf
# Automatically build node's configuration based on attributes specified in this file
templates:
bird.tmpl:
path: configs/${node}.bird.cfg
builder: alpine318
# Automatically build specified binaries
binaries:
bird:
builder: builders/bird.cf
env: debian12
default:
node:
binds:
- scripts/my_script.sh:./
- configs/${node}.bird.cfg:./
sysctls:
net.ipv6.conf.all.forwarding: 1
exec:
- ./bird -s ./${node}.bird.cfg &
links:
attributes:
latency: 5
forward_metric: 1
reverse_metric: 1
# Load graph from existing file
# GML is standard and encodes coordinates, nice for visualization
graph:
path: topo.gml
format: gml
# Either encode full graph here, or override/extend node/link specific attributes
# priority in case of clash: graph file < default < nodes/links section
nodes:
r2:
binds:
- configs/${node}.gobgp.cfg:./
exec:
- ./gobgp -f ${node}.gobgp.cfg &
links:
- head: r0
tail: r1
attributes:
latency: 10