Convert Your Cisco CML 2.x Labs to CML 2.5+ – Checklist
Here’s a complete checklist that covers every step required to ensure your labs are fully compatible with the latest CML version. (issue i ran into while doing ENARSI (300-410) v1.1 Video Training Series (2023 Blueprint) on Udemy)
You can also copy and paste these steps into any LLM and ask it to fix it for you(also keep in mind i was using the free version of CML)
This guide ensures all metadata, node definitions, and interface names are updated properly.
🧱 1. Top-Level YAML Structure
Make sure your .yaml
lab files include these required top-level keys:
annotations: []
smart_annotations: []
nodes: [...]
links: [...]
lab:
version: "0.3.0"
description: Your lab description here
notes: Any notes you want to include
✅ Tip: lab.version: "0.3.0"
is mandatory for compatibility with CML 2.5+.
⚙️ 2. Node Definition Updates
Replace any use of the older iosv
node definition with iol-xe
.
Find and replace:
node_definition: iosv
with:
node_definition: iol-xe
🔌 3. Fix Interface Labels (YAML Metadata)
In the interface metadata (under each node), update labels from GigabitEthernet0/x
to the proper format:
Ethernet0/x
📌 For example:
interface: i0
label: Ethernet0/0
🛠️ 4. Fix Interface Names (Router Configs)
Inside each router’s config section (in the configuration:
block), make sure you’re using Ethernet0/x
, not GigabitEthernet0/x
.
✅ Example fix:
interface Ethernet0/0
ip address 10.0.0.1 255.255.255.0
🧽 5. Cleanup Lab Metadata
Make sure your lab file doesn’t include unsupported keys (such as author
). Your final lab metadata should look like this:
lab:
version: "0.3.0"
description: ...
notes: ...
✅ Final Output Checklist
Before importing your YAML file into CML 2.5+, confirm the following:
✅ Top-level keys include annotations
, smart_annotations
, nodes
, links
, and lab
✅ lab.version
is "0.3.0"
✅ node_definition
is iol-xe
✅ All interface labels are Ethernet0/x
✅ All router configs use Ethernet0/x