Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
f2106c6
t6836 vfr module init
omnom62 Mar 27, 2025
e84b3a0
argspec facts module for VRF
omnom62 Mar 28, 2025
3f5ee95
T6834 static_route module to support interface_route (#398)
omnom62 Mar 2, 2025
a3502b1
T6829 (area interfaces in OSPFv3 1.3-1.5) re-init (#399)
omnom62 Mar 2, 2025
670fa7b
Resolve merge conflicts
omnom62 Mar 28, 2025
3a75a85
Merge branch 'main' into t6836_vrf_support
omnom62 Mar 28, 2025
d52c099
vrf parsers set_table
omnom62 Apr 2, 2025
487d496
more vrf paresers added
omnom62 Apr 2, 2025
e691897
Merge branch 'main' into t6836_vrf_support
omnom62 Apr 2, 2025
9d41b8d
Merge branch 'main' into t6836_vrf_support
omnom62 Apr 2, 2025
ad5dc38
vrf facts main code
omnom62 Apr 2, 2025
e14451c
vrf data structures
omnom62 Apr 3, 2025
7fecd8a
simple vrf config push
omnom62 Apr 3, 2025
c815631
simple vrf config push
omnom62 Apr 3, 2025
9356f5a
some work on vrf
omnom62 Apr 11, 2025
8ba42f2
basic facts done
omnom62 Apr 14, 2025
fa1aefa
Merge branch 'main' into t6836_vrf_support
omnom62 Apr 14, 2025
d99e860
Merge branch 'main' into t6836_vrf_support
omnom62 Apr 16, 2025
3bb984e
vrf instance parsers wif
omnom62 Apr 15, 2025
25ba0ee
ongoing parser testing
omnom62 Apr 16, 2025
fa003b1
vrf dev work
omnom62 Apr 17, 2025
ff6c3a6
testing with paresers
omnom62 Apr 20, 2025
7db58a6
all basic settings
omnom62 Apr 20, 2025
39f8298
merged for vrf
omnom62 Apr 21, 2025
913d2fe
more states for VRF
omnom62 Apr 22, 2025
fe4496d
vrf deleted, overriden
omnom62 Apr 29, 2025
9821816
overriden
omnom62 Apr 29, 2025
6af01b2
sanity
omnom62 Apr 29, 2025
b9ae6c1
rst for vrf
omnom62 Apr 29, 2025
4eb2e7f
changelog
omnom62 Apr 29, 2025
9a54809
fix changelog
omnom62 Apr 29, 2025
13292c1
doc fix
omnom62 Apr 29, 2025
008b32b
vrf delete idempotent
omnom62 Apr 30, 2025
e0598a4
deleted and overridden for VFR
omnom62 May 2, 2025
4ac09e6
overriden
omnom62 May 2, 2025
025b57b
overriden vrf idempotency
omnom62 May 7, 2025
c1ad7f7
asdvanced vrf settings
omnom62 May 7, 2025
40c3826
Merge branch 'main' into t6836_vrf_support
omnom62 May 7, 2025
b0cdb31
afi for VRF facts
omnom62 May 7, 2025
71ec53a
VRF AFI config
omnom62 May 9, 2025
dfece4e
VRF AFI tests
omnom62 May 10, 2025
336935b
vrf dev work
omnom62 May 14, 2025
45fabbf
Merge branch 'main' into t6836_vrf_support
omnom62 May 15, 2025
66a0aad
Merge branch 'main' into t6836_vrf_support
omnom62 May 23, 2025
6380794
Merge branch 'main' into t6836_vrf_support
omnom62 May 23, 2025
41fe07d
afi dev work
omnom62 May 15, 2025
9d028cc
afi and deep_merge fixes for VRF
omnom62 May 27, 2025
eeea89d
afi basic provisioning
omnom62 Jun 6, 2025
08a8874
changelog
omnom62 Jun 8, 2025
27fcfa8
vrf sanity fixes
omnom62 Jun 9, 2025
90f5b1c
VRF AFI protocols and route-maps
omnom62 Jun 9, 2025
c5b08ff
vrf parsed, gathered, rendered fixes
omnom62 Jun 12, 2025
02d9502
docstrings VRF
omnom62 Jun 16, 2025
24a0a87
docstrings VRF
omnom62 Jun 16, 2025
dba292c
docstring VRF
omnom62 Jun 16, 2025
6c087ff
module doc update
omnom62 Jun 16, 2025
15d893d
vrf module examples
omnom62 Jun 16, 2025
857ab93
VRF doc examples
omnom62 Jun 16, 2025
2c78bdc
linter
omnom62 Jun 16, 2025
e261496
VRF unit tests init
omnom62 Jun 16, 2025
5ef7fec
VRF unit tests init
omnom62 Jun 17, 2025
d2935c7
VRF unit tests updates
omnom62 Jun 17, 2025
6310704
fixed VRF overridden and deleted unit test cases
omnom62 Jun 19, 2025
cffc5b4
Merge branch 'main' into t6836_vrf_support
omnom62 Jun 19, 2025
10bee9d
VRF integration tests init
omnom62 Jun 20, 2025
c5d36dc
VRF int tests rtt, merged, replaced
omnom62 Jun 22, 2025
6e23e35
VRF int testt gathered, rendered
omnom62 Jun 22, 2025
07d8ed8
VRF int tests deleted, rendered, overridden and empty_config
omnom62 Jun 24, 2025
9e78e05
linter
omnom62 Jun 24, 2025
2552fcf
Merge branch 'main' into t6836_vrf_support
omnom62 Jun 24, 2025
13f285f
VRF int test misc fixes
omnom62 Jun 26, 2025
a679a52
VRF global idepmotency
omnom62 Jun 27, 2025
ab70c4e
Merge branch 'main' into t6836_vrf_support
omnom62 Jun 27, 2025
a45fb14
fixing py3.13 runner deps
omnom62 Jun 29, 2025
b4c31cc
Merge branch 'main' into t6836_vrf_support
omnom62 Jul 1, 2025
5d9a41e
fixing lint
omnom62 Jul 1, 2025
7166630
fixing sanity
omnom62 Jul 1, 2025
0dffc59
reverting previous fixes
omnom62 Jul 1, 2025
1ad30b4
VRF protocols load_module and provisioning flow
omnom62 Jul 6, 2025
484daa0
fixes to bgp VRF protocol methods
omnom62 Jul 7, 2025
ce979df
VRF protocol facts init
omnom62 Jul 7, 2025
3909085
VRF protocol load_module works
omnom62 Jul 9, 2025
b4b4c6f
reworked VRF load_module routine
omnom62 Jul 10, 2025
d9b95b4
vrf protocl static fixed
omnom62 Jul 14, 2025
4a4e777
Fixed static and ospf VRF protocol provisioning
omnom62 Jul 16, 2025
7f13b3d
Fixed static and ospf VRF protocol provisioning
omnom62 Jul 18, 2025
67191a2
VRF doc update
omnom62 Jul 20, 2025
f004fb7
VRF docs update
omnom62 Jul 20, 2025
ab19e8d
VRF doc updates
omnom62 Jul 20, 2025
60b1d28
unit tests for VRF protocols
omnom62 Jul 21, 2025
a2975d8
VRF BGP protcol sanity check
omnom62 Jul 22, 2025
2e0dad6
VRF protocol fixed sanity checks (DOCUMENTATION)
omnom62 Jul 22, 2025
e477ca2
Merge branch 'main' into t6836_vrf_support
omnom62 Jul 22, 2025
1954908
sanity and doc for VRF fixed
omnom62 Jul 24, 2025
7a90121
VRF unit tests mock
omnom62 Jul 24, 2025
e9b3b51
VRF protocol integration parsed, rtt and merged init
omnom62 Jul 28, 2025
964b027
VRF protocols - rendered, overridden
omnom62 Jul 28, 2025
f085735
VRF protocols replaced
omnom62 Jul 29, 2025
9639db3
fix accidental changes to test_vyos_config.py
omnom62 Aug 3, 2025
7ed222d
Merge branch 'main' into t6836_vrf_support
omnom62 Aug 4, 2025
a8e6a5b
PR description
omnom62 Aug 4, 2025
0cda55d
fix image
omnom62 Aug 4, 2025
5ccf915
README fix
omnom62 Aug 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions PR408_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# 📦 Pull Request Documentation

## 🧾 Summary

<!-- Brief explanation of what this PR does and why. -->

This is a new Ansible module to manage VyOS VRF configuration as requested by https://vyos.dev/T6836

---

## 🔍 Implementation

<!-- Link to related issues or tasks -->

The module implements a set of VyOS 1.4.2 and 1.5.x commands related to VRF configuration, described in https://docs.vyos.io/en/1.4/configuration/vrf/index.html
The module allows to configure a global attribute (bind-all), as well as, VRF instance configuration.

The structure of the parameters is depicted below
![Diagram](pr408-diagram.png)

The module supports the following states:

- "deleted"
- "merged"
- "replaced"
- "overridden"
- "gathered"
- "rendered"
- "parsed"

---

## 📐 Examples

### Replaced (to demo individual attribute processing)

Initial coonfiguration

```
- set vrf bind-to-all
- set vrf name vrf-blue description 'blue-vrf'
- set vrf name vrf-blue table '100'
- set vrf name vrf-blue vni '1000'
- set vrf name vrf-red description 'red-vrf'
- set vrf name vrf-red disable
- set vrf name vrf-red ip disable-forwarding
- set vrf name vrf-red ip protocol kernel route-map 'rm1'
- set vrf name vrf-red ip protocol rip route-map 'rm1'
- set vrf name vrf-red ipv6 nht no-resolve-via-default
- set vrf name vrf-red table '101'
- set vrf name vrf-red vni '1001'
- set vrf name vrf-pink table 111
- set vrf name vrf-pink vni 1111
- set vrf name vrf-pink description pink-vrf
- set vrf name vrf-pink protocols bgp system-as 65000
- set vrf name vrf-pink protocols bgp neighbor 192.0.2.1 remote-as 65002
- set vrf name vrf-pink protocols bgp neighbor 1.1.1.3 passive
- set vrf name vrf-pink protocols bgp neighbor 1.1.1.3 remote-as 400
- set vrf name vrf-pink protocols ospf log-adjacency-changes 'detail'
- set vrf name vrf-pink protocols ospf max-metric router-lsa administrative
- set vrf name vrf-pink protocols ospf max-metric router-lsa on-shutdown 10
- set vrf name vrf-pink protocols ospf max-metric router-lsa on-startup 10
- set vrf name vrf-pink protocols ospf default-information originate always
- set vrf name vrf-pink protocols ospf default-information originate metric 10
- set vrf name vrf-pink protocols ospf default-information originate metric-type 2
- set vrf name vrf-pink protocols ospf mpls-te router-address '192.0.11.12'
- set vrf name vrf-pink protocols ospf auto-cost reference-bandwidth '2'
- set vrf name vrf-pink protocols ospf neighbor 192.0.11.12
- set vrf name vrf-pink protocols ospf neighbor 192.0.11.12 poll-interval 10
- set vrf name vrf-pink protocols ospf neighbor 192.0.11.12 priority 2
- set vrf name vrf-pink protocols ospf redistribute bgp
- set vrf name vrf-pink protocols ospf redistribute bgp metric 10
- set vrf name vrf-pink protocols ospf redistribute bgp metric-type 2
- set vrf name vrf-pink protocols ospf parameters router-id '192.0.1.1'
- set vrf name vrf-pink protocols ospf parameters rfc1583-compatibility
- set vrf name vrf-pink protocols ospf parameters abr-type 'cisco'
- set vrf name vrf-pink protocols ospf area '2'
- set vrf name vrf-pink protocols ospf area 2 area-type normal
- set vrf name vrf-pink protocols ospf area 2 authentication plaintext-password
- set vrf name vrf-pink protocols ospf area 2 shortcut enable
- set vrf name vrf-pink protocols ospf area '3'
- set vrf name vrf-pink protocols ospf area 3 area-type nssa
- set vrf name vrf-pink protocols ospf area '4'
- set vrf name vrf-pink protocols ospf area 4 area-type stub default-cost 20
- set vrf name vrf-pink protocols ospf area 4 network 192.0.2.0/24
- set vrf name vrf-pink protocols ospf area 4 range 192.0.3.0/24
- set vrf name vrf-pink protocols ospf area 4 range 192.0.3.0/24 cost 10
- set vrf name vrf-pink protocols ospf area 4 range 192.0.4.0/24
- set vrf name vrf-pink protocols ospf area 4 range 192.0.4.0/24 cost 12
- set vrf name vrf-pink protocols ospfv3 area '2'
- set vrf name vrf-pink protocols ospfv3 area 2 export-list export1
- set vrf name vrf-pink protocols ospfv3 area 2 import-list import1
- set vrf name vrf-pink protocols ospfv3 area 2 range 2001:db10::/32
- set vrf name vrf-pink protocols ospfv3 area 2 range 2001:db20::/32
- set vrf name vrf-pink protocols ospfv3 area 2 range 2001:db30::/32
- set vrf name vrf-pink protocols ospfv3 area '3'
- set vrf name vrf-pink protocols ospfv3 area 3 range 2001:db40::/32
- set vrf name vrf-pink protocols ospfv3 parameters router-id '192.0.2.10'
- set vrf name vrf-pink protocols ospfv3 redistribute bgp
- set vrf name vrf-pink protocols static route 192.0.2.0/24
- set vrf name vrf-pink protocols static route 192.0.2.0/24 blackhole distance '10'
- set vrf name vrf-pink protocols static route 192.0.2.0/24 next-hop '203.0.113.1'
- set vrf name vrf-pink protocols static route 192.0.2.0/24 next-hop '203.0.113.2'
- set vrf name vrf-pink protocols static route6 2001:db8::/32
- set vrf name vrf-pink protocols static route6 2001:db8::/32 blackhole distance '20'
- set vrf name vrf-pink protocols static route6 2001:db8::/32 next-hop '2001:db8::1'
```

Module configuration

```yaml
vyos.vyos.vyos_vrf:
config:
instances:
- name: "vrf-blue"
description: "blue-vrf"
disable: true
table_id: 100
vni: 1000
- name: "vrf-red"
description: "Vermillion_VRF"
disable: false
table_id: 101
vni: 1011
address_family:
- afi: "ipv6"
nht_no_resolve_via_default: false
- name: "vrf-pink"
table_id: 111
protocols:
ospf:
default_information:
originate:
always: true
metric: 20
metric_type: 1
state: replaced
```

Will result in

````
- delete vrf bind-to-all
- set vrf name vrf-blue disable
- set vrf name vrf-red vni 1011
- set vrf name vrf-red description Vermillion_VRF
- delete vrf name vrf-red disable
- delete vrf name vrf-red ipv6 nht no-resolve-via-default
- delete vrf name vrf-pink vni 1111
- delete vrf name vrf-pink description pink-vrf
- delete vrf name vrf-pink protocols ospf log-adjacency-changes 'detail'
- delete vrf name vrf-pink protocols ospf auto-cost
- delete vrf name vrf-pink protocols ospf max-metric
- delete vrf name vrf-pink protocols ospf mpls-te
- delete vrf name vrf-pink protocols ospf area
- delete vrf name vrf-pink protocols ospf parameters
- delete vrf name vrf-pink protocols ospf neighbor
- delete vrf name vrf-pink protocols ospf redistribute
- set vrf name vrf-pink protocols ospf default-information originate metric 20
- set vrf name vrf-pink protocols ospf default-information originate metric-type 1
```
---
````
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Name | Description
[vyos.vyos.vyos_system](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_system_module.rst)|Run `set system` commands on VyOS devices
[vyos.vyos.vyos_user](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_user_module.rst)|Manage the collection of local users on VyOS device
[vyos.vyos.vyos_vlan](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_vlan_module.rst)|Manage VLANs on VyOS network devices
[vyos.vyos.vyos_vrf](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_vrf_module.rst)|VRF resource module

<!--end collection content-->

Expand Down
3 changes: 3 additions & 0 deletions changelogs/fragments/t6838_vrf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
minor_changes:
- vyos_vrf - Add VRF support
Loading
Loading