Skip to content

Release Notes for AVD 5.x.x

Release 5.1.0

Changes to requirements

  • AVD now supports Python 3.10 to 3.13.
  • Python requirements:
    • AVD now supports ansible-core from 2.15.0 to 2.18.x. The latest version can be installed with pip install "ansible-core<2.19" --upgrade.

Fixed issues in eos_cli_config_gen

Fixed issues in eos_designs

Other Fixed issues

Documentation

New features and enhancements in eos_cli_config_gen

New features and enhancements in eos_designs

New features and enhancement in both eos_designs and eos_cli_config_gen

Other new features and enhancements

PyAVD Changes

Other Changes

Release 5.0.0

Changes to requirements

  • Python requirements:
    • AVD v.5.0.0 requires Python version 3.10 or newer.
    • AVD now requires the cvprac Python library to be version 1.4.0 or higher.
      The latest version can be installed with pip install "cvprac>=1.4.0" --upgrade.
  • Ansible collection requirements:
    • Minimum arista.cvp version 3.11.0.

Removal of Ansible components

The following ansible components have been removed from the arista.avd Ansible collection in v5.0.0.

Filters:

  • arista.avd.convert_dicts
  • arista.avd.hash_passphrase
  • arista.avd.generate_esi
  • arista.avd.generate_lacp_id
  • arista.avd.generate_route_target

Action plugins / Modules:

  • arista.avd.deploy_to_cv
  • arista.avd.batch_template
  • arista.avd.validate_and_template
  • arista.avd.yaml_templates_to_facts
  • arista.avd._emit_warning

Roles:

  • arista.avd.deploy_to_cv

See the porting guide for details.

Removal of Ansible tags from AVD roles

Support for Ansible tags across AVD roles has been replaced with variables to control the execution of various parts of AVD.

The previous implementation of Ansible tags needed to be more consistent, and they were mostly undocumented. It often led to inconsistent behaviors depending on when the tags were used with --tags vs. --skip-tags.

See the porting guide for details.

Data model changes from “dict-of-dicts” to “list-of-dicts”

In AVD 4.0.0 and across both eos_designs and eos_cli_config_gen, all “dict-of-dicts” data models with user-defined keys were changed to “list-of-dicts”. In AVD 4.x inputs were auto-converted to the new data models.

As of AVD 5.0.0 the automatic conversion from dict-of-dicts has been removed, so it is required to update the input data to the new data models. The avd_data_conversion_mode key has also been removed.

See the porting guide for details.

All eos_designs and eos_cli_config_gen variables are always validated by schemas

In AVD 5.0.0, all eos_designs and eos_cli_config_gen keys are validated by schemas and execution will stop for any violations. If additional custom keys are desired, a key starting with an underscore _ will be ignored by validation.

Danger

The input variable avd_data_validation_mode now has a default value of error, and while it can be set to warning, this is highly discouraged. All AVD code relies on the validation to ensure valid data, so the code assumes that the data is valid.

If the validation mode is set to warning, execution will continue with invalid data, which can lead to hard-to-read errors or incorrect behavior.

Breaking or behavioral changes in eos_designs

Breaking changes may require modifications to the inventory or playbook. See the Porting guide for AVD 5.x.x for details.

Detailed changes and link to porting guide
Removal of deprecated eos_designs data models
Deprecation of design.type
Default interface descriptions are changed for more consistency
Default VLAN names are changed for more consistency
Default BGP peer descriptions are changed for more consistency
Combine the VLAN trunk groups used for MLAG
Prevent redistributing the MLAG peer link subnets into BGP for all VRFs by default
Default value of mlag_on_orphan_port_channel_downlink is changed to false
MLAG L3 Peering VLAN 4093 is no longer created when underlay_routing_protocol: 'none'
Structured Configuration merged from SVI profiles is now deep merged instead of replaced
vrf_id is used instead of vrf_vni to calculate the IP address of EVPN underlay multicast group for a VRF
Removed redistribute igmp from BGP VLAN config belonging to a VRF with EVPN Multicast
Only render IGMP snooping querier version and address when enabled
Connected endpoints and network ports now render PoE and 802.1x configuration for port-channel members and ignore PoE and 802.1x from LACP fallback individual profile
The default platform settings for R3-series now have the TCAM profile “vxlan-routing”
Shutdown interfaces and BGP towards undeployed peers by default
BGP is now configured for Network services VRFs even if ‘evpn’ is not part of the address-families
default_overlay_address_families and overlay_address_families no longer accepts a string
mpls_route_servers no longer accepts a string
Default value for OSPF area has been updated to 0.0.0.0
Default value of isis_system_id_format is changed to underlay_loopback
custom_structured_configuration_prefix no longer accepts a string
An error is raised if sFlow is enabled on an interface but sflow_settings.destinations is not set
Default MTU value changed from 9214 to 9194 for Dps1, WAN HA, and WAN p2p uplink interfaces
Default encapsulation for WAN EVPN iBGP peerings changed to path-selection
PREVIEW WAN HA Direct Link now uses Port-Channel by default
The base class for custom interface descriptions AvdInterfaceDescriptions was moved
Base class for custom IP addressing AvdIpAddressing was moved

Breaking or behavioral changes in eos_cli_config_gen

Breaking changes may require modifications to the inventory or playbook. See the Porting guide for AVD 5.x.x for details.

Detailed changes and link to porting guide
Removal of deprecated eos_cli_config_gen data models
No auto-conversion of old data model for router_bgp.redistribute_routes and router_bgp.vrfs[].redistribute_routes
!RANCID-CONTENT-TYPE: arista is no longer at the top of the generated configurations
Default EOS configuration is no longer automatically generated
monitor_sessions no longer requires both monitor_sessions.sources and monitor_sessions.destinations to be defined for generating configuration
router_isis.address_family_ipv4/6.enabled is now required to generate the configuration and documentation for router_isis address-families
ip_security.sa_policies[].esp.integrity and .encryption null option has been replaced with disabled
router_ospf.redistribute.bgp/connected/static data model has been updated to require the enabled key
router_traffic_engineering.enabled is required
Removal of type key dependency for rendering ethernet/port-channel interfaces configuration and documentation
Data models for BGP additional-paths under router_bgp has been changed

Breaking or behavioral changes in eos_validate_state

Starting AVD 5.0.0, eos_validate_state uses ANTA as backend, which will change the default behavior (same as setting use_anta: true in the latest AVD 4.x.x versions). If you have not been using use_anta: true in latest versions of AVD 4.x.x, please go through the following sections for details on the changes.

Breaking changes may require modifications to the inventory, input variables or playbooks. See the Porting guide for AVD 5.x.x for details.

Loose mode is the only supported mode

In the previous implementation, loose mode was used by default to avoid stopping the playbook and hence the tests when they were run task by task in Ansible. It was possible to turn loose mode off with a variable eos_validate_state_validation_mode_loose: false that would make the playbook stop at the first failing tasks for whatever reason on each host.

Loose mode is now the default and all the tests are always run and the errors are all present in the final report.

Input for hardware tests have been updated

The inputs for the hardware test have changed. See the porting guide for details.

Filtering tests using Ansible tags support was removed

Instead use the skip_tests mechanism. See the porting guide for details.

Changes to CSV and Markdown reports

  • Hardware tests are now collapsed.
  • Sorting of test results is now done per device as opposed to per category.
  • Test categories, descriptions and inputs have been improved to follow ANTA.
  • CSV report headers updated from test_id,node,test_category,test_description,test,result,failure_reason to id,dut,categories,test,description,inputs,result,messages
  • Tests skipped by ANTA will be marked as SKIPPED in the final reports.

Undeployed devices

  • All tests will be removed from the catalog for a device flagged as undeployed using the host level variable is_deployed: false.
  • Additionally, the per-device generated test catalog takes into account the is_deployed variable value from the peer devices (e.g. a ping test towards an undeployed peer is not generated).

Warning

Tests can also be automatically removed from the catalogs depending on the structured configuration of the devices. ANTA is therefore not aware of these tests and they will not appear in the final report. For example, the AvdTestMLAG tests will not be present in the test catalog of a device that does not have an MLAG configuration in its structured configuration.

BGP test change

  • BGP tests will only run if service_routing_protocols_model is set to multi-agent in the structured configuration file.

Note

Starting from version 4.30.1F, the service routing protocols is set to multi-agent on EOS devices by default. Details are available here (TOI article is only available for registered users).

Inband management reachability test change

  • Inband management reachability test has been refactored to support AVD inband management data model.

Summary of all changes

Breaking Changes

Fixed issues in eos_cli_config_gen

Fixed issues in eos_designs

Fixed issues in both eos_designs and eos_cli_config_gen

Other Fixed issues

Documentation

New features and enhancements in eos_cli_config_gen

New features and enhancements in eos_designs

Other new features and enhancements

PyAVD Changes

Other Changes