Skip to content

Commit 7fa882f

Browse files
authored
techlib evpn-vxlan dg lab updates (#221)
* Update Domain A+B AVD Data Models and ANTA tests * Update full configs for all Domains
1 parent bdf3cb0 commit 7fa882f

91 files changed

Lines changed: 30525 additions & 364 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 296 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,299 @@
1-
# AVD build artifacts — regenerated on every `make build*`
1+
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
2+
# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,macos,linux,ansible,python
3+
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,macos,linux,ansible,python
4+
5+
### Ansible ###
6+
*.retry
7+
8+
### Linux ###
9+
*~
10+
11+
# temporary files which can be created if a process still has a handle open of a deleted file
12+
.fuse_hidden*
13+
14+
# AVD build artifacts
215
avd/intended/
316
avd/reports/
417
avd/documentation/
18+
avd_inventory/config_backup/
19+
20+
# KDE directory preferences
21+
.directory
22+
23+
# Linux trash folder which might appear on any partition or disk
24+
.Trash-*
25+
26+
# .nfs files are created when an open file is removed but is still being accessed
27+
.nfs*
28+
29+
### macOS ###
30+
# General
31+
.DS_Store
32+
.AppleDouble
33+
.LSOverride
34+
35+
# Icon must end with two \r
36+
Icon
37+
38+
39+
# Thumbnails
40+
._*
41+
42+
# Files that might appear in the root of a volume
43+
.DocumentRevisions-V100
44+
.fseventsd
45+
.Spotlight-V100
46+
.TemporaryItems
47+
.Trashes
48+
.VolumeIcon.icns
49+
.com.apple.timemachine.donotpresent
50+
51+
# Directories potentially created on remote AFP share
52+
.AppleDB
53+
.AppleDesktop
54+
Network Trash Folder
55+
Temporary Items
56+
.apdisk
57+
58+
### macOS Patch ###
59+
# iCloud generated files
60+
*.icloud
61+
62+
### Python ###
63+
# Byte-compiled / optimized / DLL files
64+
__pycache__/
65+
*.py[cod]
66+
*$py.class
67+
68+
# C extensions
69+
*.so
70+
71+
# Distribution / packaging
72+
.Python
73+
build/
74+
develop-eggs/
75+
dist/
76+
downloads/
77+
eggs/
78+
.eggs/
79+
lib/
80+
lib64/
81+
parts/
82+
sdist/
83+
var/
84+
wheels/
85+
share/python-wheels/
86+
*.egg-info/
87+
.installed.cfg
88+
*.egg
89+
MANIFEST
90+
91+
# PyInstaller
92+
# Usually these files are written by a python script from a template
93+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
94+
*.manifest
95+
*.spec
96+
97+
# Installer logs
98+
pip-log.txt
99+
pip-delete-this-directory.txt
100+
101+
# Unit test / coverage reports
102+
htmlcov/
103+
.tox/
104+
.nox/
105+
.coverage
106+
.coverage.*
107+
.cache
108+
nosetests.xml
109+
coverage.xml
110+
*.cover
111+
*.py,cover
112+
.hypothesis/
113+
.pytest_cache/
114+
cover/
115+
116+
# Translations
117+
*.mo
118+
*.pot
119+
120+
# Django stuff:
121+
*.log
122+
local_settings.py
123+
db.sqlite3
124+
db.sqlite3-journal
125+
126+
# Flask stuff:
127+
instance/
128+
.webassets-cache
129+
130+
# Scrapy stuff:
131+
.scrapy
132+
133+
# Sphinx documentation
134+
docs/_build/
135+
136+
# PyBuilder
137+
.pybuilder/
138+
target/
139+
140+
# Jupyter Notebook
141+
.ipynb_checkpoints
142+
143+
# IPython
144+
profile_default/
145+
ipython_config.py
146+
147+
# pyenv
148+
# For a library or package, you might want to ignore these files since the code is
149+
# intended to run in multiple environments; otherwise, check them in:
150+
# .python-version
151+
152+
# pipenv
153+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
154+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
155+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
156+
# install all needed dependencies.
157+
#Pipfile.lock
158+
159+
# poetry
160+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
161+
# This is especially recommended for binary packages to ensure reproducibility, and is more
162+
# commonly ignored for libraries.
163+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
164+
#poetry.lock
165+
166+
# pdm
167+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
168+
#pdm.lock
169+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
170+
# in version control.
171+
# https://pdm.fming.dev/#use-with-ide
172+
.pdm.toml
173+
174+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
175+
__pypackages__/
176+
177+
# Celery stuff
178+
celerybeat-schedule
179+
celerybeat.pid
180+
181+
# SageMath parsed files
182+
*.sage.py
183+
184+
# Environments
185+
.env
186+
.venv
187+
env/
188+
venv/
189+
ENV/
190+
env.bak/
191+
venv.bak/
192+
193+
# Spyder project settings
194+
.spyderproject
195+
.spyproject
196+
197+
# Rope project settings
198+
.ropeproject
199+
200+
# mkdocs documentation
201+
/site
202+
203+
# mypy
204+
.mypy_cache/
205+
.dmypy.json
206+
dmypy.json
207+
208+
# Pyre type checker
209+
.pyre/
210+
211+
# pytype static type analyzer
212+
.pytype/
213+
214+
# Cython debug symbols
215+
cython_debug/
216+
217+
# PyCharm
218+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
219+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
220+
# and can be added to the global gitignore or merged into this file. For a more nuclear
221+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
222+
#.idea/
223+
224+
### Python Patch ###
225+
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
226+
poetry.toml
227+
228+
# ruff
229+
.ruff_cache/
230+
231+
# LSP config files
232+
pyrightconfig.json
233+
234+
### VisualStudioCode ###
235+
.vscode/*
236+
!.vscode/settings.json
237+
!.vscode/tasks.json
238+
!.vscode/launch.json
239+
!.vscode/extensions.json
240+
!.vscode/*.code-snippets
241+
242+
# Local History for Visual Studio Code
243+
.history/
244+
245+
# Built Visual Studio Code Extensions
246+
*.vsix
247+
248+
### VisualStudioCode Patch ###
249+
# Ignore all local history of files
250+
.history
251+
.ionide
252+
253+
### Windows ###
254+
# Windows thumbnail cache files
255+
Thumbs.db
256+
Thumbs.db:encryptable
257+
ehthumbs.db
258+
ehthumbs_vista.db
259+
260+
# Dump file
261+
*.stackdump
262+
263+
# Folder config file
264+
[Dd]esktop.ini
265+
266+
# Recycle Bin used on file shares
267+
$RECYCLE.BIN/
268+
269+
# Windows Installer files
270+
*.cab
271+
*.msi
272+
*.msix
273+
*.msm
274+
*.msp
275+
276+
# Windows shortcuts
277+
*.lnk
278+
279+
# ingnore images and other files not to be uploaded to GitHub
280+
.gitignored/*
281+
!.gitignored/.gitkeep
282+
283+
# ignore mkdocs serve privacy cache
284+
.cache
285+
286+
# ContainerLab
287+
288+
clab-*
289+
!startup-configs/*
290+
*.bak
291+
292+
# do NOT ignore public lab env variables
293+
!.vscode/*.public.env
294+
295+
# AI configs, skills, etc.
296+
.codex/*
297+
.claude/*
298+
!.claude/skills
299+
!.agents/skills

labs/techlib-vxlan-domain-ab/avd/DESIGN.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,21 +126,23 @@ The `custom_structured_configuration_*` pattern (already in use in the existing
126126
|---|---|---|---|---|
127127
| B-LEAF1 | 20, 40 | PROD | PROD | HostB1 (PC7, vlan 20), HostB2 (PC8, vlan 40) |
128128
| B-LEAF2 | (mirror of B-LEAF1) | PROD | PROD | (partner in ES for HostB1/B2) |
129-
| B-LEAF3 | 10, 40 | PROD | PROD | HostB3 (mirroring B-LEAF3/4 pair) |
130-
| B-LEAF4 | 10, 40 | PROD | PROD | HostB4 |
129+
| B-LEAF3 | 10, 60 | PROD + DEV | PROD + DEV | HostB3 (Eth7 single, vlan 60/Red), HostB4 (PC8, vlan 10, EVPN A/A) |
130+
| B-LEAF4 | 10, 70 | PROD + DEV | PROD + DEV | HostB9 — guide desc "B5" (Eth7 single, vlan 70/Brown), HostB4 (PC8 partner) |
131131
| B-LEAF5 | 40, 80 | PROD + DEV | PROD + DEV | B-SW1 uplink (trunk 40, 80) |
132132
| B-LEAF6 | 40, 80 | PROD + DEV | PROD + DEV | B-SW1 uplink (trunk 40, 80) |
133133
| B-LEAF7, B-LEAF8 (Gateway) | 10 (multi-domain), 60 (local), 70 (multi-domain) | PROD + DEV | **OISM disabled on Gateway** | HostB8 (PC9, vlan 60, EVPN A/A) |
134134

135-
> **Confirmation needed during first render:** the per-leaf VLAN distribution above is derived from a skim of the tech-library configs. If any specific leaf differs (e.g. B-LEAF3/4 carry a different VLAN set than shown), the host_vars will need adjustment. Flagged for review during first `make build` diff.
135+
> **Verified against the guide (Day 54 s4 endpoints refresh):** B-LEAF3/4 rows corrected from render-vs-guide structural diff — DEV VLANs 60/70 land via per-node filter tags; PURPLE (40) left the pod.
136136
137137
**Hosts (Domain B) + D-SW1 downstream:**
138138

139139
| Host | Attachment | VLAN | VRF | Multihoming |
140140
|---|---|---|---|---|
141141
| HostB1 | B-LEAF1/2 Port-Channel 7 | 20 | PROD | EVPN A/A |
142142
| HostB2 | B-LEAF1/2 Port-Channel 8 | 40 | PROD | EVPN A/A |
143-
| HostB3, HostB4 | B-LEAF3/4 similar pattern | (10, 40) | PROD | EVPN A/A |
143+
| HostB3 | B-LEAF3 Ethernet7 (single) | 60 | DEV | Standard access |
144+
| HostB4 | B-LEAF3/4 Port-Channel 8 | 10 | PROD | EVPN A/A |
145+
| HostB9 (guide desc "B5") | B-LEAF4 Ethernet7 (single) | 70 | DEV | Standard access |
144146
| HostB5, HostB6 | (attached downstream of B-SW1 via VLAN 40 access) | 40 | PROD | Standard access |
145147
| HostB7 | attached downstream of B-SW1 via VLAN 80 access | 80 | DEV | Standard access |
146148
| HostB8 | B-LEAF7/8 Port-Channel 9 | 60 | DEV | EVPN A/A (LACP system-id `c0d6.8200.0008`) |

0 commit comments

Comments
 (0)