Repository navigation
Expand file tree
/
Copy pathdigsinet.yml
More file actions
175 lines (158 loc) · 4.47 KB
/
Copy pathdigsinet.yml
File metadata and controls
175 lines (158 loc) · 4.47 KB
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# name of the topology
name: digsinet
topology:
# currently only containerlab type is supported
# type can later be used to create siblings in different tools, controllers will then possibly need to create the sibling and start these tools
type: containerlab
file: ./digsinet.clab.yml
# interval to check the topology and siblings for changes in seconds
interval: 1
# FIX (version-mismatch-bugs): 120s was too short on a laptop. Booting ~5 cEOS nodes
# (realnet 2 + CI 2 + security 1) regularly exceeds 120s, so the main process timed out
# and exit(1)'d before the security sibling finished building. Raised to 600s.
# Original: create_sibling_timeout: 120
create_sibling_timeout: 600
# interfaces and apps running for the main topology
realnet:
apps:
# interfaces to monitor real net for changes and/or topology updates
interfaces:
gnmi:
nodes: "ceos(.*)"
datatype: "config"
paths:
- "openconfig:interfaces/interface[name=Ethernet1]"
# TODO implement per-path config of datatype and other gNMI options
#path: "openconfig:interfaces/interface[name=Ethernet1]"
#datetype: "config"
# TODO currently unimplemented:
# TODO currently unimplemented:
strip:
- "openconfig:interfaces/interface[name=Management0]"
# siblings of the topology to be created
siblings:
# each sibling is a separate containerlab topology and should have a descriptive name
continuous_integration:
# topology-adaption section allows to modify the topology of the sibling
topology-adjustments:
node-remove:
node-name: "ceos2"
node-add:
ceos3:
kind: ceos
image: ceos:latest
#link-remove:
# - endpoints: ["ceos1:eth1", "ceos2:eth1"]
link-add:
- endpoints: ["ceos1:eth1", "ceos3:eth1"]
# assign interfaces to be monitored for changes and used for topology updates
interfaces:
gnmi:
# gnmi section allows to sync the sibling with the main topology using gNMI
nodes: "ceos(.*)"
datatype: "config"
# TODO currently unimplemented:
paths:
- "openconfig:interfaces/interface[name=Ethernet1]"
# TODO currently unimplemented:
strip:
- "openconfig:interfaces/interface[name=Management0]"
# assign a controller to the sibling
controller: "ci"
# specify if the sibling should be started automatically
autostart: true
security:
topology-adjustments:
node-remove:
node-name: "(.*)eos2"
node-add:
afl:
kind: linux
image: alpine:latest
link-add:
- endpoints: ["ceos1:eth1", "afl:eth1"]
interfaces:
gnmi:
nodes: "ceos1"
datatype: "config"
# TODO currently unimplemented:
paths:
- "openconfig:interfaces/interface[name=Ethernet1]"
# TODO currently unimplemented:
strip:
- "openconfig:interfaces/interface[name=Management0]"
controller: "sec"
autostart: true
traffic_engineering:
topology-adjustments:
# TODO currently unimplemented:
# collapse:
# endpoint: "ceos2:eth1"
# replace-with-node:
# name: "collapsed-net-1"
# kind: linux
# image: pynetlab/ubuntuping:latest
interfaces:
gnmi:
nodes: "ceos1"
datatype: "config"
# TODO currently unimplemented:
paths:
- "openconfig:interfaces/interface[name=Ethernet1]"
# TODO currently unimplemented:
strip:
- "openconfig:interfaces/interface[name=Management0]"
controller: "te"
autostart: false
controllers:
ci:
module: "controllers.ci"
builder: "containerlab"
interfaces:
- gnmi
apps:
- ci
sec:
module: "controllers.sec"
builder: "containerlab"
interfaces:
- gnmi
apps:
- sec
- hello_world
te:
module: "controllers.te"
builder: "containerlab"
interfaces:
- gnmi
apps:
- hello_world
builders:
containerlab:
module: "builders.containerlab"
interfaces:
gnmi:
module: "interfaces.gnmi"
port: 6030
username: "admin"
password: "admin"
apps:
hello_world:
module: "apps.hello_world"
ci:
module: "apps.ci"
sec:
module: "apps.sec"
kafka:
host: "localhost"
port: 29092
topics:
num_partitions: 1
replication_factor: 1
offset:
reset_type: "earliest"
rabbit:
host: "localhost"
port: 5672
username: "digsinet"
password: "testing123#!"