Skip to content

Operating the lab

Everything you need after the first successful run.

In this section

  •   Make targets


    The complete list — lab lifecycle, environment lifecycle, quality gates, and the targets the two vendored tooling repos contribute. What each one does and when to reach for it.

  •   Images


    The two local-only images this repo builds (neops-lab-frr, neops-lab-bootstrap), the four published images it consumes, and how to swap any of them for a local build.

  •   Adding a device


    The four-step loop: edit topology.json, regenerate, redeploy, commit the regenerated parameter files — because the generator tests will fail until you do.

  •   Troubleshooting


    Indexed by symptom. Most failures here are one of three boot-order races, each with a distinctive error string and a wait that already exists to prevent it.

The lifecycle at a glance

stateDiagram-v2
    [*] --> Clean
    Clean --> BaseUp: make local-env-init
    BaseUp --> LabUp: make local-lab-up
    LabUp --> Populated: make local-lab-discover
    Populated --> BaseUp: make local-lab-down
    LabUp --> BaseUp: make local-lab-down
    BaseUp --> Clean: make local-env-prune
    Populated --> Populated: make local-lab-discover

local-lab-down destroys the devices and stops the containers but keeps the Elasticsearch and Postgres volumes, so the CMS data survives. local-env-prune is the real reset.