3.4 KiB
3.4 KiB
CLAUDE.md
Project context
Arista EVPN/VXLAN network lab built on Containerlab + cEOS, simulating three interconnected zones:
- DC (Data Center): 2 spines, 8 leafs (4 MLAG/VTEP pairs), 2 MLAG border leafs, 4 access switches, 4 hosts
- Core: 2 L3 transit routers (iBGP AS 65500, OSPF underlay)
- Campus: 2 spines, 4 leafs (2 MLAG/VTEP pairs), 2 MLAG border leafs, 2 access switches, 2 hosts
A gold VRF is stretched end-to-end between DC and Campus through the Core (EVPN
Type-5, stitched over eBGP IPv4 on the Core).
Source of truth repo: https://gitea.arnodo.fr/Damien/arista-evpn-vxlan-clab
Naming convention
- Hostname format:
<area>-<role><n>wherearea∈{dc, campus, core} - Examples:
dc-leaf1,campus-border-leaf2,core1 - This convention is used as-is for IPFabric site separation
(regex:
^(dc|campus|core)-?.*$)
Repository structure
README.md— overview, IP addressing, VNI mapping, control plane, quickstartTROUBLESHOOTING.md— diagnostic proceduresEND_TO_END_TESTING.md— end-to-end test scenariosevpn-lab.clab.yml— Containerlab topology definitionconfigs/— Arista EOS configs per node (<hostname>.cfg)hosts/— network configuration for simulated Linux hostsassets/— diagrams (drawio/svg)
Tech stack
- Containerlab for topology orchestration
- cEOS (containerized Arista EOS) as the network OS
- IPFabric for network assurance and site separation
- Gitea (self-hosted,
gitea.arnodo.fr) as the source of truth
GitOps workflow — mandatory rule
Every action on this project must be tracked by a Gitea issue.
- Before starting any work (config change, topology addition, documentation, etc.),
confirm an issue exists and reference it in commits (
Refs #<n>orCloses #<n>). - If no issue covers the identified need: create the issue first, describe the problem/requirement, and only then act on it.
- No TODO should ever be left "floating" in code, commits, or discussions: it's either already an issue, or it must become one immediately.
- This
CLAUDE.mdfile stays general: it must never contain one-off tasks. Action details live exclusively in issues.
Style guidelines
- Be concise and direct — no filler, no unnecessary preamble
- Issues: short title, straight to the point description (context, expected outcome, no fluff)
- Commit messages: short, factual, imperative mood
- Documentation (README, TROUBLESHOOTING, etc.): technical and dense — tables over prose, no marketing tone, no redundant explanations
- Avoid restating what's already documented elsewhere — link/reference instead of duplicating
Contribution conventions
- Atomic commits, clear message, reference to the associated issue
- Any Arista config change must stay consistent with the IP addressing / VNI / RD
tables documented in
README.md - Any topology change (
evpn-lab.clab.yml) must be reflected inassets/(diagram) and in theREADME.mdtables - New validation procedures go in
END_TO_END_TESTING.md; known issues go inTROUBLESHOOTING.md
Default behavior for Claude
- Before any action, identify the corresponding Gitea issue (or create one first)
- Stay within the scope of the issue being worked on — don't drift to other topics
- Strictly follow the
<area>-<role><n>naming convention - Never introduce hardcoded TODO/FIXME in repo files — always go through an issue