diff options
Diffstat (limited to 'extensions/molecule/ospf_unnumbered')
| -rw-r--r-- | extensions/molecule/ospf_unnumbered/converge.yml | 7 | ||||
| -rw-r--r-- | extensions/molecule/ospf_unnumbered/inventory.yml | 26 | ||||
| -rw-r--r-- | extensions/molecule/ospf_unnumbered/molecule.yml | 28 | ||||
| -rw-r--r-- | extensions/molecule/ospf_unnumbered/topology.clab.yml | 20 | ||||
| -rw-r--r-- | extensions/molecule/ospf_unnumbered/verify.yml | 27 |
5 files changed, 108 insertions, 0 deletions
diff --git a/extensions/molecule/ospf_unnumbered/converge.yml b/extensions/molecule/ospf_unnumbered/converge.yml new file mode 100644 index 0000000..c5e906b --- /dev/null +++ b/extensions/molecule/ospf_unnumbered/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: fabric + gather_facts: false + roles: + - vyos.blueprints.base + - vyos.blueprints.ospf_unnumbered diff --git a/extensions/molecule/ospf_unnumbered/inventory.yml b/extensions/molecule/ospf_unnumbered/inventory.yml new file mode 100644 index 0000000..efaf93f --- /dev/null +++ b/extensions/molecule/ospf_unnumbered/inventory.yml @@ -0,0 +1,26 @@ +--- +all: + children: + vyos: + children: + fabric: + hosts: + r1: + ansible_host: clab-bp-ospf-r1 + ospf_unnumbered_router_id: 192.168.0.1 + base_interfaces: + - {name: eth3, addresses: [10.1.0.1/24]} + r2: + ansible_host: clab-bp-ospf-r2 + ospf_unnumbered_router_id: 192.168.0.2 + base_interfaces: + - {name: eth3, addresses: [10.2.0.1/24]} + vars: + ospf_unnumbered_interfaces: [eth1, eth2] + ospf_unnumbered_md5_key: molecule-ospf + ospf_unnumbered_group: fabric + vars: + ansible_network_os: vyos.vyos.vyos + ansible_connection: ansible.netcommon.network_cli + ansible_user: admin + ansible_password: admin diff --git a/extensions/molecule/ospf_unnumbered/molecule.yml b/extensions/molecule/ospf_unnumbered/molecule.yml new file mode 100644 index 0000000..9fa905c --- /dev/null +++ b/extensions/molecule/ospf_unnumbered/molecule.yml @@ -0,0 +1,28 @@ +--- +# VyOS runs as a container (containerlab kind vyosnetworks_vyos); +# the lab is deployed in prepare and destroyed in cleanup. +dependency: + name: galaxy + enabled: false +driver: + name: default + options: + managed: false +platforms: + - name: r1 + - name: r2 +provisioner: + name: ansible + config_options: + defaults: + host_key_checking: false + persistent_connection: + command_timeout: 60 + inventory: + links: + hosts: inventory.yml + playbooks: + prepare: ../_shared/lab_up.yml + cleanup: ../_shared/lab_down.yml +verifier: + name: ansible diff --git a/extensions/molecule/ospf_unnumbered/topology.clab.yml b/extensions/molecule/ospf_unnumbered/topology.clab.yml new file mode 100644 index 0000000..e2fb3c9 --- /dev/null +++ b/extensions/molecule/ospf_unnumbered/topology.clab.yml @@ -0,0 +1,20 @@ +name: bp-ospf +topology: + kinds: + vyosnetworks_vyos: + image: ${VYOS_IMAGE:=vyos:blueprints-ci} + nodes: + r1: + kind: vyosnetworks_vyos + r2: + kind: vyosnetworks_vyos + lan: + kind: linux + image: alpine:3 + links: + # two parallel unnumbered links -> ECMP, as on the docs page + - endpoints: ["r1:eth1", "r2:eth1"] + - endpoints: ["r1:eth2", "r2:eth2"] + # LAN side (eth0 on the docs page; eth0 is management in containerlab) + - endpoints: ["r1:eth3", "lan:eth1"] + - endpoints: ["r2:eth3", "lan:eth2"] diff --git a/extensions/molecule/ospf_unnumbered/verify.yml b/extensions/molecule/ospf_unnumbered/verify.yml new file mode 100644 index 0000000..d75a2ea --- /dev/null +++ b/extensions/molecule/ospf_unnumbered/verify.yml @@ -0,0 +1,27 @@ +--- +- name: Verify + hosts: fabric + gather_facts: false + tasks: + - name: Wait for OSPF adjacencies and routes + ansible.builtin.pause: + seconds: 45 + run_once: true + + - name: Run role checks + ansible.builtin.include_role: + name: vyos.blueprints.ospf_unnumbered + tasks_from: verify + + - name: Read the route to the other router's LAN + vyos.vyos.vyos_command: + commands: + - "show ip route {{ '10.2.0.0/24' if inventory_hostname == 'r1' else '10.1.0.0/24' }}" + register: _lan_route + + - name: The other LAN is learned via OSPF (redistribute connected) over both links + ansible.builtin.assert: + that: + - _lan_route.stdout[0] is search('Known via "ospf"') + - _lan_route.stdout[0] | regex_findall('via \S+ onlink') | length == 2 + quiet: true |
