Repository navigation
CML Lab Builder 3.1.0
Downloads
- Already on 3.0.0: the app offers this update by itself (small patch,
cml-lab-builder-patch-3.1.0.zip, sha256-checked against SHA256SUMS.txt). - New install:
CMLLabBuilder-3.1.0-windows-x64.zip,CMLLabBuilder-3.1.0-linux-x64.tar.gz, orsudo apt install ./cml-lab-builder_3.1.0_amd64.deb. - ENCOR Lab Builder 1.7 - 2.1: the app shows "full download"; the
ENCORLab-*/encorlab_*files are the same builds under the old names.
Fuzzy search in the library, plus the library updates below. A patch for 3.0.0 (same runtime 2): 3.0.0 offers it
by itself and installs it with Install update. ENCOR Lab Builder 1.7 - 2.1 still get the full download banner.
Added
- Search bar in Library & courses. Filters the online library as you type and ranks the results, best first,
with the matched letters highlighted. It searches titles, lab ids, descriptions, topics (blueprint items and
domains), the courses a lab is in, platforms and node types (iol-xe,nxosv9000, or nexus, nx-os, ios-xe).
The matching is fuzzy: it tolerates typos (mutlicast,redistrbution; 1 edit for 4-7 letters, 2 for longer
words) and accepts abbreviations and partial words (vrf lit,ospf stb,mcast,evpn mpls). Each word must
match. It works together with new filters for labs/courses, installed / not installed / update available, one
course, and Hide RAM heavy./orCtrl+Kjumps to the box,Escclears it, and a message with Clear search
and filters appears when nothing matches. It all runs in the page over the index that is already loaded
(static/fuzzy.js, no dependencies): no server calls while typing, the text is normalized once per load, and only
the word being typed is re-scored. About 1 ms per keystroke for 300 labs. The lab list's Search labs box now uses
the same fuzzy, ranked and highlighted matching. - Library index search fields: lab entries in
library/index.json(andlabs/index.json) now carrydomain,
track,platformsandnode_types, and/api/labsreportstrackandnode_types. Older apps ignore the new
fields, and older indexes still load; search then simply has less to match. - New library lab
19-evpn-mpls: Walkthrough: BGP EVPN over MPLS (IOS-XE, IOL). 8iol-xenodes (about 8 GB
RAM): OSPF + LDP core, iBGPl2vpn evpnthrough a route reflector, VLAN-based EVIs 10/20 with bridge domains and
service instances stretching two VLANs across three sites, route type 2/3 and MAC verification, same-VLAN pings,
and an optional EVPN-VPWS step. Published aslibrary/19-evpn-mpls.cmllab(andlabs/19-evpn-mpls.encorlabfor
2.x). Expected outputs come from Cisco documentation and are not yet verified on CML. - New library lab
20-evpn-vxlan-superspine: Walkthrough: BGP EVPN VXLAN across two data centers with super spines
(5-stage Clos). 12 nodes (4nxosv9000leaves, 4iol-xespines/super spines, 4 IOL hosts; about 56 GB RAM, RAM
heavy): OSPF underlay through leaf - spine - super spine - spine - leaf, iBGPl2vpn evpnwith the super spines as
route reflectors, VLANs 10/20 as L2VNIs 10010/10020 on NVE VTEPs with BGP ingress replication, same-VLAN pings from
DC1 to DC2, and an optional L3VNI VRF with a distributed anycast gateway. Published as
library/20-evpn-vxlan-superspine.cmllab(andlabs/20-evpn-vxlan-superspine.encorlabfor 2.x). Expected outputs
come from Cisco documentation and are not yet verified on CML.
Fixed
- Library labs
19-evpn-mplsand20-evpn-vxlan-superspine(now version 2): the routers booted with no day-0
config on CML (no hostname, unconfigured CEs/hosts, IOL setup dialog). Cisco'siol-xenode definition requires
every Ethernet port to have some IP configuration in the day-0 config, or IOL ignores the whole config and starts the
initial configuration dialog; the hostname-only core routers and the CEs/hosts (only their cabled ports) did not.
Every IOL node now lists all four ports (description,no ip address, cabled linksno shutdown, unused ports
shutdown), so the hostname,no ip domain lookupand the CE/host configs apply, and the step 1 CDP check sees
its neighbors. The Nexus leaves in lab 20 also get port descriptions and their links enabled. Update both labs in
the library, then destroy and rebuild them in CML. - Library lab
08-vrf-lite(now version 2): PE booted with no day-0 config on IOL (no hostname, setup dialog):
its two ports had descriptions but no IP configuration, the same IOL trigger as above. Every IOL node (PE, CEA, CEB)
now lists all four ports (no ip addresson the PE links, descriptions on the CE links, unused ports shut); the
customer configs are unchanged. An audit of every library lab found no otheriol-xenode without IP configuration
on an Ethernet port (IOL L2 switches have no such requirement), and a test now checks the whole library. Update
the lab in the library, then destroy and rebuild it in CML. - Library lab
19-evpn-mpls: Apply this step on the BGP EVPN step no longer sends a stray
exit-address-familyin router configuration mode (where IOS rejects it) on the RR and PE1-PE3. The line was removed
from the step config. Installed copies show Update available in the library. - CI: the Debian package check (
deb-test) failed on 3.0.0 although the package was fine. The workflow ended with
test -d ~/.config/cml-lab-builder/app, but the smoke test removes its test patches (<data>/app) when it
finishes, so that line could never pass; it failed silently because the plaintestlines printed nothing. The
job now runspackaging/deb_docker_test.sh: the same checks as the localdeb_chroot_test.sh(install with
dependencies, menu launch, single instance, smoke test with patch + auto-update as a normal user,/optand
dpkg --verifyunchanged, upgrades over a user patch, remove + purge keep the data), in adebian:12container
pinned by digest. Each check prints PASS/FAIL, and a failure lists the failed checks plus the log tails. The test
waits for the server port and for the app to stop, polls state files instead of sleeping, and retries apt.