From 24a3593e2e800e27bc4c601a7d3b4a3033989d90 Mon Sep 17 00:00:00 2001 From: Mahesh Kumar Date: Sun, 4 Aug 2024 23:14:23 -0700 Subject: [PATCH 1/5] removed deprecated keys from svi-settings --- .../intended/configs/host2.cfg | 15 ----------- .../intended/structured_configs/host2.yml | 20 -------------- .../host_vars/host1/svi_profiles.yml | 1 - .../inventory/host_vars/host2/tenants.yml | 12 --------- .../network-services-vrfs-svis-settings.md | 20 ++------------ .../eos_designs/docs/tables/svi-profiles.md | 20 ++------------ .../schema/eos_designs.schema.yml | 26 +++++++++---------- .../defs_svi_settings.schema.yml | 20 +++++++------- .../network_services/vlan_interfaces.py | 3 --- .../network_services/vrfs.py | 2 -- 10 files changed, 26 insertions(+), 113 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/configs/host2.cfg b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/configs/host2.cfg index 6cd8afc4da1..8d67320813b 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/configs/host2.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/configs/host2.cfg @@ -11,9 +11,6 @@ hostname host2 no enable password no aaa root ! -vlan 110 - name Tenant_A_OP_Zone_1 -! vlan 111 name Tenant_A_OP_Zone_2 ! @@ -29,29 +26,17 @@ interface Loopback0 no shutdown ip address 10.42.0.102/32 ! -interface Vlan110 - description Tenant_A_OP_Zone_1 - no shutdown - vrf TENANT_B_WAN - ip helper-address 1.1.1.1 vrf MGMT source-interface lo100 - ipv6 enable - ipv6 address virtual 2001:db8:413::1/64 -! interface Vlan111 description Tenant_A_OP_Zone_2 no shutdown vrf TENANT_B_WAN ip helper-address 1.1.1.1 vrf MGMT source-interface lo100 - ipv6 enable - ipv6 address virtual 2001:db8:310::1/64 - ipv6 address virtual 2001:db8:311::1/64 ! ip virtual-router mac-address 00:1c:73:00:dc:01 ! ip routing no ip routing vrf MGMT ip routing vrf TENANT_B_WAN -ipv6 unicast-routing vrf TENANT_B_WAN ! ip prefix-list PL-LOOPBACKS-EVPN-OVERLAY seq 10 permit 10.42.0.0/24 eq 32 diff --git a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/structured_configs/host2.yml b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/structured_configs/host2.yml index 4faac9138de..757de777873 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/structured_configs/host2.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/intended/structured_configs/host2.yml @@ -51,7 +51,6 @@ vrfs: - name: TENANT_B_WAN tenant: TENANT_B ip_routing: true - ipv6_routing: true management_api_http: enable_vrfs: - name: MGMT @@ -79,9 +78,6 @@ router_bfd: min_rx: 300 multiplier: 3 vlans: -- id: 110 - name: Tenant_A_OP_Zone_1 - tenant: TENANT_B - id: 111 name: Tenant_A_OP_Zone_2 tenant: TENANT_B @@ -92,28 +88,12 @@ ip_igmp_snooping: globally_enabled: true ip_virtual_router_mac_address: 00:1c:73:00:dc:01 vlan_interfaces: -- name: Vlan110 - tenant: TENANT_B - description: Tenant_A_OP_Zone_1 - shutdown: false - ipv6_enable: true - ipv6_address_virtuals: - - 2001:db8:413::1/64 - vrf: TENANT_B_WAN - ip_helpers: - - ip_helper: 1.1.1.1 - source_interface: lo100 - vrf: MGMT - name: Vlan111 tenant: TENANT_B tags: - opzone description: Tenant_A_OP_Zone_2 shutdown: false - ipv6_enable: true - ipv6_address_virtuals: - - 2001:db8:310::1/64 - - 2001:db8:311::1/64 vrf: TENANT_B_WAN ip_helpers: - ip_helper: 1.1.1.1 diff --git a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host1/svi_profiles.yml b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host1/svi_profiles.yml index eacbc233c38..d32fb79b72a 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host1/svi_profiles.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host1/svi_profiles.yml @@ -14,7 +14,6 @@ svi_profiles: mtu: 1560 enabled: false ip_address_virtual: 10.4.13.254/24 - ipv6_address_virtual: 2001:db8:413::1/64 # Testing "ip_helpers" as dict of dict # Dict type is deprecated in 4.0.0. To be removed in 5.0.0 ip_helpers: diff --git a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host2/tenants.yml b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host2/tenants.yml index fdd23831a96..b27b98a0ad5 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host2/tenants.yml +++ b/ansible_collections/arista/avd/molecule/eos_designs_deprecated_vars/inventory/host_vars/host2/tenants.yml @@ -24,23 +24,11 @@ tenants: # Testing "svis" as dict of dict # Dict type is deprecated in 4.0.0. To be removed in 5.0.0 svis: - 110: - vni_override: 50110 - name: Tenant_A_OP_Zone_1 - enabled: True - # Testing ipv6_address_virtual alone - # ipv6_address_virtual deprecated in 4.0.0. To be removed in 5.0.0 - ipv6_address_virtual: 2001:db8:413::1/64 111: vni_override: 50111 name: Tenant_A_OP_Zone_2 tags: ['opzone'] enabled: True - # Testing ipv6_address_virtual in combination with the new ipv6_address_virtuals to see that both are configured - # ipv6_address_virtual deprecated in 4.0.0. To be removed in 5.0.0 - ipv6_address_virtual: 2001:db8:310::1/64 - ipv6_address_virtuals: - - 2001:db8:311::1/64 # Testing "ip_helpers" as dict of dict # Dict type is deprecated in 4.0.0. To be removed in 5.0.0 ip_helpers: diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-svis-settings.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-svis-settings.md index 2055fd0fa09..8fb408edacd 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-svis-settings.md +++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-svis-settings.md @@ -29,7 +29,6 @@ | [                ipv6_address](## ".[].vrfs.[].svis.[].nodes.[].ipv6_address") | String | | | | IPv6_address/Mask. Usually set under "nodes" to have unique IPv6 addresses per node. | | [                ipv6_enable](## ".[].vrfs.[].svis.[].nodes.[].ipv6_enable") | Boolean | | | | Explicitly enable/disable link-local IPv6 addressing. | | [                ip_address_virtual](## ".[].vrfs.[].svis.[].nodes.[].ip_address_virtual") | String | | | | IPv4_address/Mask.
IPv4 VXLAN Anycast IP address.
Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node.
| - | [                ipv6_address_virtual](## ".[].vrfs.[].svis.[].nodes.[].ipv6_address_virtual") deprecated | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [                ipv6_address_virtuals](## ".[].vrfs.[].svis.[].nodes.[].ipv6_address_virtuals") | List, items: String | | | | IPv6 VXLAN Anycast IP addresses.
Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node.
| | [                  - <str>](## ".[].vrfs.[].svis.[].nodes.[].ipv6_address_virtuals.[]") | String | | | | IPv6_address/Mask. | | [                ip_address_virtual_secondaries](## ".[].vrfs.[].svis.[].nodes.[].ip_address_virtual_secondaries") | List, items: String | | | | Secondary IPv4 VXLAN Anycast IP addresses. | @@ -57,13 +56,13 @@ | [                  raw_eos_cli](## ".[].vrfs.[].svis.[].nodes.[].bgp.raw_eos_cli") | String | | | | EOS CLI rendered directly on the Router BGP, VLAN definition in the final EOS configuration.
| | [                raw_eos_cli](## ".[].vrfs.[].svis.[].nodes.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the VLAN interface in the final EOS configuration.
| | [                structured_config](## ".[].vrfs.[].svis.[].nodes.[].structured_config") | Dictionary | | | | Custom structured config added under vlan_interfaces.[name=] for eos_cli_config_gen.
| + | [                ipv6_address_virtual](## ".[].vrfs.[].svis.[].nodes.[].ipv6_address_virtual") removed | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
This key was removed. Support was removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [            enabled](## ".[].vrfs.[].svis.[].enabled") | Boolean | | | | Enable or disable interface. | | [            description](## ".[].vrfs.[].svis.[].description") | String | | | | SVI description. By default set to VLAN name.
| | [            ip_address](## ".[].vrfs.[].svis.[].ip_address") | String | | | | IPv4_address/Mask. Usually set under "nodes" to have unique IPv4 addresses per node. | | [            ipv6_address](## ".[].vrfs.[].svis.[].ipv6_address") | String | | | | IPv6_address/Mask. Usually set under "nodes" to have unique IPv6 addresses per node. | | [            ipv6_enable](## ".[].vrfs.[].svis.[].ipv6_enable") | Boolean | | | | Explicitly enable/disable link-local IPv6 addressing. | | [            ip_address_virtual](## ".[].vrfs.[].svis.[].ip_address_virtual") | String | | | | IPv4_address/Mask.
IPv4 VXLAN Anycast IP address.
Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node.
| - | [            ipv6_address_virtual](## ".[].vrfs.[].svis.[].ipv6_address_virtual") deprecated | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [            ipv6_address_virtuals](## ".[].vrfs.[].svis.[].ipv6_address_virtuals") | List, items: String | | | | IPv6 VXLAN Anycast IP addresses.
Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node.
| | [              - <str>](## ".[].vrfs.[].svis.[].ipv6_address_virtuals.[]") | String | | | | IPv6_address/Mask. | | [            ip_address_virtual_secondaries](## ".[].vrfs.[].svis.[].ip_address_virtual_secondaries") | List, items: String | | | | Secondary IPv4 VXLAN Anycast IP addresses. | @@ -91,6 +90,7 @@ | [              raw_eos_cli](## ".[].vrfs.[].svis.[].bgp.raw_eos_cli") | String | | | | EOS CLI rendered directly on the Router BGP, VLAN definition in the final EOS configuration.
| | [            raw_eos_cli](## ".[].vrfs.[].svis.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the VLAN interface in the final EOS configuration.
| | [            structured_config](## ".[].vrfs.[].svis.[].structured_config") | Dictionary | | | | Custom structured config added under vlan_interfaces.[name=] for eos_cli_config_gen.
| + | [            ipv6_address_virtual](## ".[].vrfs.[].svis.[].ipv6_address_virtual") removed | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
This key was removed. Support was removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | === "YAML" @@ -178,14 +178,6 @@ # Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node. ip_address_virtual: - # IPv6_address/Mask. - # ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - # If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured. - # This key is deprecated. - # Support will be removed in AVD version 5.0.0. - # Use ipv6_address_virtuals instead. - ipv6_address_virtual: - # IPv6 VXLAN Anycast IP addresses. # Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node. ipv6_address_virtuals: @@ -309,14 +301,6 @@ # Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node. ip_address_virtual: - # IPv6_address/Mask. - # ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - # If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured. - # This key is deprecated. - # Support will be removed in AVD version 5.0.0. - # Use ipv6_address_virtuals instead. - ipv6_address_virtual: - # IPv6 VXLAN Anycast IP addresses. # Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node. ipv6_address_virtuals: diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/svi-profiles.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/svi-profiles.md index 7f1ce01b825..39c0825c6f7 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/svi-profiles.md +++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/svi-profiles.md @@ -19,7 +19,6 @@ | [        ipv6_address](## "svi_profiles.[].nodes.[].ipv6_address") | String | | | | IPv6_address/Mask. Usually set under "nodes" to have unique IPv6 addresses per node. | | [        ipv6_enable](## "svi_profiles.[].nodes.[].ipv6_enable") | Boolean | | | | Explicitly enable/disable link-local IPv6 addressing. | | [        ip_address_virtual](## "svi_profiles.[].nodes.[].ip_address_virtual") | String | | | | IPv4_address/Mask.
IPv4 VXLAN Anycast IP address.
Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node.
| - | [        ipv6_address_virtual](## "svi_profiles.[].nodes.[].ipv6_address_virtual") deprecated | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [        ipv6_address_virtuals](## "svi_profiles.[].nodes.[].ipv6_address_virtuals") | List, items: String | | | | IPv6 VXLAN Anycast IP addresses.
Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node.
| | [          - <str>](## "svi_profiles.[].nodes.[].ipv6_address_virtuals.[]") | String | | | | IPv6_address/Mask. | | [        ip_address_virtual_secondaries](## "svi_profiles.[].nodes.[].ip_address_virtual_secondaries") | List, items: String | | | | Secondary IPv4 VXLAN Anycast IP addresses. | @@ -47,6 +46,7 @@ | [          raw_eos_cli](## "svi_profiles.[].nodes.[].bgp.raw_eos_cli") | String | | | | EOS CLI rendered directly on the Router BGP, VLAN definition in the final EOS configuration.
| | [        raw_eos_cli](## "svi_profiles.[].nodes.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the VLAN interface in the final EOS configuration.
| | [        structured_config](## "svi_profiles.[].nodes.[].structured_config") | Dictionary | | | | Custom structured config added under vlan_interfaces.[name=] for eos_cli_config_gen.
| + | [        ipv6_address_virtual](## "svi_profiles.[].nodes.[].ipv6_address_virtual") removed | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
This key was removed. Support was removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [    name](## "svi_profiles.[].name") | String | | | | VLAN name. | | [    enabled](## "svi_profiles.[].enabled") | Boolean | | | | Enable or disable interface. | | [    description](## "svi_profiles.[].description") | String | | | | SVI description. By default set to VLAN name.
| @@ -54,7 +54,6 @@ | [    ipv6_address](## "svi_profiles.[].ipv6_address") | String | | | | IPv6_address/Mask. Usually set under "nodes" to have unique IPv6 addresses per node. | | [    ipv6_enable](## "svi_profiles.[].ipv6_enable") | Boolean | | | | Explicitly enable/disable link-local IPv6 addressing. | | [    ip_address_virtual](## "svi_profiles.[].ip_address_virtual") | String | | | | IPv4_address/Mask.
IPv4 VXLAN Anycast IP address.
Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node.
| - | [    ipv6_address_virtual](## "svi_profiles.[].ipv6_address_virtual") deprecated | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | | [    ipv6_address_virtuals](## "svi_profiles.[].ipv6_address_virtuals") | List, items: String | | | | IPv6 VXLAN Anycast IP addresses.
Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node.
| | [      - <str>](## "svi_profiles.[].ipv6_address_virtuals.[]") | String | | | | IPv6_address/Mask. | | [    ip_address_virtual_secondaries](## "svi_profiles.[].ip_address_virtual_secondaries") | List, items: String | | | | Secondary IPv4 VXLAN Anycast IP addresses. | @@ -82,6 +81,7 @@ | [      raw_eos_cli](## "svi_profiles.[].bgp.raw_eos_cli") | String | | | | EOS CLI rendered directly on the Router BGP, VLAN definition in the final EOS configuration.
| | [    raw_eos_cli](## "svi_profiles.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the VLAN interface in the final EOS configuration.
| | [    structured_config](## "svi_profiles.[].structured_config") | Dictionary | | | | Custom structured config added under vlan_interfaces.[name=] for eos_cli_config_gen.
| + | [    ipv6_address_virtual](## "svi_profiles.[].ipv6_address_virtual") removed | String | | | | IPv6_address/Mask.
ipv6 address virtuals to configure VXLAN Anycast IP address (Optional).
This key was removed. Support was removed in AVD version 5.0.0. Use ipv6_address_virtuals instead. | === "YAML" @@ -134,14 +134,6 @@ # Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node. ip_address_virtual: - # IPv6_address/Mask. - # ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - # If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured. - # This key is deprecated. - # Support will be removed in AVD version 5.0.0. - # Use ipv6_address_virtuals instead. - ipv6_address_virtual: - # IPv6 VXLAN Anycast IP addresses. # Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node. ipv6_address_virtuals: @@ -268,14 +260,6 @@ # Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node. ip_address_virtual: - # IPv6_address/Mask. - # ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - # If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured. - # This key is deprecated. - # Support will be removed in AVD version 5.0.0. - # Use ipv6_address_virtuals instead. - ipv6_address_virtual: - # IPv6 VXLAN Anycast IP addresses. # Conserves IPv6 addresses in VXLAN deployments as it doesn't require unique IPv6 addresses on each node. ipv6_address_virtuals: diff --git a/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml b/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml index 87914644204..1096994cdbb 100644 --- a/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml +++ b/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml @@ -9333,20 +9333,6 @@ $defs: IP addresses on each node. ' - ipv6_address_virtual: - type: str - description: 'IPv6_address/Mask. - - ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - - If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all - addresses will be configured. - - ' - deprecation: - warning: true - remove_in_version: 5.0.0 - new_key: ipv6_address_virtuals ipv6_address_virtuals: type: list description: 'IPv6 VXLAN Anycast IP addresses. @@ -9647,6 +9633,18 @@ $defs: documentation_options: hide_keys: true $ref: eos_cli_config_gen#/keys/vlan_interfaces/items + ipv6_address_virtual: + type: str + description: 'IPv6_address/Mask. + + ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). + + ' + deprecation: + removed: true + warning: true + remove_in_version: 5.0.0 + new_key: ipv6_address_virtuals virtual_topology: type: dict keys: diff --git a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_svi_settings.schema.yml b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_svi_settings.schema.yml index 6c45b5f7ffc..c983ed1bf3e 100644 --- a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_svi_settings.schema.yml +++ b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_svi_settings.schema.yml @@ -34,16 +34,6 @@ $defs: IPv4_address/Mask. IPv4 VXLAN Anycast IP address. Conserves IP addresses in VXLAN deployments as it doesn't require unique IP addresses on each node. - ipv6_address_virtual: - type: str - description: | - IPv6_address/Mask. - ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). - If both "ipv6_address_virtual" and "ipv6_address_virtuals" are set, all addresses will be configured. - deprecation: - warning: true - remove_in_version: 5.0.0 - new_key: ipv6_address_virtuals ipv6_address_virtuals: type: list description: | @@ -298,3 +288,13 @@ $defs: documentation_options: hide_keys: true $ref: "eos_cli_config_gen#/keys/vlan_interfaces/items" + ipv6_address_virtual: + type: str + description: | + IPv6_address/Mask. + ipv6 address virtuals to configure VXLAN Anycast IP address (Optional). + deprecation: + removed: true + warning: true + remove_in_version: 5.0.0 + new_key: ipv6_address_virtuals diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py index 268b5238ce7..824a1abe753 100644 --- a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py +++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py @@ -135,9 +135,6 @@ def _check_virtual_router_mac_address(vlan_interface_config: dict, variables: li # Only set Anycast v6 GW if VARPv6 is not set if vlan_interface_config.get("ip_virtual_router_addresses") is None: - if (ipv6_address_virtual := svi.get("ipv6_address_virtual")) is not None: - # The singular ipv6_address_virtual is deprecated from eos_cli_config_gen. So set as list item into the new key. - vlan_interface_config["ipv6_address_virtuals"] = [ipv6_address_virtual] if (ipv6_address_virtuals := svi.get("ipv6_address_virtuals")) is not None: vlan_interface_config.setdefault("ipv6_address_virtuals", []).extend(ipv6_address_virtuals) diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py index 11d269c353f..8a9821d017f 100644 --- a/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py +++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py @@ -80,8 +80,6 @@ def _has_ipv6(self: AvdStructuredConfigNetworkServices, vrf: dict) -> bool: Expects a VRF definition coming from filtered_tenants, where all keys have been set and filtered """ for svi in vrf["svis"]: - if svi.get("ipv6_address_virtual") is not None: - return True if len(svi.get("ipv6_address_virtuals", [])) > 0: return True From 2b4565f3030abd29084911e6abc6425ed750d92f Mon Sep 17 00:00:00 2001 From: Mahesh Kumar Date: Mon, 5 Aug 2024 00:00:31 -0700 Subject: [PATCH 2/5] updated porting-guide --- ansible_collections/arista/avd/docs/porting-guides/5.x.x.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md index 4474d2f81bc..5649e54c9ae 100644 --- a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md +++ b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md @@ -56,7 +56,7 @@ The following data model keys have been removed from `eos_designs` in v5.0.0. | old key 2(defs_adapter_config) | new key(TODO) | | old key 3.1(defs_node_type) | new key(TODO) | | old key 3.2(defs_node_type) | new key(TODO) | -| old key 4(defs_svi_settings) | new key(TODO) | +| svi_settings.ipv6_address_virtual | svi_settings.ipv6_address_virtuals | | old key 5(ptp) | new key(TODO) | ## Changes to role `arista.avd.eos_cli_config_gen` From 8b867171646a1341e463f7976b940aa8ae6216b1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:34:07 +0000 Subject: [PATCH 3/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../structured_config/network_services/vlan_interfaces.py | 1 - .../_eos_designs/structured_config/network_services/vrfs.py | 1 - 2 files changed, 2 deletions(-) diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py index 824a1abe753..cfc9315cd02 100644 --- a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py +++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py @@ -135,7 +135,6 @@ def _check_virtual_router_mac_address(vlan_interface_config: dict, variables: li # Only set Anycast v6 GW if VARPv6 is not set if vlan_interface_config.get("ip_virtual_router_addresses") is None: - if (ipv6_address_virtuals := svi.get("ipv6_address_virtuals")) is not None: vlan_interface_config.setdefault("ipv6_address_virtuals", []).extend(ipv6_address_virtuals) diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py index 8a9821d017f..f139620a401 100644 --- a/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py +++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/vrfs.py @@ -80,7 +80,6 @@ def _has_ipv6(self: AvdStructuredConfigNetworkServices, vrf: dict) -> bool: Expects a VRF definition coming from filtered_tenants, where all keys have been set and filtered """ for svi in vrf["svis"]: - if len(svi.get("ipv6_address_virtuals", [])) > 0: return True From 5096666e193e20472a12eabcf4e91d25167909a5 Mon Sep 17 00:00:00 2001 From: Mahesh Kumar <122076792+MaheshGSLAB@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:26:18 +0530 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Claus Holbech Co-authored-by: laxmikantchintakindi <159624484+laxmikantchintakindi@users.noreply.github.com> --- ansible_collections/arista/avd/docs/porting-guides/5.x.x.md | 4 +++- .../structured_config/network_services/vlan_interfaces.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md index 5649e54c9ae..319f998b10a 100644 --- a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md +++ b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md @@ -56,7 +56,9 @@ The following data model keys have been removed from `eos_designs` in v5.0.0. | old key 2(defs_adapter_config) | new key(TODO) | | old key 3.1(defs_node_type) | new key(TODO) | | old key 3.2(defs_node_type) | new key(TODO) | -| svi_settings.ipv6_address_virtual | svi_settings.ipv6_address_virtuals | +| [].vrfs[].svis[].ipv6_address_virtual | [].vrfs[].svis[].ipv6_address_virtuals | +| svi_profiles[].ipv6_address_virtual | svi_profiles[].ipv6_address_virtuals | + | old key 5(ptp) | new key(TODO) | ## Changes to role `arista.avd.eos_cli_config_gen` diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py index cfc9315cd02..1fb62115a21 100644 --- a/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py +++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py @@ -136,7 +136,7 @@ def _check_virtual_router_mac_address(vlan_interface_config: dict, variables: li # Only set Anycast v6 GW if VARPv6 is not set if vlan_interface_config.get("ip_virtual_router_addresses") is None: if (ipv6_address_virtuals := svi.get("ipv6_address_virtuals")) is not None: - vlan_interface_config.setdefault("ipv6_address_virtuals", []).extend(ipv6_address_virtuals) + vlan_interface_config["ipv6_address_virtuals"] = ipv6_address_virtuals _check_virtual_router_mac_address(vlan_interface_config, ["ipv6_address_virtuals"]) From b11cf2cad2ff23fac0b1b35baa55d853582f39e9 Mon Sep 17 00:00:00 2001 From: Claus Holbech Date: Tue, 6 Aug 2024 09:41:37 +0200 Subject: [PATCH 5/5] Update ansible_collections/arista/avd/docs/porting-guides/5.x.x.md Co-authored-by: laxmikantchintakindi <159624484+laxmikantchintakindi@users.noreply.github.com> --- ansible_collections/arista/avd/docs/porting-guides/5.x.x.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md index d27424b807d..7243d6a5a39 100644 --- a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md +++ b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md @@ -58,7 +58,6 @@ The following data model keys have been removed from `eos_designs` in v5.0.0. | old key 3.2(defs_node_type) | new key(TODO) | | [].vrfs[].svis[].ipv6_address_virtual | [].vrfs[].svis[].ipv6_address_virtuals | | svi_profiles[].ipv6_address_virtual | svi_profiles[].ipv6_address_virtuals | - | old key 5(ptp) | new key(TODO) | ## Changes to role `arista.avd.eos_cli_config_gen`