Skip to main content

Validating a customization

Three levels, from cheapest to most complete. The first two don't need Docker.

Level 1: static checks

./build.sh check

Compiles all the overlay's Python code and runs the unit tests under tests/. As a guardrail, it also fails if directories that belong to the base images (yang, device-ext, proxy/cap_allow) appear in the tree — this repo must never contain them. Synthetic ONU inventory XML under seeds/ is allowed.

Level 2: dry-run the daemons

The daemons accept --dry-run/--once to execute once without touching the system:

PYTHONPATH=src/daemons python3 src/daemons/onu_dhcp.py --dry-run --once

Keep in mind that outside dry-run, onu_dhcp.py creates and deletes network interfaces: run it inside the container or a lab network namespace.

Level 3: smoke test

docker compose -f examples/docker-compose.yml up -d
docker compose -f examples/docker-compose.yml logs --tail=100 olt
ssh -p 2222 admin@localhost

With your freshly built image up, check that the three planes start, the eCLI answers, and the daemons show up in the log without errors. For an end-to-end validation with a BNG and Altiplano, move on to the containerlab lab.