Skip to content

Commit 93f46b7

Browse files
committed
clab fixes
1 parent b27c1db commit 93f46b7

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

scripts/get_configs.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,12 @@ async def get_device_configs(client: InfrahubClient) -> None:
9494
else:
9595
extension = "cfg"
9696

97-
# Create role-based subdirectories
98-
role = device.role.value if hasattr(device, "role") else "unknown"
99-
role_path = base_path / role
100-
role_path.mkdir(parents=True, exist_ok=True)
101-
102-
# Save the configuration
103-
output_file = role_path / f"{device.name.value}.{extension}"
97+
# Save the configuration directly in devices folder
98+
output_file = base_path / f"{device.name.value}.{extension}"
10499
with open(output_file, "w") as file:
105100
file.write(artifact_content)
106101

107-
print(f" ✓ Saved {role}/{device.name.value}.{extension}")
102+
print(f" ✓ Saved {device.name.value}.{extension}")
108103
config_count += 1
109104

110105
except Exception as e:

templates/clab_topology.j2

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,36 @@ mgmt:
77
network: {{ topology.node.name.value | lower() }}
88
ipv4-subnet: {{ topology.node.management_subnet.node.prefix.value }}
99

10-
{% if topology.node.devices.edges is defined %}
11-
topology:
10+
{% if topology.node.devices.edges is defined %}
11+
topology:
12+
kinds:
13+
ceos:
14+
image: "${CEOS_DOCKER_IMAGE}"
15+
exec:
16+
- sleep 10
17+
- FastCli -p 15 -c 'security pki key generate rsa 4096 eAPI.key'
18+
- FastCli -p 15 -c 'security pki certificate generate self-signed eAPI.crt key eAPI.key generate rsa 4096 validity 30000 parameters common-name eAPI'
19+
linux:
20+
image: "${LINUX_HOST_DOCKER_IMAGE}"
21+
1222
nodes:
1323
{% for device in topology.node.devices.edges %}
1424
{{ device.node.name.value }}:
1525
kind: {{ device.node.platform.node.containerlab_os.value }}
1626
type: {{ device.node.device_type.node.name.value }}
1727
image: {{ device.node.os_version.value }}
1828
{% if device.node.primary_address.node.address is defined %}
19-
management:
20-
ipv4: {{ device.node.primary_address.node.address.value }}
29+
{% set mgmt_ip = device.node.primary_address.node.address.value.split('/') %}
30+
mgmt-ipv4: {{ mgmt_ip[0] }}
2131
{% endif %}
2232
{% endfor %}
33+
{% if networkos == "ceos" %}
34+
startup-config: generated-configs/devices/{{ device.node.name.value }}.cfg
35+
{% endif %}
36+
{% if networkos == "linux" %}
37+
env:
38+
TMODE: lacp
39+
{% endif %}
2340

2441
links:
2542
{% set processed_endpoints = [] %}

0 commit comments

Comments
 (0)