summaryrefslogtreecommitdiff
path: root/extensions/molecule/ospf_unnumbered
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/molecule/ospf_unnumbered')
-rw-r--r--extensions/molecule/ospf_unnumbered/converge.yml7
-rw-r--r--extensions/molecule/ospf_unnumbered/inventory.yml26
-rw-r--r--extensions/molecule/ospf_unnumbered/molecule.yml28
-rw-r--r--extensions/molecule/ospf_unnumbered/topology.clab.yml20
-rw-r--r--extensions/molecule/ospf_unnumbered/verify.yml27
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