docs: Update README - remove Kestra comparison, update status
- Remove "Kestra vs Prefect Comparison" section (decision made) - Update project status to reflect current phase - Simplify "Why Prefect?" section - Clean up architecture diagram formatting
This commit is contained in:
30
README.md
30
README.md
@@ -29,32 +29,32 @@ Think `terraform plan` and `terraform apply`, but for your network fabric — po
|
||||
│ Webhook / Polling
|
||||
▼
|
||||
┌──────────────────────────────────────────────────────────────────────────────┐
|
||||
│ ORCHESTRATION LAYER (PREFECT) │
|
||||
│ │
|
||||
│ ORCHESTRATION LAYER (PREFECT) │
|
||||
│ │
|
||||
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ Prefect Flows (Python) │ │
|
||||
│ │ Prefect Flows (Python) │ │
|
||||
│ │ ┌───────────────────┐ ┌───────────────────┐ ┌─────────────────────┐ │ │
|
||||
│ │ │ fabric_reconcile │ │ handle_drift │ │ drift_remediation │ │ │
|
||||
│ │ │ (plan/apply) │ │ (subscribe) │ │ (auto-fix) │ │ │
|
||||
│ │ └───────────────────┘ └───────────────────┘ └─────────────────────┘ │ │
|
||||
│ └────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ │
|
||||
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ Prefect Tasks (Python) │ │
|
||||
│ │ Prefect Tasks (Python) │ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────────────┐ │ │
|
||||
│ │ │ Intent Parser │ │ Diff Engine │ │ gNMI Client │ │ │
|
||||
│ │ │ (NetBox→YANG) │ │ (Want vs Have) │ │ (pygnmi wrapper) │ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └───────────────────────┘ │ │
|
||||
│ └────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ │
|
||||
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ FastAPI Webhook Receiver │ Prefect .serve() │ Prefect Server (UI) │ │
|
||||
│ └────────────────────────────────────────────────────────────────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
│ gNMI Get/Set/Subscribe
|
||||
▼
|
||||
│ gNMI Get/Set/Subscribe
|
||||
▼
|
||||
┌──────────────────────────────────────────────────────────────────────────────┐
|
||||
│ DEVICE LAYER │
|
||||
│ DEVICE LAYER │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ spine1 │ │ spine2 │ │ leaf1 │ │ leaf2 │ ... │
|
||||
│ │ gNMI:6030 │ │ gNMI:6030 │ │ gNMI:6030 │ │ gNMI:6030 │ │
|
||||
@@ -77,16 +77,6 @@ We chose [Prefect](https://prefect.io) as the orchestration engine for several r
|
||||
| **Retry & error handling** | Built-in retry policies with `@task(retries=3)` |
|
||||
| **Human-in-the-loop** | Native `pause_flow_run()` for approval workflows |
|
||||
|
||||
### Kestra vs Prefect Comparison
|
||||
|
||||
| Aspect | Kestra | Prefect |
|
||||
|--------|--------|---------|
|
||||
| **Workflow definition** | YAML external files | Python code (`@flow`, `@task`) |
|
||||
| **Secrets management** | ❌ Paid in OSS | ✅ Free (`Secret` blocks) |
|
||||
| **Code packaging** | Container required | Not required |
|
||||
| **Integration** | Isolated scripts | Native Python integration |
|
||||
| **Webhooks** | Built-in triggers | FastAPI + `run_deployment()` |
|
||||
|
||||
## 🎯 Target Fabric
|
||||
|
||||
This project is designed for the Arista EVPN-VXLAN ContainerLab topology:
|
||||
@@ -342,4 +332,4 @@ if __name__ == "__main__":
|
||||
|
||||
---
|
||||
|
||||
**Status**: 🚧 Active Development - Migrating to Prefect orchestration (Phase 4)
|
||||
**Status**: 🚧 Active Development - Phase 2 (Core Components) & Phase 4 (Prefect Integration)
|
||||
|
||||
Reference in New Issue
Block a user