From 8a069c1e24a3b19ebec5d6cb1cbbe20f69a48ad9 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sat, 20 Dec 2025 15:50:16 +0000 Subject: [PATCH] docs: Simplify README, link to issues for phase tracking --- README.md | 59 ++++++++----------------------------------------------- 1 file changed, 8 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 6a3b869..9bd742d 100644 --- a/README.md +++ b/README.md @@ -67,45 +67,16 @@ Reference: [arista-evpn-vxlan-clab](https://gitea.arnodo.fr/Damien/arista-evpn-v ## 📋 Project Phases -### Phase 1: YANG Path Discovery (Weeks 1-2) -> **Goal**: Map Arista EOS 4.35.0F YANG models and validate gNMI connectivity +Progress is tracked via issues. See [all issues](https://gitea.arnodo.fr/Damien/fabric-orchestrator/issues) or filter by phase: -- [ ] Enable and test gNMI on cEOS devices -- [ ] Explore available YANG models (OpenConfig vs Native Arista) -- [ ] Document working paths for: VLANs, Interfaces, BGP, VXLAN, MLAG -- [ ] Create discovery tooling for path exploration -- [ ] Build YANG path reference documentation +| Phase | Description | Issues | +|-------|-------------|--------| +| **Phase 1** | YANG Path Discovery - Map EOS 4.35.0F YANG models, validate gNMI | [phase-1-yang-discovery](https://gitea.arnodo.fr/Damien/fabric-orchestrator/issues?labels=7) | +| **Phase 2** | Minimal Reconciler - VLANs/VNIs, diff engine, CLI plan/apply | [phase-2-minimal-reconciler](https://gitea.arnodo.fr/Damien/fabric-orchestrator/issues?labels=8) | +| **Phase 3** | Full Fabric - BGP, MLAG, VRFs, dependency ordering | [phase-3-full-fabric](https://gitea.arnodo.fr/Damien/fabric-orchestrator/issues?labels=9) | +| **Phase 4** | Event-Driven - gNMI Subscribe, drift detection, webhooks | [phase-4-event-driven](https://gitea.arnodo.fr/Damien/fabric-orchestrator/issues?labels=10) | -### Phase 2: Minimal Reconciler (Weeks 3-4) -> **Goal**: Prove the reconciliation pattern with VLANs and VNI mappings - -- [ ] Define NetBox ConfigContext schema for intent -- [ ] Implement NetBox → YANG path mapper (VLANs only) -- [ ] Build basic diff engine (current vs desired state) -- [ ] Implement gNMI Get for state retrieval -- [ ] Implement gNMI Set for atomic changes -- [ ] Create CLI with `plan` and `apply` commands - -### Phase 3: Full Fabric Coverage (Weeks 5-8) -> **Goal**: Extend to complete EVPN-VXLAN fabric configuration - -- [ ] Add BGP underlay configuration -- [ ] Add BGP EVPN overlay configuration -- [ ] Add MLAG configuration (with coordinated peer updates) -- [ ] Add VRF and L3 VXLAN support -- [ ] Add interface configuration -- [ ] Implement dependency ordering for changes -- [ ] Add rollback capability - -### Phase 4: Event-Driven Automation (Weeks 9-10) -> **Goal**: Real-time drift detection and NetBox webhook integration - -- [ ] Implement gNMI Subscribe for config change telemetry -- [ ] Build drift detection engine -- [ ] Add NetBox webhook receiver (FastAPI) -- [ ] Implement event bus (Redis/NATS) -- [ ] Add auto-remediation option -- [ ] Create operational dashboard/logging +📌 **Project Board**: [View Kanban](https://gitea.arnodo.fr/Damien/fabric-orchestrator/projects) ## 📁 Project Structure @@ -119,33 +90,23 @@ fabric-orchestrator/ │ ├── cli.py # CLI interface (plan, apply, drift) │ ├── api.py # FastAPI server for webhooks │ ├── reconciler/ -│ │ ├── __init__.py │ │ ├── engine.py # Core reconciliation logic │ │ ├── diff.py # State comparison │ │ └── planner.py # Change ordering/dependencies │ ├── yang/ -│ │ ├── __init__.py │ │ ├── mapper.py # NetBox intent → YANG paths │ │ ├── paths.py # YANG path definitions │ │ └── validators.py # Schema validation │ ├── gnmi/ -│ │ ├── __init__.py │ │ ├── client.py # gNMI client wrapper │ │ └── transactions.py # Atomic operations │ ├── netbox/ -│ │ ├── __init__.py │ │ ├── client.py # NetBox API client │ │ └── models.py # Intent data models │ └── events/ -│ ├── __init__.py │ ├── handlers.py # Event handlers │ └── bus.py # Event bus (Redis) ├── tests/ -│ ├── test_reconciler.py -│ ├── test_yang_mapper.py -│ └── fixtures/ -│ ├── netbox_intent.json -│ └── device_state.json └── docs/ ├── architecture.md ├── yang-paths.md # Documented YANG paths @@ -182,10 +143,6 @@ fabric-orchestrator/ - [Arista BGP EVPN Configuration Example](https://overlaid.net/2019/01/27/arista-bgp-evpn-configuration-example/) - [Arista EVPN Deployment Guide](https://www.arista.com/en/solutions/evpn-vxlan) -### Event-Driven Automation -- [NetBox Webhooks](https://docs.netbox.dev/en/stable/integrations/webhooks/) -- [Event-Driven Ansible](https://www.ansible.com/blog/introducing-event-driven-ansible) - ## 🚀 Getting Started *Coming in Phase 1*