From a58ce1767eedc00057e21732d6a2f4302d31e9c1 Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Thu, 11 Nov 2021 06:10:54 +0100 Subject: [PATCH 01/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../documentation/devices/user-roles.md | 113 ++++++++++++++++++ .../intended/configs/user-roles.cfg | 19 +++ .../inventory/host_vars/user-roles.yml | 8 ++ .../eos_cli_config_gen/inventory/hosts.ini | 1 + .../avd/roles/eos_cli_config_gen/README.md | 17 +++ .../templates/documentation/user-roles.j2 | 22 ++++ .../templates/eos-device-documentation.j2 | 2 + .../templates/eos-intended-config.j2 | 2 + .../templates/eos/user-roles.j2 | 12 ++ 9 files changed, 196 insertions(+) create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml create mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 create mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md new file mode 100644 index 00000000000..146ea9cca34 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md @@ -0,0 +1,113 @@ +# user-roles +# Table of Contents + + +- [Management](#management) + - [Management Interfaces](#management-interfaces) +- [Authentication](#authentication) + - [User Roles](#user-roles) +- [Monitoring](#monitoring) +- [Internal VLAN Allocation Policy](#internal-vlan-allocation-policy) + - [Internal VLAN Allocation Policy Summary](#internal-vlan-allocation-policy-summary) +- [Interfaces](#interfaces) +- [Routing](#routing) + - [IP Routing](#ip-routing) + - [IPv6 Routing](#ipv6-routing) +- [Multicast](#multicast) +- [Filters](#filters) +- [ACL](#acl) +- [Quality Of Service](#quality-of-service) + + +# Management + +## Management Interfaces + +### Management Interfaces Summary + +#### IPv4 + +| Management Interface | description | Type | VRF | IP Address | Gateway | +| -------------------- | ----------- | ---- | --- | ---------- | ------- | +| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | + +#### IPv6 + +| Management Interface | description | Type | VRF | IPv6 Address | IPv6 Gateway | +| -------------------- | ----------- | ---- | --- | ------------ | ------------ | +| Management1 | oob_management | oob | MGMT | - | - | + +### Management Interfaces Device Configuration + +```eos +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +``` + +# Authentication + +## User Roles + +### User Roles Summary + +#### network-limited + +| Sequence | Action | +| -------- | ------ | +| 10 | permit mode exec command ssh | +| 20 | permit mode exec command traceroute | + +### User Roles Device Configuration + +```eos +! +role network-limited + 10 permit mode exec command ssh + 20 permit mode exec command traceroute +``` + +# Monitoring + +# Internal VLAN Allocation Policy + +## Internal VLAN Allocation Policy Summary + +**Default Allocation Policy** + +| Policy Allocation | Range Beginning | Range Ending | +| ------------------| --------------- | ------------ | +| ascending | 1006 | 4094 | + +# Interfaces + +# Routing + +## IP Routing + +### IP Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false| +### IP Routing Device Configuration + +```eos +``` +## IPv6 Routing + +### IPv6 Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false | + +# Multicast + +# Filters + +# ACL + +# Quality Of Service diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg new file mode 100644 index 00000000000..930685fa8e7 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg @@ -0,0 +1,19 @@ +!RANCID-CONTENT-TYPE: arista +! +transceiver qsfp default-mode 4x10G +! +hostname user-roles +! +no aaa root +no enable password +! +role network-limited + 10 permit mode exec command ssh + 20 permit mode exec command traceroute +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +! +end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml new file mode 100644 index 00000000000..4dfe13e9e7a --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml @@ -0,0 +1,8 @@ +### User Roles ### +user_roles: + network-limited: + sequence_numbers: + 10: + action: "permit mode exec command ssh" + 20: + action: "permit mode exec command traceroute" \ No newline at end of file diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index 5e3da013400..4db37b3047d 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -99,6 +99,7 @@ terminattr-prem-no-ingestkey terminattr-prem-disableaaa traffic-policies unsupported-transceiver +user-roles vlan-interfaces virtual-source-nat vlan-internal-order diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index 301347eec6f..e05426b9164 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -23,6 +23,7 @@ - [IP RADIUS Source Interfaces](#ip-radius-source-interfaces) - [IP TACACS+ Source Interfaces](#ip-tacacs-source-interfaces) - [Local Users](#local-users) + - [User Roles](#user-roles) - [Radius Servers](#radius-servers) - [Tacacs+ Servers](#tacacs-servers) - [Banners](#banners) @@ -395,6 +396,22 @@ local_users: ssh_key: "< ssh_key_string >" ``` +#### User Roles + +```yaml +user_roles: + < user_role_name_1 >: + sequence_numbers: + < sequence_id_1 >: + action: "< action and command as string >" + < sequence_id_2 >: + action: "< action and command as string >" + < user_role_name_2 >: + sequence_numbers: + < sequence_id_1 >: + action: "< action and command as string >" +``` + #### Radius Servers ```yaml diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 new file mode 100644 index 00000000000..80749683678 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 @@ -0,0 +1,22 @@ +{% if user_roles is arista.avd.defined %} + +## User Roles + +### User Roles Summary + +{% for user_role in user_roles | arista.avd.natural_sort %} +#### {{ user_role }} + +| Sequence | Action | +| -------- | ------ | +{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} +| {{ sequence }} | {{ user_roles[user_role].sequence_numbers[sequence].action }} | +{% endfor %} + +{% endfor %} +### User Roles Device Configuration + +```eos +{% include 'eos/user-roles.j2' %} +``` +{% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 index 1109a49450d..0e975dae89c 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 @@ -33,6 +33,8 @@ # Authentication {## Local Users #} {% include 'documentation/local-users.j2' %} +{## User Roles #} +{% include 'documentation/user-roles.j2' %} {## Enable Password #} {% include 'documentation/enable-password.j2' %} {## TACACS Servers #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 index 00261a4e5cb..0f95655bf56 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 @@ -98,6 +98,8 @@ {% include 'eos/enable-password.j2' %} {# users #} {% include 'eos/local-users.j2' %} +{# user roles #} +{% include 'eos/user-roles.j2' %} {# clock timezone #} {% include 'eos/clock-timezone.j2' %} {# VLANs #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 new file mode 100644 index 00000000000..5f849b716a2 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 @@ -0,0 +1,12 @@ +{# eos - user-roles #} +{% if user_roles is arista.avd.defined %} +! +{% for user_role in user_roles | arista.avd.natural_sort %} +role {{ user_role }} +{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} +{% if user_roles[user_role].sequence_numbers[sequence].action is arista.avd.defined %} + {{ sequence }} {{ user_roles[user_role].sequence_numbers[sequence].action }} +{% endif %} +{% endfor %} +{% endfor %} +{% endif %} \ No newline at end of file From 0e3d9139337ff42cda434e55513c59bf25650500 Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Thu, 11 Nov 2021 20:26:37 +0100 Subject: [PATCH 02/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../documentation/devices/user-roles.md | 12 ++++--- .../intended/configs/user-roles.cfg | 3 +- .../inventory/host_vars/user-roles.yml | 20 ++++++++---- .../avd/roles/eos_cli_config_gen/README.md | 20 ++++++------ .../templates/documentation/user-roles.j2 | 14 ++++----- .../templates/eos/user-roles.j2 | 31 ++++++++++++++----- 6 files changed, 63 insertions(+), 37 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md index 146ea9cca34..7a14aa80d98 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md @@ -55,10 +55,11 @@ interface Management1 #### network-limited -| Sequence | Action | -| -------- | ------ | -| 10 | permit mode exec command ssh | -| 20 | permit mode exec command traceroute | +| Sequence | Action | Mode | Command | +| -------- | ------ | ---- | ------- | +| 10 | permit | exec | ssh | +| 20 | deny | | telnet | +| 30 | permit | exec | traceroute | ### User Roles Device Configuration @@ -66,7 +67,8 @@ interface Management1 ! role network-limited 10 permit mode exec command ssh - 20 permit mode exec command traceroute + 20 deny command telnet + 30 permit mode exec command traceroute ``` # Monitoring diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg index 930685fa8e7..d515f58d203 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg @@ -9,7 +9,8 @@ no enable password ! role network-limited 10 permit mode exec command ssh - 20 permit mode exec command traceroute + 20 deny command telnet + 30 permit mode exec command traceroute ! interface Management1 description oob_management diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml index 4dfe13e9e7a..195405c6c95 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml @@ -1,8 +1,16 @@ ### User Roles ### -user_roles: - network-limited: +roles: + - name: network-limited sequence_numbers: - 10: - action: "permit mode exec command ssh" - 20: - action: "permit mode exec command traceroute" \ No newline at end of file + - sequence: 10 + action: permit + mode: exec + command: ssh + - sequence: 20 + action: deny + command: telnet + - sequence: 30 + action: permit + mode: exec + command: traceroute + diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index 95ce96d54a8..79469f04f70 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -399,17 +399,17 @@ local_users: #### User Roles ```yaml -user_roles: - < user_role_name_1 >: +roles: + - name: < role_name > sequence_numbers: - < sequence_id_1 >: - action: "< action and command as string >" - < sequence_id_2 >: - action: "< action and command as string >" - < user_role_name_2 >: - sequence_numbers: - < sequence_id_1 >: - action: "< action and command as string >" + - sequence: < sequence_number_1 > + action: < permit | deny > + mode: < "config" | "config-all" | "exec" | "" > + command: < command as string > + - sequence: < sequence_number_2 > + action: < permit | deny > + mode: < "config" | "config-all" | "exec" | "" > + command: < command as string > ``` #### Radius Servers diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 index 80749683678..3dc6ca3e55a 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 @@ -1,16 +1,16 @@ -{% if user_roles is arista.avd.defined %} +{% if roles is arista.avd.defined %} ## User Roles ### User Roles Summary -{% for user_role in user_roles | arista.avd.natural_sort %} -#### {{ user_role }} +{% for role in roles | arista.avd.natural_sort %} +#### {{ role.name }} -| Sequence | Action | -| -------- | ------ | -{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} -| {{ sequence }} | {{ user_roles[user_role].sequence_numbers[sequence].action }} | +| Sequence | Action | Mode | Command | +| -------- | ------ | ---- | ------- | +{% for sequence in role.sequence_numbers | arista.avd.natural_sort %} +| {{ sequence.sequence }} | {{ sequence.action }} | {% if sequence.mode is arista.avd.defined %} {{ sequence.mode }}{% endif %} | {{ sequence.command }} | {% endfor %} {% endfor %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 index 5f849b716a2..4e8565413b7 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 @@ -1,12 +1,27 @@ {# eos - user-roles #} -{% if user_roles is arista.avd.defined %} +{% if roles is arista.avd.defined %} ! -{% for user_role in user_roles | arista.avd.natural_sort %} -role {{ user_role }} -{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} -{% if user_roles[user_role].sequence_numbers[sequence].action is arista.avd.defined %} - {{ sequence }} {{ user_roles[user_role].sequence_numbers[sequence].action }} +{% for role in roles %} +{% if role.name is arista.avd.defined %} +role {{ role.name }} +{% if role.sequence_numbers is arista.avd.defined %} +{% for sequence in role.sequence_numbers %} +{% if sequence.sequence is arista.avd.defined %} +{% set sequence_cli = sequence.sequence %} +{% if sequence.action is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " " ~ sequence.action %} +{% endif %} +{% if sequence.mode is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} +{% endif %} +{% if sequence.command is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} +{% endif %} + {{ sequence_cli }} +{% endif %} +{% endfor %} {% endif %} -{% endfor %} +{% endif %} {% endfor %} -{% endif %} \ No newline at end of file +{% endif %} + From b6a5bd81a794237e43b81ce824517cd74b2dd7aa Mon Sep 17 00:00:00 2001 From: emilarista <73955263+emilarista@users.noreply.github.com> Date: Thu, 11 Nov 2021 08:43:45 +0100 Subject: [PATCH 03/11] Feat(eos_cli_config_gen): Add vpn-ipv6 AF + vpn-ipv4 change (#1259) --- .../devices/router-bgp-vpn-ipv4-vpn-ipv6.md | 167 ++++++++++++++++++ ...4.cfg => router-bgp-vpn-ipv4-vpn-ipv6.cfg} | 10 +- ...4.yml => router-bgp-vpn-ipv4-vpn-ipv6.yml} | 14 +- .../eos_cli_config_gen/inventory/hosts.ini | 2 +- .../avd/roles/eos_cli_config_gen/README.md | 7 + .../templates/eos/router-bgp.j2 | 25 +++ 6 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-vpn-ipv4-vpn-ipv6.md rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/{router-bgp-vpn-ipv4.cfg => router-bgp-vpn-ipv4-vpn-ipv6.cfg} (78%) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/{router-bgp-vpn-ipv4.yml => router-bgp-vpn-ipv4-vpn-ipv6.yml} (71%) diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-vpn-ipv4-vpn-ipv6.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-vpn-ipv4-vpn-ipv6.md new file mode 100644 index 00000000000..65da9237817 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-vpn-ipv4-vpn-ipv6.md @@ -0,0 +1,167 @@ +# router-bgp-vpn-ipv4-vpn-ipv6 +# Table of Contents + + +- [Management](#management) + - [Management Interfaces](#management-interfaces) +- [Authentication](#authentication) +- [Monitoring](#monitoring) +- [Internal VLAN Allocation Policy](#internal-vlan-allocation-policy) + - [Internal VLAN Allocation Policy Summary](#internal-vlan-allocation-policy-summary) +- [Interfaces](#interfaces) +- [Routing](#routing) + - [IP Routing](#ip-routing) + - [IPv6 Routing](#ipv6-routing) + - [Router BGP](#router-bgp) +- [Multicast](#multicast) +- [Filters](#filters) +- [ACL](#acl) +- [Quality Of Service](#quality-of-service) + + +# Management + +## Management Interfaces + +### Management Interfaces Summary + +#### IPv4 + +| Management Interface | description | Type | VRF | IP Address | Gateway | +| -------------------- | ----------- | ---- | --- | ---------- | ------- | +| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | + +#### IPv6 + +| Management Interface | description | Type | VRF | IPv6 Address | IPv6 Gateway | +| -------------------- | ----------- | ---- | --- | ------------ | ------------ | +| Management1 | oob_management | oob | MGMT | - | - | + +### Management Interfaces Device Configuration + +```eos +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +``` + +# Authentication + +# Monitoring + +# Internal VLAN Allocation Policy + +## Internal VLAN Allocation Policy Summary + +**Default Allocation Policy** + +| Policy Allocation | Range Beginning | Range Ending | +| ------------------| --------------- | ------------ | +| ascending | 1006 | 4094 | + +# Interfaces + +# Routing + +## IP Routing + +### IP Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false| +### IP Routing Device Configuration + +```eos +``` +## IPv6 Routing + +### IPv6 Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false | + +## Router BGP + +### Router BGP Summary + +| BGP AS | Router ID | +| ------ | --------- | +| 65103| 192.168.255.3 | + +| BGP Tuning | +| ---------- | +| no bgp default ipv4-unicast | +| distance bgp 20 200 200 | +| graceful-restart restart-time 300 | +| graceful-restart | +| maximum-paths 2 ecmp 2 | + +### Router BGP Peer Groups + +#### MPLS-IBGP-PEERS + +| Settings | Value | +| -------- | ----- | +| Address Family | vpn-ipv4, vpn-ipv6 | +| Remote AS | 65000 | +| Local AS | 65000 | +| Send community | all | +| Maximum routes | 0 (no limit) | + +### BGP Neighbors + +| Neighbor | Remote AS | VRF | Send-community | Maximum-routes | +| -------- | --------- | --- | -------------- | -------------- | +| 192.168.255.1 | Inherited from peer group MPLS-IBGP-PEERS | default | Inherited from peer group MPLS-IBGP-PEERS | Inherited from peer group MPLS-IBGP-PEERS | +| 192.168.255.2 | Inherited from peer group MPLS-IBGP-PEERS | default | Inherited from peer group MPLS-IBGP-PEERS | Inherited from peer group MPLS-IBGP-PEERS | + +### Router BGP EVPN Address Family + +#### Router BGP EVPN MAC-VRFs + +#### Router BGP EVPN VRFs + +### Router BGP Device Configuration + +```eos +! +router bgp 65103 + router-id 192.168.255.3 + no bgp default ipv4-unicast + distance bgp 20 200 200 + graceful-restart restart-time 300 + graceful-restart + maximum-paths 2 ecmp 2 + neighbor MPLS-IBGP-PEERS peer group + neighbor MPLS-IBGP-PEERS remote-as 65000 + neighbor MPLS-IBGP-PEERS local-as 65000 no-prepend replace-as + neighbor MPLS-IBGP-PEERS password 7 AQQvKeimxJu+uGQ/yYvv9w== + neighbor MPLS-IBGP-PEERS send-community + neighbor MPLS-IBGP-PEERS maximum-routes 0 + neighbor 192.168.255.1 peer group MPLS-IBGP-PEERS + neighbor 192.168.255.2 peer group MPLS-IBGP-PEERS + ! + address-family vpn-ipv4 + domain identifier 3900000 + neighbor MPLS-IBGP-PEERS activate + neighbor 192.168.255.4 activate + neighbor default encapsulation mpls next-hop-self source-interface Loopback0 + ! + address-family vpn-ipv6 + domain identifier 3900000 + neighbor MPLS-IBGP-PEERS activate + neighbor 192.168.255.4 activate + neighbor default encapsulation mpls next-hop-self source-interface Loopback0 +``` + +# Multicast + +# Filters + +# ACL + +# Quality Of Service diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4-vpn-ipv6.cfg similarity index 78% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4.cfg rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4-vpn-ipv6.cfg index 41ee698b5ef..50a5fe20d46 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-vpn-ipv4-vpn-ipv6.cfg @@ -2,7 +2,7 @@ ! transceiver qsfp default-mode 4x10G ! -hostname router-bgp-vpn-ipv4 +hostname router-bgp-vpn-ipv4-vpn-ipv6 ! no aaa root no enable password @@ -12,7 +12,7 @@ interface Management1 vrf MGMT ip address 10.73.255.122/24 ! -router bgp 65101 +router bgp 65103 router-id 192.168.255.3 no bgp default ipv4-unicast distance bgp 20 200 200 @@ -33,5 +33,11 @@ router bgp 65101 neighbor MPLS-IBGP-PEERS activate neighbor 192.168.255.4 activate neighbor default encapsulation mpls next-hop-self source-interface Loopback0 + ! + address-family vpn-ipv6 + domain identifier 3900000 + neighbor MPLS-IBGP-PEERS activate + neighbor 192.168.255.4 activate + neighbor default encapsulation mpls next-hop-self source-interface Loopback0 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4-vpn-ipv6.yml similarity index 71% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4.yml rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4-vpn-ipv6.yml index 7f5fd46d633..653a4301859 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-vpn-ipv4-vpn-ipv6.yml @@ -1,6 +1,6 @@ ### Routing - BGP vpn-ipv4 ### router_bgp: - as: 65101 + as: 65103 router_id: 192.168.255.3 bgp_defaults: - no bgp default ipv4-unicast @@ -10,7 +10,7 @@ router_bgp: - maximum-paths 2 ecmp 2 peer_groups: MPLS-IBGP-PEERS: - type: ipv4 + type: "vpn-ipv4, vpn-ipv6" remote_as: 65000 local_as: 65000 password: "AQQvKeimxJu+uGQ/yYvv9w==" @@ -31,3 +31,13 @@ router_bgp: activate: true neighbor_default_encapsulation_mpls_next_hop_self: source_interface: Loopback0 + address_family_vpn_ipv6: + domain_identifier: 65000:0 + peer_groups: + MPLS-IBGP-PEERS: + activate: true + neighbors: + 192.168.255.4: + activate: true + neighbor_default_encapsulation_mpls_next_hop_self: + source_interface: Loopback0 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index 5e3da013400..e52b8b922e7 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -70,7 +70,7 @@ router-bgp-evpn-vpn-import-pruning router-bgp-rtc router-bgp-v4-evpn router-bgp-v4-v6-evpn -router-bgp-vpn-ipv4 +router-bgp-vpn-ipv4-vpn-ipv6 router-bgp-vrf-lite router-general router-isis diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index 301347eec6f..bda5d5d883e 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -2299,6 +2299,13 @@ router_bgp: activate: < true | false > neighbor_default_encapsulation_mpls_next_hop_self: source_interface: < interface > + address_family_vpn_ipv6: + domain_identifier: < string > + peer_groups: + < peer_group_name >: + activate: < true | false > + neighbor_default_encapsulation_mpls_next_hop_self: + source_interface: < interface > vrfs: < vrf_name_1 >: rd: "< route distinguisher >" diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 index 3685ac824a3..6f4bc0cb8cf 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 @@ -463,6 +463,31 @@ router bgp {{ router_bgp.as }} neighbor default encapsulation mpls next-hop-self source-interface {{ router_bgp.address_family_vpn_ipv4.neighbor_default_encapsulation_mpls_next_hop_self.source_interface }} {% endif %} {% endif %} +{# address family vpn-ipv6 activation #} +{% if router_bgp.address_family_vpn_ipv6 is arista.avd.defined %} + ! + address-family vpn-ipv6 +{% if router_bgp.address_family_vpn_ipv6.domain_identifier is arista.avd.defined %} + domain identifier {{ router_bgp.address_family_vpn_ipv6.domain_identifier }} +{% endif %} +{% for peer_group in router_bgp.address_family_vpn_ipv6.peer_groups | arista.avd.natural_sort %} +{% if router_bgp.address_family_vpn_ipv6.peer_groups[peer_group].activate is arista.avd.defined(true) %} + neighbor {{ peer_group }} activate +{% elif router_bgp.address_family_vpn_ipv6.peer_groups[peer_group].activate is arista.avd.defined(false) %} + no neighbor {{ peer_group }} activate +{% endif %} +{% endfor %} +{% for neighbor in router_bgp.address_family_vpn_ipv6.neighbors | arista.avd.natural_sort %} +{% if router_bgp.address_family_vpn_ipv6.neighbors[neighbor].activate is arista.avd.defined(true) %} + neighbor {{ neighbor }} activate +{% elif router_bgp.address_family_vpn_ipv6.neighbors[neighbor].activate is arista.avd.defined(false) %} + no neighbor {{ neighbor }} activate +{% endif %} +{% endfor %} +{% if router_bgp.address_family_vpn_ipv6.neighbor_default_encapsulation_mpls_next_hop_self.source_interface is arista.avd.defined %} + neighbor default encapsulation mpls next-hop-self source-interface {{ router_bgp.address_family_vpn_ipv6.neighbor_default_encapsulation_mpls_next_hop_self.source_interface }} +{% endif %} +{% endif %} {# L3VPNs - (vxlan) VRFs #} {% for vrf in router_bgp.vrfs | arista.avd.natural_sort %} ! From be1dc551f009cacbb856def808d61a57e7b3e07a Mon Sep 17 00:00:00 2001 From: ClausHolbechArista <48674677+ClausHolbechArista@users.noreply.github.com> Date: Thu, 11 Nov 2021 14:31:03 +0100 Subject: [PATCH 04/11] Bump: Support for Ansible 2.12.0 (#1315) * Add support for ansible 2.12 * Add support for ansible 2.12 * newline * bump requirements to include ansible 2.12 --- .github/workflows/pull-request-management.yml | 8 ++++---- README.md | 4 ++-- ansible_collections/arista/avd/README.md | 4 ++-- .../arista/avd/docs/installation/requirements.md | 2 +- .../intended/structured_configs/DC1-BL1A.yml | 3 +-- .../intended/structured_configs/DC1-BL1B.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2A.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2B.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../intended/structured_configs/DC1-POD1-L2LEAF1A.yml | 3 +-- .../intended/structured_configs/DC1-POD1-L2LEAF2A.yml | 4 +--- .../intended/structured_configs/DC1-POD1-L2LEAF2B.yml | 4 +--- .../intended/structured_configs/DC1-POD1-LEAF1A.yml | 4 +--- .../intended/structured_configs/DC1-POD1-LEAF2A.yml | 8 ++------ .../intended/structured_configs/DC1-POD1-LEAF2B.yml | 8 ++------ .../intended/structured_configs/DC1-POD1-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-POD1-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-POD2-LEAF1A.yml | 4 +--- .../intended/structured_configs/DC1-POD2-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-POD2-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-RS1.yml | 3 +-- .../intended/structured_configs/DC1-RS2.yml | 3 +-- .../intended/structured_configs/DC1-SUPER-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-SUPER-SPINE2.yml | 3 +-- .../intended/structured_configs/DC2-POD1-L2LEAF1A.yml | 4 +--- .../intended/structured_configs/DC2-POD1-LEAF1A.yml | 5 +---- .../intended/structured_configs/DC2-POD1-SPINE1.yml | 4 +--- .../intended/structured_configs/DC2-POD1-SPINE2.yml | 4 +--- .../intended/structured_configs/DC2-RS1.yml | 3 +-- .../intended/structured_configs/DC2-RS2.yml | 3 +-- .../intended/structured_configs/DC2-SUPER-SPINE1.yml | 3 +-- .../intended/structured_configs/DC2-SUPER-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2A.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2B.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../intended/structured_configs/DC1-POD1-L2LEAF1A.yml | 3 +-- .../intended/structured_configs/DC1-POD1-L2LEAF2A.yml | 4 +--- .../intended/structured_configs/DC1-POD1-L2LEAF2B.yml | 4 +--- .../intended/structured_configs/DC1-POD1-LEAF1A.yml | 4 +--- .../intended/structured_configs/DC1-POD1-LEAF2A.yml | 8 ++------ .../intended/structured_configs/DC1-POD1-LEAF2B.yml | 8 ++------ .../intended/structured_configs/DC1-POD1-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-POD1-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-POD2-LEAF1A.yml | 4 +--- .../intended/structured_configs/DC1-POD2-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-POD2-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-RS1.yml | 3 +-- .../intended/structured_configs/DC1-RS2.yml | 3 +-- .../intended/structured_configs/DC1-SUPER-SPINE1.yml | 3 +-- .../intended/structured_configs/DC1-SUPER-SPINE2.yml | 3 +-- .../intended/structured_configs/DC2-POD1-L2LEAF1A.yml | 4 +--- .../intended/structured_configs/DC2-POD1-LEAF1A.yml | 5 +---- .../intended/structured_configs/DC2-POD1-SPINE1.yml | 4 +--- .../intended/structured_configs/DC2-POD1-SPINE2.yml | 4 +--- .../intended/structured_configs/DC2-RS1.yml | 3 +-- .../intended/structured_configs/DC2-RS2.yml | 3 +-- .../intended/structured_configs/DC2-SUPER-SPINE1.yml | 3 +-- .../intended/structured_configs/DC2-SUPER-SPINE2.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2A.yml | 3 +-- .../intended/structured_configs/DC1-LEAF2B.yml | 3 +-- .../intended/structured_configs/DC1-SVC3A.yml | 3 +-- .../intended/structured_configs/DC1-SVC3B.yml | 3 +-- .../arista/avd/plugins/action/yaml_templates_to_facts.py | 6 +++--- ansible_collections/arista/avd/requirements-dev.txt | 2 +- .../custom-structured-configuration.j2 | 2 +- .../eos_designs/templates/debug/generate-debug-vars.j2 | 2 +- .../eos_designs/templates/generate-structured-config.j2 | 2 +- 75 files changed, 86 insertions(+), 182 deletions(-) diff --git a/.github/workflows/pull-request-management.yml b/.github/workflows/pull-request-management.yml index c05adcdd72b..409eb6850db 100644 --- a/.github/workflows/pull-request-management.yml +++ b/.github/workflows/pull-request-management.yml @@ -150,7 +150,7 @@ jobs: fail-fast: true matrix: avd_scenario: ['eos_cli_config_gen','upgrade_eos_cli_config_gen'] - ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.12.0'] + ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.13.0'] needs: [ pre_commit ] if: needs.file-changes.outputs.config_gen == 'true' steps: @@ -185,7 +185,7 @@ jobs: fail-fast: true matrix: avd_scenario: ['dhcp_configuration', 'dhcp_provisionning'] - ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.12.0'] + ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.13.0'] needs: [ pre_commit ] if: needs.file-changes.outputs.dhcp == 'true' steps: @@ -231,7 +231,7 @@ jobs: - 'upgrade_v2.x_to_v3.0_evpn_underlay_isis_overlay_ibgp' - 'upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos' - 'upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp' - ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.12.0'] + ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.13.0'] needs: [ pre_commit ] if: needs.file-changes.outputs.eos_design == 'true' || needs.file-changes.outputs.config_gen == 'true' steps: @@ -265,7 +265,7 @@ jobs: fail-fast: true matrix: avd_scenario: ['eos_config_deploy_cvp'] - ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.12.0'] + ansible_version: ['ansible-core==2.11.3', 'ansible-core>=2.11.3,<2.13.0'] needs: [ pre_commit ] if: needs.file-changes.outputs.cloudvision == 'true' steps: diff --git a/README.md b/README.md index b0cee1ea42b..720ff300ad2 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ The documentation how to leverage ansible-avd collection is located here: **Supported Ansible Versions:** -- ansible-core 2.11.3 or later +- ansible-core from __2.11.3__ to __2.12.x__ **Additional Python Libraries required:** @@ -81,7 +81,7 @@ The documentation how to leverage ansible-avd collection is located here: **Ansible + Additional Python Libraries Installation:** ```shell -$ pip3 install ansible-core>=2.11.3,<2.12.0 +$ pip3 install ansible-core>=2.11.3,<2.13.0 $ pip3 install -r ansible_collections/arista/avd/requirements.txt ``` diff --git a/ansible_collections/arista/avd/README.md b/ansible_collections/arista/avd/README.md index fe94a10fb24..4029abe951d 100644 --- a/ansible_collections/arista/avd/README.md +++ b/ansible_collections/arista/avd/README.md @@ -81,7 +81,7 @@ This repository provides custom plugins for Ansible's collection __arista.avd__ **Supported Ansible Versions:** -- ansible-core 2.11.3 or later +- ansible-core from __2.11.3__ to __2.12.x__ **Additional Python Libraries required:** @@ -98,7 +98,7 @@ This repository provides custom plugins for Ansible's collection __arista.avd__ **Ansible + Additional Python Libraries Installation:** ```shell -$ pip3 install ansible-core>=2.11.3,<2.12.0 +$ pip3 install ansible-core>=2.11.3,<2.13.0 $ pip3 install -r requirements.txt ``` diff --git a/ansible_collections/arista/avd/docs/installation/requirements.md b/ansible_collections/arista/avd/docs/installation/requirements.md index 7876e8f5d82..28c531dd7b3 100644 --- a/ansible_collections/arista/avd/docs/installation/requirements.md +++ b/ansible_collections/arista/avd/docs/installation/requirements.md @@ -15,7 +15,7 @@ If you leverage [Cloudvision](https://www.arista.com/en/products/eos/eos-cloudvi ## Supported Ansible Versions -- ansible-core __2.11.3__ or later +- ansible-core from __2.11.3__ to __2.12.x__ ## Additional Python Libraries required diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1A.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1A.yml index 0f7011a897c..f216612f61c 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1A.yml @@ -391,8 +391,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1B.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1B.yml index 56da6aa5297..4f8b948721f 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1B.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-BL1B.yml @@ -391,8 +391,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2A.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2A.yml index c15eba46e3d..c389d8b98ce 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2A.yml @@ -655,8 +655,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2B.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2B.yml index 4b18c750298..731fc3d0169 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-LEAF2B.yml @@ -655,8 +655,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3A.yml index 5705fcfa93c..89464213af6 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3A.yml @@ -815,8 +815,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3B.yml index 5899bc82b1e..268c889e62f 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/intended/structured_configs/DC1-SVC3B.yml @@ -796,8 +796,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml index a93df091745..7ba2f500c5e 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml @@ -30,8 +30,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-LEAF1A diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml index 91822a7cfe8..8989dd613d4 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml @@ -31,9 +31,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l2leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l2leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" vlans: 4094: tenant: system diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml index f3acba4ec47..9e2e2665744 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml @@ -46,9 +46,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1003\n description Loopback created from raw_eos_cli\ - \ under l2leaf node DC1-POD1-L2LEAF2B\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1003\n description Loopback created from raw_eos_cli under l2leaf node DC1-POD1-L2LEAF2B\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" vlans: 4094: tenant: system diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml index f69a62427f8..98067c3003a 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml @@ -113,9 +113,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under node DC1-POD1-LEAF1A\n\ninterface Loopback1111\n description Loopback created\ - \ from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under node DC1-POD1-LEAF1A\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml index 11a026c3816..106ad2ab302 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml @@ -185,10 +185,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" struct_cfg: domain_list: - structured-config.set.on.node @@ -545,8 +542,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml index cc889ac3c13..86efbd878ee 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml @@ -195,10 +195,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" vlans: 4094: tenant: system @@ -549,8 +546,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml index c0c3de76659..2af1a7248fd 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml @@ -130,8 +130,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml index 1282baa797e..ee1be4315f4 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml @@ -84,8 +84,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml index 690ee4a5f7b..3fcb1206701 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml @@ -163,9 +163,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback\ - \ created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" ethernet_interfaces: Ethernet1: peer: DC1-POD2-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml index e42d157e35f..974b5c75958 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml @@ -102,8 +102,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml index dba8fc3805f..a71787df4bc 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml @@ -98,8 +98,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml index 11db85fb0d9..3d8111f0a7c 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml @@ -112,8 +112,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml index 56192d47a62..5ee6368a64b 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml @@ -112,8 +112,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE2 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml index cc21d0d3dd6..170b292dd6f 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml @@ -73,8 +73,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml index 4bdc6e6d63b..1ca68776093 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml @@ -81,8 +81,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml index aa3eaf6dd21..1b8c4bf10b7 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml @@ -45,9 +45,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1011\n description Loopback created from raw_eos_cli\ - \ under l2leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1011\n description Loopback created from raw_eos_cli under l2leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-LEAF1A diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml index 339dddda9fc..67311399b3c 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml @@ -133,10 +133,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1010\n description Loopback created from raw_eos_cli\ - \ under l3leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1010\n description Loopback created from raw_eos_cli under l3leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml index 404e44ba77b..01422fc2999 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml @@ -107,9 +107,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli\ - \ under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml index 7e5982edb59..75ef357ff25 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml @@ -71,9 +71,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli\ - \ under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml index 5a5216031a3..42ea1f690cb 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml @@ -99,8 +99,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml index 8bf8fb0da68..e4ff709c3ef 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml @@ -63,8 +63,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml index 147d9087835..a6d594a6d44 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml @@ -119,8 +119,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml index 888b80aa5a9..4fbc156c88e 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml @@ -67,8 +67,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3A.yml index 5859cdf8f63..af53f6899d5 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3A.yml @@ -1225,8 +1225,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3B.yml index 941a5722096..022d3fd5654 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/DC1-SVC3B.yml @@ -1206,8 +1206,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml index 50908716a1d..8381118d47e 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml @@ -1270,8 +1270,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml index b269f5caf5d..3150f674d7f 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml @@ -1270,8 +1270,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml index ec802caee6d..1c9d50273f6 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml @@ -735,8 +735,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml index bab157aab9c..0c941e5251b 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml @@ -735,8 +735,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml index 71bc7f07edc..ab8c582a40f 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml @@ -1059,8 +1059,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml index 540d9333524..05c7a7584d9 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml @@ -1040,8 +1040,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml index a93df091745..7ba2f500c5e 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF1A.yml @@ -30,8 +30,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-LEAF1A diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml index 82af3b5ac11..9ecddd92915 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2A.yml @@ -31,9 +31,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l2leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l2leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" vlans: 4094: tenant: system diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml index 4acd6209bdf..743fae8dd96 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-L2LEAF2B.yml @@ -46,9 +46,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1003\n description Loopback created from raw_eos_cli\ - \ under l2leaf node DC1-POD1-L2LEAF2B\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1003\n description Loopback created from raw_eos_cli under l2leaf node DC1-POD1-L2LEAF2B\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" vlans: 4094: tenant: system diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml index ab9213beaa8..e192f3b6338 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF1A.yml @@ -113,9 +113,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under node DC1-POD1-LEAF1A\n\ninterface Loopback1111\n description Loopback created\ - \ from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under node DC1-POD1-LEAF1A\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" struct_cfg: router_bgp: peer_groups: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml index 3166305f872..2e1e720c054 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2A.yml @@ -177,10 +177,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" struct_cfg: router_bgp: peer_groups: @@ -506,8 +503,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml index a7c69003e68..ebf1c96306a 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-LEAF2B.yml @@ -187,10 +187,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli\ - \ under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1002\n description Loopback created from raw_eos_cli under l3leaf node-group RACK2_MLAG\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" struct_cfg: router_bgp: peer_groups: @@ -514,8 +511,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml index b310fe74006..045b430d48a 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE1.yml @@ -122,8 +122,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml index 3aa559ea57e..93354a63cef 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD1-SPINE2.yml @@ -76,8 +76,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml index 96031b8bfca..8d0ec3c8de9 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-LEAF1A.yml @@ -163,9 +163,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback\ - \ created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" struct_cfg: router_bgp: peer_groups: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml index e42d157e35f..974b5c75958 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE1.yml @@ -102,8 +102,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml index dba8fc3805f..a71787df4bc 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-POD2-SPINE2.yml @@ -98,8 +98,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml index 7908c381d74..2930026e170 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS1.yml @@ -112,8 +112,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml index 56192d47a62..5ee6368a64b 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-RS2.yml @@ -112,8 +112,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-SUPER-SPINE2 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml index 71f79612d55..0f3865de3da 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE1.yml @@ -73,8 +73,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml index a250d47d82a..e17905251f5 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC1-SUPER-SPINE2.yml @@ -81,8 +81,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC1-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml index aa3eaf6dd21..1b8c4bf10b7 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-L2LEAF1A.yml @@ -45,9 +45,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1011\n description Loopback created from raw_eos_cli\ - \ under l2leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1011\n description Loopback created from raw_eos_cli under l2leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-LEAF1A diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml index e0b24cbe5bf..0bdc2ca0bab 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-LEAF1A.yml @@ -137,10 +137,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1010\n description Loopback created from raw_eos_cli\ - \ under l3leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n\ - \ description Loopback created from raw_eos_cli under VRF Common_VRF\n" +eos_cli: "interface Loopback1010\n description Loopback created from raw_eos_cli under l3leaf defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n\ninterface Loopback1000\n description Loopback created from raw_eos_cli under VRF Common_VRF\n" struct_cfg: router_bgp: peer_groups: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml index 8b0f3dc3f2e..11bf411e95c 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE1.yml @@ -109,9 +109,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli\ - \ under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml index d3bc8d67cc1..0a167784811 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-POD1-SPINE2.yml @@ -72,9 +72,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli\ - \ under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback\ - \ created from raw_eos_cli under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1009\n description Loopback created from raw_eos_cli under spine defaults in DC2 POD1\n\ninterface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml index a8f13b6fb9c..38550791996 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS1.yml @@ -101,8 +101,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml index fc8cf4941c9..63676d088df 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-RS2.yml @@ -64,8 +64,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-SUPER-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml index acd4b2e25ad..8415a5dc2af 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE1.yml @@ -121,8 +121,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml index 93aec334b59..a2c61c5455f 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_eos_designs-twodc-5stage-clos/intended/structured_configs/DC2-SUPER-SPINE2.yml @@ -68,8 +68,7 @@ management_api_http: enable_vrfs: MGMT: {} enable_https: true -eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli\ - \ under platform_settings vEOS-LAB\n" +eos_cli: "interface Loopback1111\n description Loopback created from raw_eos_cli under platform_settings vEOS-LAB\n" ethernet_interfaces: Ethernet1: peer: DC2-POD1-SPINE1 diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml index 71eab545721..662854e42cb 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml @@ -1237,8 +1237,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml index ddaf57fb206..99157e9a0f0 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_ebgp_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml @@ -1237,8 +1237,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml index 303f19e41be..63766b05922 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2A.yml @@ -744,8 +744,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml index 8777ac357f3..25c4b28b58d 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF2B.yml @@ -744,8 +744,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml index ad6721b7af2..39dc0e320ed 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3A.yml @@ -1068,8 +1068,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml index 1f332b6284b..99a5701fb88 100644 --- a/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml +++ b/ansible_collections/arista/avd/molecule/upgrade_v2.x_to_v3.0_evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SVC3B.yml @@ -1049,8 +1049,7 @@ route_maps: type: permit set: - origin incomplete - description: Make routes learned over MLAG Peer-link less preferred on spines - to ensure optimal routing + description: Make routes learned over MLAG Peer-link less preferred on spines to ensure optimal routing RM-CONN-2-BGP: sequence_numbers: 10: diff --git a/ansible_collections/arista/avd/plugins/action/yaml_templates_to_facts.py b/ansible_collections/arista/avd/plugins/action/yaml_templates_to_facts.py index e5d85ffb726..8e2bf880050 100644 --- a/ansible_collections/arista/avd/plugins/action/yaml_templates_to_facts.py +++ b/ansible_collections/arista/avd/plugins/action/yaml_templates_to_facts.py @@ -3,10 +3,10 @@ import yaml from ansible.plugins.action import ActionBase -from ansible.errors import AnsibleAction, AnsibleActionFail +from ansible.errors import AnsibleActionFail from ansible.utils.vars import isidentifier from ansible.plugins.filter.core import combine -from ansible.plugins.lookup.template import LookupModule as TemplateLookupModule +from ansible.plugins.loader import lookup_loader from ansible_collections.arista.avd.plugins.module_utils.strip_empties import strip_null_from_data @@ -42,7 +42,7 @@ def run(self, tmp=None, task_vars=None): output = {} - template_lookup_module = TemplateLookupModule(loader=self._loader, templar=self._templar) + template_lookup_module = lookup_loader.get('ansible.builtin.template', loader=self._loader, templar=self._templar) template_vars = task_vars diff --git a/ansible_collections/arista/avd/requirements-dev.txt b/ansible_collections/arista/avd/requirements-dev.txt index 5deae5ee293..c596cb74736 100644 --- a/ansible_collections/arista/avd/requirements-dev.txt +++ b/ansible_collections/arista/avd/requirements-dev.txt @@ -1,4 +1,4 @@ -ansible-core>=2.11.3,<2.12.0 +ansible-core>=2.11.3,<2.13.0 ansible-lint galaxy-importer>=0.3.1 pycodestyle diff --git a/ansible_collections/arista/avd/roles/eos_designs/templates/custom_structured_configuration/custom-structured-configuration.j2 b/ansible_collections/arista/avd/roles/eos_designs/templates/custom_structured_configuration/custom-structured-configuration.j2 index 40e15057ca4..8055506f0f3 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/templates/custom_structured_configuration/custom-structured-configuration.j2 +++ b/ansible_collections/arista/avd/roles/eos_designs/templates/custom_structured_configuration/custom-structured-configuration.j2 @@ -22,5 +22,5 @@ {# By parsing the list of custom_structured_configurations to the combine filter, #} {# it will apply them one at a time, so the first can be overridden by the next etc. #} {{ - custom_structured_configuration_data | to_nice_yaml(indent=2, sort_keys=False) + custom_structured_configuration_data | to_nice_yaml(indent=2, sort_keys=False, width=2147483647) }} diff --git a/ansible_collections/arista/avd/roles/eos_designs/templates/debug/generate-debug-vars.j2 b/ansible_collections/arista/avd/roles/eos_designs/templates/debug/generate-debug-vars.j2 index cdbb7d03395..231fbcd8a03 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/templates/debug/generate-debug-vars.j2 +++ b/ansible_collections/arista/avd/roles/eos_designs/templates/debug/generate-debug-vars.j2 @@ -1 +1 @@ -{{ hostvars[inventory_hostname] | to_nice_yaml(indent=2, sort_keys=False) }} \ No newline at end of file +{{ hostvars[inventory_hostname] | to_nice_yaml(indent=2, sort_keys=False, width=2147483647) }} diff --git a/ansible_collections/arista/avd/roles/eos_designs/templates/generate-structured-config.j2 b/ansible_collections/arista/avd/roles/eos_designs/templates/generate-structured-config.j2 index 0f33880a85d..da34d18b0d6 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/templates/generate-structured-config.j2 +++ b/ansible_collections/arista/avd/roles/eos_designs/templates/generate-structured-config.j2 @@ -1,2 +1,2 @@ {# Output yaml based on structured_config varaible #} -{{ structured_config | to_nice_yaml(indent=2, sort_keys=False) }} +{{ structured_config | to_nice_yaml(indent=2, sort_keys=False, width=2147483647) }} From dcd6837aeca030481a3e301895f6e4a82dd91d5a Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Thu, 11 Nov 2021 06:10:54 +0100 Subject: [PATCH 05/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../documentation/devices/user-roles.md | 113 ++++++++++++++++++ .../intended/configs/user-roles.cfg | 19 +++ .../inventory/host_vars/user-roles.yml | 8 ++ .../eos_cli_config_gen/inventory/hosts.ini | 1 + .../avd/roles/eos_cli_config_gen/README.md | 17 +++ .../templates/documentation/user-roles.j2 | 22 ++++ .../templates/eos-device-documentation.j2 | 2 + .../templates/eos-intended-config.j2 | 2 + .../templates/eos/user-roles.j2 | 12 ++ 9 files changed, 196 insertions(+) create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg create mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml create mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 create mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md new file mode 100644 index 00000000000..146ea9cca34 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md @@ -0,0 +1,113 @@ +# user-roles +# Table of Contents + + +- [Management](#management) + - [Management Interfaces](#management-interfaces) +- [Authentication](#authentication) + - [User Roles](#user-roles) +- [Monitoring](#monitoring) +- [Internal VLAN Allocation Policy](#internal-vlan-allocation-policy) + - [Internal VLAN Allocation Policy Summary](#internal-vlan-allocation-policy-summary) +- [Interfaces](#interfaces) +- [Routing](#routing) + - [IP Routing](#ip-routing) + - [IPv6 Routing](#ipv6-routing) +- [Multicast](#multicast) +- [Filters](#filters) +- [ACL](#acl) +- [Quality Of Service](#quality-of-service) + + +# Management + +## Management Interfaces + +### Management Interfaces Summary + +#### IPv4 + +| Management Interface | description | Type | VRF | IP Address | Gateway | +| -------------------- | ----------- | ---- | --- | ---------- | ------- | +| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | + +#### IPv6 + +| Management Interface | description | Type | VRF | IPv6 Address | IPv6 Gateway | +| -------------------- | ----------- | ---- | --- | ------------ | ------------ | +| Management1 | oob_management | oob | MGMT | - | - | + +### Management Interfaces Device Configuration + +```eos +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +``` + +# Authentication + +## User Roles + +### User Roles Summary + +#### network-limited + +| Sequence | Action | +| -------- | ------ | +| 10 | permit mode exec command ssh | +| 20 | permit mode exec command traceroute | + +### User Roles Device Configuration + +```eos +! +role network-limited + 10 permit mode exec command ssh + 20 permit mode exec command traceroute +``` + +# Monitoring + +# Internal VLAN Allocation Policy + +## Internal VLAN Allocation Policy Summary + +**Default Allocation Policy** + +| Policy Allocation | Range Beginning | Range Ending | +| ------------------| --------------- | ------------ | +| ascending | 1006 | 4094 | + +# Interfaces + +# Routing + +## IP Routing + +### IP Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false| +### IP Routing Device Configuration + +```eos +``` +## IPv6 Routing + +### IPv6 Routing Summary + +| VRF | Routing Enabled | +| --- | --------------- | +| default | false | + +# Multicast + +# Filters + +# ACL + +# Quality Of Service diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg new file mode 100644 index 00000000000..930685fa8e7 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg @@ -0,0 +1,19 @@ +!RANCID-CONTENT-TYPE: arista +! +transceiver qsfp default-mode 4x10G +! +hostname user-roles +! +no aaa root +no enable password +! +role network-limited + 10 permit mode exec command ssh + 20 permit mode exec command traceroute +! +interface Management1 + description oob_management + vrf MGMT + ip address 10.73.255.122/24 +! +end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml new file mode 100644 index 00000000000..4dfe13e9e7a --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml @@ -0,0 +1,8 @@ +### User Roles ### +user_roles: + network-limited: + sequence_numbers: + 10: + action: "permit mode exec command ssh" + 20: + action: "permit mode exec command traceroute" \ No newline at end of file diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index e52b8b922e7..f4fb1411216 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -99,6 +99,7 @@ terminattr-prem-no-ingestkey terminattr-prem-disableaaa traffic-policies unsupported-transceiver +user-roles vlan-interfaces virtual-source-nat vlan-internal-order diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index bda5d5d883e..95ce96d54a8 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -23,6 +23,7 @@ - [IP RADIUS Source Interfaces](#ip-radius-source-interfaces) - [IP TACACS+ Source Interfaces](#ip-tacacs-source-interfaces) - [Local Users](#local-users) + - [User Roles](#user-roles) - [Radius Servers](#radius-servers) - [Tacacs+ Servers](#tacacs-servers) - [Banners](#banners) @@ -395,6 +396,22 @@ local_users: ssh_key: "< ssh_key_string >" ``` +#### User Roles + +```yaml +user_roles: + < user_role_name_1 >: + sequence_numbers: + < sequence_id_1 >: + action: "< action and command as string >" + < sequence_id_2 >: + action: "< action and command as string >" + < user_role_name_2 >: + sequence_numbers: + < sequence_id_1 >: + action: "< action and command as string >" +``` + #### Radius Servers ```yaml diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 new file mode 100644 index 00000000000..80749683678 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 @@ -0,0 +1,22 @@ +{% if user_roles is arista.avd.defined %} + +## User Roles + +### User Roles Summary + +{% for user_role in user_roles | arista.avd.natural_sort %} +#### {{ user_role }} + +| Sequence | Action | +| -------- | ------ | +{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} +| {{ sequence }} | {{ user_roles[user_role].sequence_numbers[sequence].action }} | +{% endfor %} + +{% endfor %} +### User Roles Device Configuration + +```eos +{% include 'eos/user-roles.j2' %} +``` +{% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 index 1109a49450d..0e975dae89c 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 @@ -33,6 +33,8 @@ # Authentication {## Local Users #} {% include 'documentation/local-users.j2' %} +{## User Roles #} +{% include 'documentation/user-roles.j2' %} {## Enable Password #} {% include 'documentation/enable-password.j2' %} {## TACACS Servers #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 index 00261a4e5cb..0f95655bf56 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 @@ -98,6 +98,8 @@ {% include 'eos/enable-password.j2' %} {# users #} {% include 'eos/local-users.j2' %} +{# user roles #} +{% include 'eos/user-roles.j2' %} {# clock timezone #} {% include 'eos/clock-timezone.j2' %} {# VLANs #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 new file mode 100644 index 00000000000..5f849b716a2 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 @@ -0,0 +1,12 @@ +{# eos - user-roles #} +{% if user_roles is arista.avd.defined %} +! +{% for user_role in user_roles | arista.avd.natural_sort %} +role {{ user_role }} +{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} +{% if user_roles[user_role].sequence_numbers[sequence].action is arista.avd.defined %} + {{ sequence }} {{ user_roles[user_role].sequence_numbers[sequence].action }} +{% endif %} +{% endfor %} +{% endfor %} +{% endif %} \ No newline at end of file From d8db685b80129b572a6873262865999bda1a766b Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Thu, 11 Nov 2021 20:26:37 +0100 Subject: [PATCH 06/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../documentation/devices/user-roles.md | 12 ++++--- .../intended/configs/user-roles.cfg | 3 +- .../inventory/host_vars/user-roles.yml | 20 ++++++++---- .../avd/roles/eos_cli_config_gen/README.md | 20 ++++++------ .../templates/documentation/user-roles.j2 | 14 ++++----- .../templates/eos/user-roles.j2 | 31 ++++++++++++++----- 6 files changed, 63 insertions(+), 37 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md index 146ea9cca34..7a14aa80d98 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md @@ -55,10 +55,11 @@ interface Management1 #### network-limited -| Sequence | Action | -| -------- | ------ | -| 10 | permit mode exec command ssh | -| 20 | permit mode exec command traceroute | +| Sequence | Action | Mode | Command | +| -------- | ------ | ---- | ------- | +| 10 | permit | exec | ssh | +| 20 | deny | | telnet | +| 30 | permit | exec | traceroute | ### User Roles Device Configuration @@ -66,7 +67,8 @@ interface Management1 ! role network-limited 10 permit mode exec command ssh - 20 permit mode exec command traceroute + 20 deny command telnet + 30 permit mode exec command traceroute ``` # Monitoring diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg index 930685fa8e7..d515f58d203 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg @@ -9,7 +9,8 @@ no enable password ! role network-limited 10 permit mode exec command ssh - 20 permit mode exec command traceroute + 20 deny command telnet + 30 permit mode exec command traceroute ! interface Management1 description oob_management diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml index 4dfe13e9e7a..195405c6c95 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml @@ -1,8 +1,16 @@ ### User Roles ### -user_roles: - network-limited: +roles: + - name: network-limited sequence_numbers: - 10: - action: "permit mode exec command ssh" - 20: - action: "permit mode exec command traceroute" \ No newline at end of file + - sequence: 10 + action: permit + mode: exec + command: ssh + - sequence: 20 + action: deny + command: telnet + - sequence: 30 + action: permit + mode: exec + command: traceroute + diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index 95ce96d54a8..79469f04f70 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -399,17 +399,17 @@ local_users: #### User Roles ```yaml -user_roles: - < user_role_name_1 >: +roles: + - name: < role_name > sequence_numbers: - < sequence_id_1 >: - action: "< action and command as string >" - < sequence_id_2 >: - action: "< action and command as string >" - < user_role_name_2 >: - sequence_numbers: - < sequence_id_1 >: - action: "< action and command as string >" + - sequence: < sequence_number_1 > + action: < permit | deny > + mode: < "config" | "config-all" | "exec" | "" > + command: < command as string > + - sequence: < sequence_number_2 > + action: < permit | deny > + mode: < "config" | "config-all" | "exec" | "" > + command: < command as string > ``` #### Radius Servers diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 index 80749683678..3dc6ca3e55a 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 @@ -1,16 +1,16 @@ -{% if user_roles is arista.avd.defined %} +{% if roles is arista.avd.defined %} ## User Roles ### User Roles Summary -{% for user_role in user_roles | arista.avd.natural_sort %} -#### {{ user_role }} +{% for role in roles | arista.avd.natural_sort %} +#### {{ role.name }} -| Sequence | Action | -| -------- | ------ | -{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} -| {{ sequence }} | {{ user_roles[user_role].sequence_numbers[sequence].action }} | +| Sequence | Action | Mode | Command | +| -------- | ------ | ---- | ------- | +{% for sequence in role.sequence_numbers | arista.avd.natural_sort %} +| {{ sequence.sequence }} | {{ sequence.action }} | {% if sequence.mode is arista.avd.defined %} {{ sequence.mode }}{% endif %} | {{ sequence.command }} | {% endfor %} {% endfor %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 index 5f849b716a2..4e8565413b7 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 @@ -1,12 +1,27 @@ {# eos - user-roles #} -{% if user_roles is arista.avd.defined %} +{% if roles is arista.avd.defined %} ! -{% for user_role in user_roles | arista.avd.natural_sort %} -role {{ user_role }} -{% for sequence in user_roles[user_role].sequence_numbers | arista.avd.natural_sort %} -{% if user_roles[user_role].sequence_numbers[sequence].action is arista.avd.defined %} - {{ sequence }} {{ user_roles[user_role].sequence_numbers[sequence].action }} +{% for role in roles %} +{% if role.name is arista.avd.defined %} +role {{ role.name }} +{% if role.sequence_numbers is arista.avd.defined %} +{% for sequence in role.sequence_numbers %} +{% if sequence.sequence is arista.avd.defined %} +{% set sequence_cli = sequence.sequence %} +{% if sequence.action is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " " ~ sequence.action %} +{% endif %} +{% if sequence.mode is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} +{% endif %} +{% if sequence.command is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} +{% endif %} + {{ sequence_cli }} +{% endif %} +{% endfor %} {% endif %} -{% endfor %} +{% endif %} {% endfor %} -{% endif %} \ No newline at end of file +{% endif %} + From d732b808065a4ec0c00d1957f1fe54fe0e32c5ef Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Fri, 12 Nov 2021 15:03:10 +0100 Subject: [PATCH 07/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../devices/{user-roles.md => roles.md} | 19 +++++++++---------- .../configs/{user-roles.cfg => roles.cfg} | 2 +- .../host_vars/{user-roles.yml => roles.yml} | 2 +- .../eos_cli_config_gen/inventory/hosts.ini | 2 +- .../documentation/{user-roles.j2 => roles.j2} | 15 +++++++-------- .../templates/eos-device-documentation.j2 | 4 ++-- .../templates/eos-intended-config.j2 | 4 ++-- .../templates/eos/{user-roles.j2 => roles.j2} | 15 +++++++-------- 8 files changed, 30 insertions(+), 33 deletions(-) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/{user-roles.md => roles.md} (90%) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/{user-roles.cfg => roles.cfg} (94%) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/{user-roles.yml => roles.yml} (93%) rename ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/{user-roles.j2 => roles.j2} (52%) rename ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/{user-roles.j2 => roles.j2} (55%) diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md similarity index 90% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md index 7a14aa80d98..1101396ba1a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md @@ -1,11 +1,11 @@ -# user-roles +# roles # Table of Contents - [Management](#management) - [Management Interfaces](#management-interfaces) - [Authentication](#authentication) - - [User Roles](#user-roles) + - [Roles](#roles) - [Monitoring](#monitoring) - [Internal VLAN Allocation Policy](#internal-vlan-allocation-policy) - [Internal VLAN Allocation Policy Summary](#internal-vlan-allocation-policy-summary) @@ -49,19 +49,18 @@ interface Management1 # Authentication -## User Roles +## Roles -### User Roles Summary - -#### network-limited +### Roles Summary +#### Role network-limited | Sequence | Action | Mode | Command | | -------- | ------ | ---- | ------- | -| 10 | permit | exec | ssh | -| 20 | deny | | telnet | -| 30 | permit | exec | traceroute | +| 10 | permit | exec | ssh | +| 20 | deny | - | telnet | +| 30 | permit | exec | traceroute | -### User Roles Device Configuration +### Roles Device Configuration ```eos ! diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/roles.cfg similarity index 94% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/roles.cfg index d515f58d203..bdbd7fd1d8f 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/roles.cfg @@ -2,7 +2,7 @@ ! transceiver qsfp default-mode 4x10G ! -hostname user-roles +hostname roles ! no aaa root no enable password diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/roles.yml similarity index 93% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/roles.yml index 195405c6c95..ecb2fbb2012 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/roles.yml @@ -1,4 +1,4 @@ -### User Roles ### +### Roles ### roles: - name: network-limited sequence_numbers: diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index f4fb1411216..f3df27f09d5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -62,6 +62,7 @@ ptp qos queue_monitor_streaming redundancy +roles route-maps router-bfd router-bgp-base @@ -99,7 +100,6 @@ terminattr-prem-no-ingestkey terminattr-prem-disableaaa traffic-policies unsupported-transceiver -user-roles vlan-interfaces virtual-source-nat vlan-internal-order diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 similarity index 52% rename from ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 rename to ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 index 3dc6ca3e55a..d381290d376 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 @@ -1,22 +1,21 @@ {% if roles is arista.avd.defined %} -## User Roles - -### User Roles Summary +## Roles +### Roles Summary {% for role in roles | arista.avd.natural_sort %} -#### {{ role.name }} +#### Role {{ role.name }} | Sequence | Action | Mode | Command | | -------- | ------ | ---- | ------- | {% for sequence in role.sequence_numbers | arista.avd.natural_sort %} -| {{ sequence.sequence }} | {{ sequence.action }} | {% if sequence.mode is arista.avd.defined %} {{ sequence.mode }}{% endif %} | {{ sequence.command }} | +| {{ sequence.sequence | arista.avd.default('-') }} | {{ sequence.action }} | {{ sequence.mode | arista.avd.default('-') }} | {{ sequence.command }} | {% endfor %} - {% endfor %} -### User Roles Device Configuration + +### Roles Device Configuration ```eos -{% include 'eos/user-roles.j2' %} +{% include 'eos/roles.j2' %} ``` {% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 index 0e975dae89c..13191bb10aa 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 @@ -33,8 +33,8 @@ # Authentication {## Local Users #} {% include 'documentation/local-users.j2' %} -{## User Roles #} -{% include 'documentation/user-roles.j2' %} +{## Roles #} +{% include 'documentation/roles.j2' %} {## Enable Password #} {% include 'documentation/enable-password.j2' %} {## TACACS Servers #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 index 0f95655bf56..f7289117704 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 @@ -98,8 +98,8 @@ {% include 'eos/enable-password.j2' %} {# users #} {% include 'eos/local-users.j2' %} -{# user roles #} -{% include 'eos/user-roles.j2' %} +{# roles #} +{% include 'eos/roles.j2' %} {# clock timezone #} {% include 'eos/clock-timezone.j2' %} {# VLANs #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 similarity index 55% rename from ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 rename to ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 index 4e8565413b7..0ed466b6ff1 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 @@ -1,4 +1,4 @@ -{# eos - user-roles #} +{# eos - roles #} {% if roles is arista.avd.defined %} ! {% for role in roles %} @@ -6,17 +6,16 @@ role {{ role.name }} {% if role.sequence_numbers is arista.avd.defined %} {% for sequence in role.sequence_numbers %} -{% if sequence.sequence is arista.avd.defined %} -{% set sequence_cli = sequence.sequence %} -{% if sequence.action is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " " ~ sequence.action %} +{% if sequence.action is arista.avd.defined and sequence.command is arista.avd.defined %} +{% set sequence_cli = "" %} +{% if sequence.sequence is arista.avd.defined %} +{% set sequence_cli = sequence.sequence ~ " " %} {% endif %} +{% set sequence_cli = sequence_cli ~ sequence.action %} {% if sequence.mode is arista.avd.defined %} {% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} {% endif %} -{% if sequence.command is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} -{% endif %} +{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} {{ sequence_cli }} {% endif %} {% endfor %} From d55be5c8504b0837dcf0a93e467eba67d36f7bb9 Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Fri, 12 Nov 2021 18:39:52 +0100 Subject: [PATCH 08/11] Feat(eos_cli_config_gen): Support custom Roles --- .../inventory/host_vars/user-roles.yml | 16 ----------- .../eos_cli_config_gen/inventory/hosts.ini | 1 - .../templates/documentation/user-roles.j2 | 22 --------------- .../templates/eos/user-roles.j2 | 27 ------------------- 4 files changed, 66 deletions(-) delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml delete mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 delete mode 100644 ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml deleted file mode 100644 index 195405c6c95..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/user-roles.yml +++ /dev/null @@ -1,16 +0,0 @@ -### User Roles ### -roles: - - name: network-limited - sequence_numbers: - - sequence: 10 - action: permit - mode: exec - command: ssh - - sequence: 20 - action: deny - command: telnet - - sequence: 30 - action: permit - mode: exec - command: traceroute - diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index 272fca1ad52..f3df27f09d5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -100,7 +100,6 @@ terminattr-prem-no-ingestkey terminattr-prem-disableaaa traffic-policies unsupported-transceiver -user-roles vlan-interfaces virtual-source-nat vlan-internal-order diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 deleted file mode 100644 index 3dc6ca3e55a..00000000000 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/user-roles.j2 +++ /dev/null @@ -1,22 +0,0 @@ -{% if roles is arista.avd.defined %} - -## User Roles - -### User Roles Summary - -{% for role in roles | arista.avd.natural_sort %} -#### {{ role.name }} - -| Sequence | Action | Mode | Command | -| -------- | ------ | ---- | ------- | -{% for sequence in role.sequence_numbers | arista.avd.natural_sort %} -| {{ sequence.sequence }} | {{ sequence.action }} | {% if sequence.mode is arista.avd.defined %} {{ sequence.mode }}{% endif %} | {{ sequence.command }} | -{% endfor %} - -{% endfor %} -### User Roles Device Configuration - -```eos -{% include 'eos/user-roles.j2' %} -``` -{% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 deleted file mode 100644 index 4e8565413b7..00000000000 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/user-roles.j2 +++ /dev/null @@ -1,27 +0,0 @@ -{# eos - user-roles #} -{% if roles is arista.avd.defined %} -! -{% for role in roles %} -{% if role.name is arista.avd.defined %} -role {{ role.name }} -{% if role.sequence_numbers is arista.avd.defined %} -{% for sequence in role.sequence_numbers %} -{% if sequence.sequence is arista.avd.defined %} -{% set sequence_cli = sequence.sequence %} -{% if sequence.action is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " " ~ sequence.action %} -{% endif %} -{% if sequence.mode is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} -{% endif %} -{% if sequence.command is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} -{% endif %} - {{ sequence_cli }} -{% endif %} -{% endfor %} -{% endif %} -{% endif %} -{% endfor %} -{% endif %} - From a6c11ccc7fb9e73b161b6b30a4690962969cd246 Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Fri, 12 Nov 2021 18:49:12 +0100 Subject: [PATCH 09/11] Feat(eos_cli_config_gen): Support custom User Roles --- .../documentation/devices/user-roles.md | 115 ------------------ .../intended/configs/user-roles.cfg | 20 --- .../avd/roles/eos_cli_config_gen/README.md | 4 +- 3 files changed, 2 insertions(+), 137 deletions(-) delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md deleted file mode 100644 index 7a14aa80d98..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/user-roles.md +++ /dev/null @@ -1,115 +0,0 @@ -# user-roles -# Table of Contents - - -- [Management](#management) - - [Management Interfaces](#management-interfaces) -- [Authentication](#authentication) - - [User Roles](#user-roles) -- [Monitoring](#monitoring) -- [Internal VLAN Allocation Policy](#internal-vlan-allocation-policy) - - [Internal VLAN Allocation Policy Summary](#internal-vlan-allocation-policy-summary) -- [Interfaces](#interfaces) -- [Routing](#routing) - - [IP Routing](#ip-routing) - - [IPv6 Routing](#ipv6-routing) -- [Multicast](#multicast) -- [Filters](#filters) -- [ACL](#acl) -- [Quality Of Service](#quality-of-service) - - -# Management - -## Management Interfaces - -### Management Interfaces Summary - -#### IPv4 - -| Management Interface | description | Type | VRF | IP Address | Gateway | -| -------------------- | ----------- | ---- | --- | ---------- | ------- | -| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | - -#### IPv6 - -| Management Interface | description | Type | VRF | IPv6 Address | IPv6 Gateway | -| -------------------- | ----------- | ---- | --- | ------------ | ------------ | -| Management1 | oob_management | oob | MGMT | - | - | - -### Management Interfaces Device Configuration - -```eos -! -interface Management1 - description oob_management - vrf MGMT - ip address 10.73.255.122/24 -``` - -# Authentication - -## User Roles - -### User Roles Summary - -#### network-limited - -| Sequence | Action | Mode | Command | -| -------- | ------ | ---- | ------- | -| 10 | permit | exec | ssh | -| 20 | deny | | telnet | -| 30 | permit | exec | traceroute | - -### User Roles Device Configuration - -```eos -! -role network-limited - 10 permit mode exec command ssh - 20 deny command telnet - 30 permit mode exec command traceroute -``` - -# Monitoring - -# Internal VLAN Allocation Policy - -## Internal VLAN Allocation Policy Summary - -**Default Allocation Policy** - -| Policy Allocation | Range Beginning | Range Ending | -| ------------------| --------------- | ------------ | -| ascending | 1006 | 4094 | - -# Interfaces - -# Routing - -## IP Routing - -### IP Routing Summary - -| VRF | Routing Enabled | -| --- | --------------- | -| default | false| -### IP Routing Device Configuration - -```eos -``` -## IPv6 Routing - -### IPv6 Routing Summary - -| VRF | Routing Enabled | -| --- | --------------- | -| default | false | - -# Multicast - -# Filters - -# ACL - -# Quality Of Service diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg deleted file mode 100644 index d515f58d203..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/user-roles.cfg +++ /dev/null @@ -1,20 +0,0 @@ -!RANCID-CONTENT-TYPE: arista -! -transceiver qsfp default-mode 4x10G -! -hostname user-roles -! -no aaa root -no enable password -! -role network-limited - 10 permit mode exec command ssh - 20 deny command telnet - 30 permit mode exec command traceroute -! -interface Management1 - description oob_management - vrf MGMT - ip address 10.73.255.122/24 -! -end diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md index 79469f04f70..b3e1190ffc4 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/README.md @@ -23,7 +23,7 @@ - [IP RADIUS Source Interfaces](#ip-radius-source-interfaces) - [IP TACACS+ Source Interfaces](#ip-tacacs-source-interfaces) - [Local Users](#local-users) - - [User Roles](#user-roles) + - [Roles](#roles) - [Radius Servers](#radius-servers) - [Tacacs+ Servers](#tacacs-servers) - [Banners](#banners) @@ -396,7 +396,7 @@ local_users: ssh_key: "< ssh_key_string >" ``` -#### User Roles +#### Roles ```yaml roles: From 9e7f39637d2a6ab7f6bebda0062513e5670d1968 Mon Sep 17 00:00:00 2001 From: Nico Weibezahl Date: Sat, 13 Nov 2021 13:29:15 +0100 Subject: [PATCH 10/11] Feat(eos_cli_config_gen): Support custom Roles --- .../eos_cli_config_gen/documentation/devices/roles.md | 1 + .../eos_cli_config_gen/templates/documentation/roles.j2 | 5 ++++- .../avd/roles/eos_cli_config_gen/templates/eos/roles.j2 | 1 - 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md index 1101396ba1a..824db91c693 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/roles.md @@ -52,6 +52,7 @@ interface Management1 ## Roles ### Roles Summary + #### Role network-limited | Sequence | Action | Mode | Command | diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 index d381290d376..16648120921 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 @@ -3,13 +3,16 @@ ## Roles ### Roles Summary + {% for role in roles | arista.avd.natural_sort %} #### Role {{ role.name }} | Sequence | Action | Mode | Command | | -------- | ------ | ---- | ------- | -{% for sequence in role.sequence_numbers | arista.avd.natural_sort %} +{% for sequence in role.sequence_numbers | arista.avd.default([]) %} +{% if sequence.action is arista.avd.defined and sequence.command is arista.avd.defined %} | {{ sequence.sequence | arista.avd.default('-') }} | {{ sequence.action }} | {{ sequence.mode | arista.avd.default('-') }} | {{ sequence.command }} | +{% endif %} {% endfor %} {% endfor %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 index 0ed466b6ff1..0f28ae220c5 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/roles.j2 @@ -23,4 +23,3 @@ role {{ role.name }} {% endif %} {% endfor %} {% endif %} - From 7e0d9f34e92f4e715d991845b371649729b90b3f Mon Sep 17 00:00:00 2001 From: ClausHolbechArista <48674677+ClausHolbechArista@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:21:48 +0100 Subject: [PATCH 11/11] Update roles.j2 --- .../roles/eos_cli_config_gen/templates/documentation/roles.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 index 16648120921..dff20ad3f2d 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/roles.j2 @@ -3,8 +3,8 @@ ## Roles ### Roles Summary - {% for role in roles | arista.avd.natural_sort %} + #### Role {{ role.name }} | Sequence | Action | Mode | Command |