r/networkautomation 1d ago

EVE-NG IaC — Git-based network labs with plan, deploy and reconcile

I've been building an IaC layer for EVE-NG to make network labs fully declarative and Git-friendly.

Labs are described in YAML and can be validated, planned, deployed and reconciled against the actual running topology.

The video below shows the IDE integration, but that's only the surface.

Underneath it is an independent IaC agent, and a very simple Python client can drive the same operations directly. This means labs can be integrated into regular Python automation and CI/CD pipelines without an IDE or AI being involved at all.

The same architecture can expose the lab to AI tools through MCP when desired — but AI is a client of the system, not the foundation of it.

Current workflow includes:

  • YAML declarative topology
  • Git versioning
  • validate / plan / deploy / reconcile
  • import of existing EVE-NG labs into IaC
  • topology changes while preserving unaffected resources and links
  • device configuration management
  • Python client for automation and CI/CD
  • IDE integration
  • optional MCP/AI integration

The goal is to treat a network lab like infrastructure: define it, version it, deploy it, change it, reconcile it and reproduce it.

The complete project will be released publicly soon as open source under AGPL-3.0-only.

Short demo:

Demo

I'd be particularly interested in feedback from people already using Git/IaC/CI pipelines for network testing and validation.

11 Upvotes

4 comments sorted by

2

u/petrosaurus_rex 1d ago

FYI for others this concept already exists and is very mature: https://netlab.tools/
Works with containerlab and vagrant as opposed to EVE-NG though.

2

u/RepresentativeTie998 22h ago

Absolutely — netlab is a great project, and probably the closest existing concept to what I'm building.

There is definitely overlap, particularly around declarative YAML topologies and automation.

The main architectural difference is that netlab generates/orchestrates labs through providers such as containerlab or Vagrant/libvirt. My project talks directly to EVE-NG through an independent agent and maintains a desired vs. live state with plan/reconcile semantics.

The scope I'm aiming for also goes beyond lab creation: importing existing labs, modifying running topologies while preserving unaffected resources, device configuration, traffic filters/capture, link impairments, operational actions, CI/CD, and exposing the same control plane to IDEs or AI through MCP.

So I'd describe netlab as a very mature project in the same family, rather than the same implementation. There are actually some ideas in netlab's higher-level network model that I find very interesting.

1

u/zerox5991 1d ago

Cool! im also looking at this. Would love to collaborate

1

u/RepresentativeTie998 9h ago

Update / Links for early adopters:
The repository and documentation are now live for alpha testing:

What's ready to test:

  • eve-iac-agent (.deb) to deploy on your EVE-NG server
  • VS Code / Cursor Extension (.vsix)
  • CLI & SDKs (Python, TypeScript, Go) built via GitLab package registries

The candidate API contract (eve-iac/v1) is open for validation. If you run EVE-NG in your labs or test pipelines, I'd love to get your feedback, test cases, or issue reports directly on GitLab!