Porting Guide for Ansible AVD 6.x.x¶
Major releases of AVD can contain breaking changes. This porting guide addresses how to update your inventory and playbooks to be compatible with new default behaviors and changed data models when upgrading from AVD 5.x versions.
Note
To upgrade from AVD version 4.x, first upgrade to AVD 5.7 using the Porting Guide for Ansible AVD 5.x.x and then upgrade to 6.x with this guide.
Users of eos_designs need to consider the changes in eos_cli_config_gen when using structured configuration.
Common changes¶
// TODO: potentially remove if empty
Requirements changes¶
ansible.utils collection was removed from the arista.avd Ansible collection¶
Until 5.x, ansible.utils collection was a requirement of arista.avd Ansible collection.
This has been removed in AVD 6.0.0. If you were using the ansible.utils collection functionalities in your playbooks or templates, you now need to add the installation
of the collection to your environment. You will need to adjust your scripts to install your environment to add this collection.
As an example, you can install it in your environment using:
Removal of Ansible components¶
The following Ansible components have been removed from the arista.avd Ansible collection in version 6.0.0.
| Component type | Name | Replacement |
|---|---|---|
| Filter | arista.avd.xxx |
|
| Action plugin/Module | arista.avd.configlet_build_config |
The internal arista.avd.configlet_build_config module is no longer used by AVD. The plugin is released as open source, so it can be copied and reused according to the license and copyright. |
| Action plugin/Module | arista.avd.inventory_to_container |
The internal arista.avd.inventory_to_container module is no longer used by AVD. The plugin is released as open source, so it can be copied and reused according to the license and copyright. |
| Role | arista.avd.dhcp_provisioner |
The role is not compatible with modern DHCP servers and should not be used for production. The arista.avd.dhcp_provisioner role is released as open source, so it can be copied and reused according to the license and copyright. |
| Role | arista.avd.eos_config_deploy_cvp |
Migrate to arista.avd.cv_deploy. See the detailed porting guide for instructions. |
| Role | arista.avd.cvp_configlet_upload |
Migrate to arista.avd.cv_deploy. See the detailed porting guide for instructions. |
Changes to role arista.avd.eos_designs¶
Removal of deprecated eos_designs data models¶
The following data model keys have been removed from eos_designs in AVD 6.0.0.
| Removed key | New key |
|---|---|
aaa_settings.accounting.exec.console.group |
aaa_settings.accounting.exec.console.methods[].group |
aaa_settings.accounting.exec.console.logging |
aaa_settings.accounting.exec.console.methods[].method |
aaa_settings.accounting.exec.default.group |
aaa_settings.accounting.exec.default.methods[].group |
aaa_settings.accounting.exec.default.logging |
aaa_settings.accounting.exec.default.methods[].method |
aaa_settings.accounting.system.default.group |
aaa_settings.accounting.system.default.methods[].group |
aaa_settings.accounting.dot1x.default.group |
aaa_settings.accounting.dot1x.default.methods[].group |
aaa_settings.accounting.commands[].console[].group |
aaa_settings.accounting.commands[].console[].methods[].group |
aaa_settings.accounting.commands[].console[].logging |
aaa_settings.accounting.commands[].console[].methods[].method |
aaa_settings.accounting.commands[].default[].group |
aaa_settings.accounting.commands[].default[].methods[].group |
aaa_settings.accounting.commands[].default[].logging |
aaa_settings.accounting.commands[].default[].methods[].method |
avd_6_behaviors |
- |
core_interfaces.p2p_links[].structured_config |
core_interfaces.p2p_links.ethernet_structured_config or core_interfaces.p2p_links.port_channel_structured_config |
core_interfaces.p2p_links[].underlay_multicast |
core_interfaces.p2p_links.multicast_pim_sm |
core_interfaces.p2p_links_profiles[].structured_config |
core_interfaces.p2p_links_profiles.ethernet_structured_config or core_interfaces.p2p_links_profiles.port_channel_structured_config |
core_interfaces.p2p_links_profiles[].underlay_multicast |
core_interfaces.p2p_links_profiles.multicast_pim_sm |
cvp_ingestauth_key |
- |
cvp_instance_ips |
cv_settings |
cvp_token_file |
cv_settings |
design |
- |
flow_tracking_settings.trackers.exporters.collector |
flow_tracking_settings.trackers.exporters.collectors |
l3_edge.p2p_links[].structured_config |
l3_edge.p2p_links.ethernet_structured_config or l3_edge.p2p_links.port_channel_structured_config |
l3_edge.p2p_links[].underlay_multicast |
l3_edge.p2p_links.multicast_pim_sm |
l3_edge.p2p_links_profiles[].structured_config |
l3_edge.p2p_links_profiles.ethernet_structured_config or l3_edge.p2p_links_profiles.port_channel_structured_config |
l3_edge.p2p_links_profiles[].underlay_multicast |
l3_edge.p2p_links_profiles.multicast_pim_sm |
name_servers |
dns_settings.servers |
<network_services_key>[].vrfs[].ipv6_static_routes[].destination_address_prefix |
<network_services_key>[].vrfs[].ipv6_static_routes[].prefix |
<network_services_key>[].vrfs[].ipv6_static_routes[].gateway |
<network_services_key>[].vrfs[].ipv6_static_routes[].next_hop |
<network_services_key>[].vrfs[].static_routes[].destination_address_prefix |
<network_services_key>[].vrfs[].static_routes[].prefix |
<network_services_key>[].vrfs[].static_routes[].gateway |
<network_services_key>[].vrfs[].static_routes[].next_hop |
node_type_keys[].interface_descriptions.overlay_loopback_interface |
node_type_keys[].interface_descriptions.router_id_loopback_interface |
<node_type_key>.defaults.uplink_structured_config |
<node_type_key>.defaults.uplink_port_channel_structured_config or <node_type_key>.defaults.uplink_ethernet_structured_config or <node_type_key>.defaults.uplink_switch_ethernet_structured_config or <node_type_key>.defaults.uplink_switch_port_channel_structured_config |
<node_type_key>.node_groups[].nodes[].uplink_structured_config |
<node_type_key>.node_groups[].nodes[].uplink_port_channel_structured_config or <node_type_key>.node_groups[].nodes[].uplink_ethernet_structured_config or <node_type_key>.node_groups[].nodes[].uplink_switch_ethernet_structured_config or <node_type_key>.node_groups[].nodes[].uplink_switch_port_channel_structured_config |
<node_type_key>.node_groups[].uplink_structured_config |
<node_type_key>.node_groups[].uplink_port_channel_structured_config or <node_type_key>.node_groups[].uplink_ethernet_structured_config or <node_type_key>.node_groups[].uplink_switch_ethernet_structured_config or <node_type_key>.node_groups[].uplink_switch_port_channel_structured_config |
<node_type_key>.nodes[].uplink_structured_config |
<node_type_key>.nodes[].uplink_port_channel_structured_config or <node_type_key>.nodes[].uplink_ethernet_structured_config or <node_type_key>.nodes[].uplink_switch_ethernet_structured_config or <node_type_key>.nodes[].uplink_switch_port_channel_structured_config |
overlay_loopback_description |
router_id_loopback_description |
snmp_settings.enable_inband_mgmt_vrf |
snmp_settings.vrfs[name="use_inband_mgmt_vrf"].enabled |
snmp_settings.enable_mgmt_interface_vrf |
snmp_settings.vrfs[name="use_mgmt_interface_vrf"].enabled |
snmp_settings.hosts[].use_inband_mgmt_vrf |
snmp_settings.hosts[vrf=use_inband_mgmt_vrf] |
snmp_settings.hosts[].use_mgmt_interface_vrf |
snmp_settings.hosts[vrf=use_mgmt_interface_vrf] |
snmp_settings.ipv4_acls |
snmp_settings.vrfs[].ipv4_acl |
snmp_settings.ipv6_acls |
snmp_settings.vrfs[].ipv6_acl |
source_interfaces.domain_lookup |
dns_settings |
source_interfaces.radius |
aaa_settings.radius.vrfs[].source_interface or aaa_settings.radius.servers[].vrf: use_mgmt_interface_vrf or aaa_settings.radius.servers[].vrf: use_inband_mgmt_vrf |
source_interfaces.snmp |
snmp_settings.vrfs[].source_interface or snmp_settings.hosts[].vrf: use_mgmt_interface_vrf or snmp_settings.hosts[].vrf: use_inband_mgmt_vrf or avd_6_behaviors.snmp_settings_vrfs |
source_interfaces.tacacs |
aaa_settings.tacacs.vrfs[].source_interface or aaa_settings.tacacs.servers[].vrf: use_mgmt_interface_vrf or aaa_settings.tacacs.servers[].vrf: use_inband_mgmt_vrf |
terminattr_disable_aaa |
cv_settings.terminattr.disable_aaa |
terminattr_ingestexclude |
cv_settings.terminattr.ingestexclude |
terminattr_ingestgrpcurl_port |
cv_settings |
terminattr_smashexcludes |
cv_settings.terminattr.smashexcludes |
underlay_mutlticast |
underlay_mutlticast_pim_sm or <node_type_key>.defaults.underlay_multicast.pim_sm.enabled or <node_type_key>.node_groups[].underlay_multicast.pim_sm.enabled or <node_type_key>.node_groups[].nodes[].underlay_multicast.pim_sm.enabled or <node_type_key>.nodes[].underlay_multicast.pim_sm.enabled |
underlay_ospf_authentication.message_digest_keys[].key |
underlay_ospf_authentication.message_digest_keys[].cleartext_key |
Change in default value of default_overlay_routing_protocol for wan_router and wan_rr node type¶
In AVD 5.x, the default value of default_overlay_routing_protocol was ibgp.
Starting with AVD 6.0.0, the default value of default_overlay_routing_protocol has been changed to none.
To retain the previous behavior, the following change is required:
node_type_keys:
- key: "wan_router"
type: "wan_router"
default_evpn_role: "client"
default_wan_role: "client"
default_underlay_routing_protocol: "none"
+ default_overlay_routing_protocol: "ibgp"
default_flow_tracker_type: "hardware"
vtep: true
network_services:
l3: true
- key: "wan_rr"
type: "wan_rr"
default_evpn_role: "server"
default_wan_role: "server"
default_underlay_routing_protocol: "none"
+ default_overlay_routing_protocol: "ibgp"
default_flow_tracker_type: "hardware"
vtep: true
network_services:
l3: true
Change in default value of default_evpn_role for wan_router and wan_rr node type¶
In AVD 5.x, the default value of default_evpn_role was client for the wan_router node type and server for the wan_rr node type.
Starting with AVD 6.0.0, the default value has been changed to none for both wan_router and wan_rr.
To retain the previous behavior, the following change is required:
node_type_keys:
- key: "wan_router"
type: "wan_router"
+ default_evpn_role: "client"
default_wan_role: "client"
default_underlay_routing_protocol: "none"
default_overlay_routing_protocol: "ibgp"
default_flow_tracker_type: "hardware"
vtep: true
network_services:
l3: true
- key: "wan_rr"
type: "wan_rr"
+ default_evpn_role: "server"
default_wan_role: "server"
default_underlay_routing_protocol: "none"
default_overlay_routing_protocol: "ibgp"
default_flow_tracker_type: "hardware"
vtep: true
network_services:
l3: true
OSPF Graceful Restart is now enable by default in the underlay¶
In AVD 5.x, the default value of underlay_ospf_graceful_restart was false.
Starting with AVD 6.0.0, the default value of underlay_ospf_graceful_restart has been changed to true.
To retain the previous behavior, the following change is required:
Programming all forwarding paths of ECMP routes in the kernel is now enabled via the CLI for WAN routers¶
In AVD 5.x, for historical reason, the programming was enabled by default using an environment variable for the Agent. Effectively, it meant that the default value of wan_use_agent_env_var_for_kernel_software_forwarding_ecmp was true.
Starting with AVD 6.0.0, the default value of wan_use_agent_env_var_for_kernel_software_forwarding_ecmp has been changed to false. The functionality is now enabled by default via the proper CLI.
To retain the previous behavior, for instance because your device does not support the CLI introduced in EOS 4.33.2F, the following change is required:
Change of default behavior for PIM-SM multicast for core_interfaces.p2p_links and l3_edge.p2p_links¶
In AVD 5.X.X, enabling PIM-SM on a core_interface or l3_edge link required all of the following settings:
underlay_multicast: trueat the global levelunderlay_multicast: trueandinclude_in_underlay_protocol: trueat the link or profile level
As of AVD 6.0.0, the global underlay_mutlicast is replaced with node setting underlay_multicast.pim_sm.enabled or global underlay_mutlicast_pim_sm.
Additionally, the underlay_multicast key has been replaced by multicast_pim_sm for both core_interfaces.p2p_links[] and l3_edge.p2p_links[].
The breaking change in default behavior is for l3_edge and core_interfaces P2P links. PIM-SM is now automatically configured on links when include_in_underlay_protocol: true, provided that PIM-SM is already enabled globally (either through node settings or the global key).
To retain the previous behavior, the following change is required:
- underlay_multicast: true
# # The next line enables globally
+ underlay_mutlicast_pim_sm: true
l3leafs:
[...]
nodes:
- name: MULTICAST_LEAF
+ # Alternatively, PIM-SM can be enabled at the node setting level
+ underlay_multicast:
+ pim_sm:
+ enabled: true
# The same applies for l3_edge
core_interfaces:
p2p_links:
- nodes: [MULTICAST_LEAF, MULTICAST_PEER]
[...]
include_in_underlay_protocol: true
+ # previously `underlay_multicast` had a default of `false`
+ multicast_pim_sm: false
Tip
To avoid editing every single p2p_links, it is possible to leverage p2p_links_profiles.
SNMP snmp-server IPv4 and IPv6 ACLs are now only configured when the VRF is enabled under snmp_settings.vrfs¶
In AVD 5.x, SNMP snmp-server IPv4 and IPv6 ACLs were rendered even when the VRF was not enabled under snmp_settings.vrfs.
Starting AVD 6.0.0, it is required to set enable: true under the VRF in order to render IPV4 and IPV6 ACLs or use custom_structured_config.
Default value of underlay_ospf_maximum_paths is set to 128¶
In AVD 5.x, the parameter underlay_ospf_maximum_paths(maximum number of OSPF next-hops in an ECMP route) had no default value.
Starting AVD 6.0.0, default value of underlay_ospf_maximum_paths is set to 128.
Since 128 is already the EOS system default, it will neither be rendered in the structured configuration nor the CLI configuration.
Migrating from CloudVision keys to cv_settings¶
In the previous versions of AVD, you may have defined your CloudVision settings as follows.
These keys are now removed and replaced with cv_settings, to build a similar output, you should update your variables with the following structure.
daemon TerminAttr
exec /usr/bin/TerminAttr -cvaddr=192.168.200.12:9910,192.168.200.13:9910 -cvauth=token,/tmp/token -cvvrf=default -disableaaa -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -taillogs -cvsourceintf=Management0 -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent
no shutdown
Note
The example above leverages the built-in defaults, if you would like to override any settings, please refer to the “New key” listed in the table.
Custom keys starting without _ in structured config are no longer supported¶
In AVD 5.x, custom keys starting with or without _ were accepted in structured config.
Starting AVD 6.0.0, only custom keys that begin with _ are accepted in structured config.
l3leaf:
nodes:
- name: host1
id: 101
bgp_as: 101
structured_config:
- custom_key: [ custom_value ]
+ _custom_key: [ custom_value ]
vrfs[].ospf.process_id and underlay_ospf_process_id must have different values for all VRFs other than default¶
In AVD 5.x, it was possible to configure the same value for vrfs[].ospf.process_id and underlay_ospf_process_id for any VRF which was leading to potentially overwritten configuration.
Starting AVD 6.0.0, setting the same value for vrfs[].ospf.process_id and underlay_ospf_process_id is not allowed for any VRF other than default vrf.
An error is raised if any VRF have the same ospf.process_id as underlay_ospf_process_id.
Removal of design.type¶
In AVD 5.x, the variable design.type was used to select between different variants of default values for node_type_keys.
As of AVD 6.x, the design.type variable has been removed. The default values of node_type_keys combine all the default node type from all designs.
eAPI is not enabled by default anymore in eos_designs¶
In previous versions, management_eapi.enabled was true by default.
In AVD 6.0, this is not the case anymore and eAPI needs to be explicitly enabled as follows:
A management IP or IPv6 is now required to enable eAPI when default_mgmt_method: oob¶
Before AVD 6.x, it was possible to enable eAPI without setting mgmt_ip or ipv6_mgmt_ip when the default management method was set to out-of-band (which is the default) default_mgmt_method: oob and management_eapi.vrfs was not set.
Starting AVD 6.0, enabling eAPI when the default management method is set to oob and management_eapi.vrfs is not set will raise an error if neither mgmt_ip nor ipv6_mgmt_ip are defined.
Below changes should be noted to migrate to AVD 6.0 without errors.
type: l2leaf
management_eapi:
+ enabled: true # This must be set for management_eapi to take effect.
enable_https: true
l2leaf:
nodes:
- name: management-eapi-host
id: 1
+ mgmt_ip: 10.10.10.1/8
New eos_designs schema restrictions¶
Starting AVD 6.0.0, the following data model keys will have defined restrictions in eos_designs.
| Keys | New Restrictions |
|---|---|
aaa_settings.accounting.commands.console[].type |
required |
aaa_settings.accounting.commands.default[].type |
required |
aaa_settings.accounting.dot1x.default.type |
required |
aaa_settings.accounting.exec.default.type |
required |
aaa_settings.accounting.system.default.type |
required |
default_interfaces[].mlag_interfaces_speed |
Added valid_values |
default_interfaces[].uplink_interface_speed |
Added valid_values |
<custom_connected_endpoints_keys.key>[].adapters[].speed |
Added valid_values |
network_ports.[].switches |
min_length: 1 |
<network_services_keys.name>[].vrfs[].l3_interfaces[].ospf.message_digest_keys[].id |
Primary key |
<network_services_keys.name>[].vrfs[].l3_port_channels[].member_interfaces[].speed |
Added valid_values |
<network_services_keys.name>[].vrfs[].l3_port_channels[].ospf.message_digest_keys[].id |
Primary key |
<network_services_keys.name>[].vrfs[].svis[].ospf.message_digest_keys[].id |
Primary key |
<network_services_keys.name>[].vrfs[].svis[].nodes[].ospf.message_digest_keys[].id |
Primary key |
<node_type_keys.key>.defaults.uplink_interface_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].nodes.[].uplink_interface_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].uplink_interface_speed |
Added valid_values |
<node_type_keys.key>.nodes.[].uplink_interface_speed |
Added valid_values |
<node_type_keys.key>.defaults.uplink_switch_interface_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].nodes.[].uplink_switch_interface_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].uplink_switch_interface_speed |
Added valid_values |
<node_type_keys.key>.nodes.[].uplink_switch_interface_speed |
Added valid_values |
<node_type_keys.key>.defaults.mlag_interfaces_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].nodes.[].mlag_interfaces_speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].mlag_interfaces_speed |
Added valid_values |
<node_type_keys.key>.nodes.[].mlag_interfaces_speed |
Added valid_values |
<node_type_keys.key>.defaults.l3_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].nodes.[].l3_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].l3_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.nodes.[].l3_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.defaults.l3_port_channels.[].member_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.node_groups.[].l3_port_channels.[].member_interfaces.[].speed |
Added valid_values |
<node_type_keys.key>.nodes.[].l3_port_channels.[].member_interfaces.[].speed |
Added valid_values |
p2p_links[].description |
min_length: 2, max_length: 2 |
p2p_links[].interfaces |
min_length: 2, max_length: 2 |
p2p_links[].ip |
min_length: 2, max_length: 2 |
p2p_links[].nodes |
min_length: 2, max_length: 2 |
p2p_links[].speed |
Added valid_values |
svi_profiles[].ospf.message_digest_keys[].id |
Primary key |
svi_profiles[].nodes[].ospf.message_digest_keys[].id |
Primary key |
Removal of default Jinja2 templates for interface_descriptions and ip_addressing in eos_designs¶
Starting AVD 6.0.0, the default templates for interface_descriptions and ip_addressing are removed from the eos_designs role. Custom templates may still be provided, but the role no longer includes built-in templates.
The removed default templates for ip_addressing are:
- avd-v2-spine-p2p-uplinks-ip.j2
- avd-v2-spine-p2p-uplinks-peer-ip.j2
- mlg-ibgp-peering-ip-primary.j2
- mlg-ibgp-peering-ip-secondary.j2
- mlag-ip-primary.j2
- mlag-ip-secondary.j2
- mlag-l3-ip-primary.j2
- mlag-l3-ip-secondary.j2
- p2p-uplinks-ip.j2
- p2p-uplinks-peer-ip.j2
- router-id-ipv6.j2
- router-id.j2
- vtep-ip-mlag.j2
- vtep-ip.j2
The removed default templates for interface_descriptions are:
- connected_endpoints/ethernet-interfaces.j2
- connected_endpoints/port-channel-interfaces.j2
- loopback_interfaces/overlay-loopback.j2
- loopback_interfaces/vtep-loopback.j2
- mlag/ethernet-interfaces.j2
- mlag/port-channel-interfaces.j2
- underlay/ethernet-interfaces.j2
- underlay/port-channel-interfaces.j2
For migration cases where you must retain legacy logic, copy the required templates from the AVD 5.7 roles/eos_designs/templates into a custom template location and reference them explicitly.
As an example, copy the templates to a directory custom_templates (make sure it is available in the search paths when the Ansible playbook is executing as documented here) and update your input variables as follows:
node_type_keys:
- key: spine
type: spine
ip_addressing:
+ p2p_uplinks_ip: 'custom_templates/ip_addressing/avd-v2-spine-p2p-uplinks-ip.j2'
interface_descriptions:
+ underlay_ethernet_interfaces: 'custom_templates/interface_descriptions/underlay/ethernet-interfaces.j2'
Removing support for templating of internal switch.* variables in Jinja templates¶
Starting AVD 6.0.0, Jinja templates will no longer have access to internal AVD variables previously exposed as switch.*.
This also applies to inline Jinja templates in the input variables (like host vars, group vars, task vars and play vars).
Examples of variables that can no longer be used:
{{ switch.id }}{{ switch.mgmt_ip }}{{ switch.mgmt_interface }}
For custom IP Addressing or Interface Description templates, refer to the documentation for the available variables.
Also refer to the documentation to see all the new models that may resolve the need for inline jinja templating.
Several of the new AVD models provide abstractions like default_mgmt_method_ip or default_mgmt_method_vrf,
which are intended to remove the need for inline Jinja templating in the input variables.
If there is no alternative available for your current use case, please open a GitHub issue so we can work with you to identify alternatives. Users with a support agreement can contact Arista support to get assistance.
p2p_links now accepts a minimum and maximum of two entries¶
In AVD 5.0.0, p2p_links list keys nodes, ip, interfaces and descriptions did not have any limitation in size. This was sometimes working but could lead to undefined behavior as all the code was written to work for exactly 2 nodes, in particular when figuring out the peer device.
Starting AVD 6.0.0, the length to all these lists have been restricted to exactly 2 items (min_length: 2 and max_length: 2).
Changes to role arista.avd.eos_cli_config_gen¶
Removal of deprecated eos_cli_config_gen data models¶
The following data model keys have been removed from eos_cli_config_gen in AVD 6.0.0.
| Removed key | New key |
|---|---|
vxlan_interface.Vxlan1 |
vxlan_interface.vxlan1 |
aaa_accounting.exec.console.group |
aaa_accounting.exec.console.methods[].group |
aaa_accounting.exec.console.logging |
aaa_accounting.exec.console.methods[].method |
aaa_accounting.exec.default.group |
aaa_accounting.exec.default.methods[].group |
aaa_accounting.exec.default.logging |
aaa_accounting.exec.default.methods[].method |
aaa_accounting.system.default.group |
aaa_accounting.system.default.methods[].group |
aaa_accounting.dot1x.default.group |
aaa_accounting.dot1x.default.methods[].group |
aaa_accounting.commands[].console[].group |
aaa_accounting.commands[].console[].methods[].group |
aaa_accounting.commands[].console[].logging |
aaa_accounting.commands[].console[].methods[].method |
aaa_accounting.commands[].default[].group |
aaa_accounting.commands[].default[].methods[].group |
aaa_accounting.commands[].default[].logging |
aaa_accounting.commands[].default[].methods[].method |
community_lists |
ip_community_lists |
ethernet_interfaces[].vlans |
ethernet_interfaces[].switchport.access_vlan or switchport.trunk.allowed_vlan |
ethernet_interfaces[].native_vlan |
ethernet_interfaces[].switchport.trunk.native_vlan |
ethernet_interfaces[].native_vlan_tag |
ethernet_interfaces[].switchport.trunk.native_vlan_tag |
ethernet_interfaces[].mode |
ethernet_interfaces[].switchport.mode |
ethernet_interfaces[].phone |
ethernet_interfaces[].switchport.phone |
ethernet_interfaces[].trunk_groups |
ethernet_interfaces[].switchport.trunk.groups |
ethernet_interfaces[].type |
- |
ethernet_interfaces[].encapsulation_dot1q_vlan |
ethernet_interfaces[].encapsulation_dot1q.vlan |
ethernet_interfaces[].encapsulation_vlan.client.dot1q |
ethernet_interfaces[].encapsulation_vlan.client.encapsulation |
ethernet_interfaces[].encapsulation_vlan.client.unmatched |
ethernet_interfaces[].encapsulation_vlan.client.encapsulation |
ethernet_interfaces[].encapsulation_vlan.network.dot1q |
ethernet_interfaces[].encapsulation_vlan.network.encapsulation |
ethernet_interfaces[].encapsulation_vlan.network.client |
ethernet_interfaces[].encapsulation_vlan.network.encapsulation |
ethernet_interfaces[].tcp_mss_ceiling.ipv4_segment_size |
ethernet_interfaces[].tcp_mss_ceiling.ipv4 |
ethernet_interfaces[].tcp_mss_ceiling.ipv6_segment_size |
ethernet_interfaces[].tcp_mss_ceiling.ipv6 |
ethernet_interfaces[].isis_authentication_mode |
ethernet_interfaces[].isis_authentication.both.mode or ethernet_interfaces[].isis_authentication.level_1.mode or ethernet_interfaces[].isis_authentication.level_2.mode |
ethernet_interfaces[].isis_authentication_key |
ethernet_interfaces[].isis_authentication.both.key or ethernet_interfaces[].isis_authentication.level_1.key or ethernet_interfaces[].isis_authentication.level_2.key |
ethernet_interfaces[].trunk_private_vlan_secondary |
ethernet_interfaces[].switchport.trunk.private_vlan_secondary |
ethernet_interfaces[].pvlan_mapping |
ethernet_interfaces[].switchport.pvlan_mapping |
ethernet_interfaces[].vlan_translations |
ethernet_interfaces[].switchport.vlan_translations |
ethernet_interfaces[].vrrp_ids[].ipv6.address |
ethernet_interfaces[].vrrp_ids[].ipv6.addresses |
ethernet_interfaces[].traffic_engineering.srlg |
ethernet_interfaces[].traffic_engineering.srlgs |
flow_tracking.trackers[].exporters[].collector |
flow_tracking.trackers[].exporters[].collectors |
generate_default_config |
- |
generate_device_documentation |
eos_cli_config_gen_documentation.enable |
ip_name_server_groups[].ip_domain_list |
ip_name_server_groups[].ip_domain_lists |
ipv6_static_routes[].destination_address_prefix |
ipv6_static_routes[].prefix |
ipv6_static_routes[].gateway |
ipv6_static_routes[].next_hop |
is_deployed |
metadata.is_deployed |
local_users |
aaa_settings.local_users |
management_api_models.providers |
management_api_models.provider |
management_ssh.access_groups |
management_ssh.ip_access_group_in or management_ssh.vrfs.ip_access_group_in |
management_ssh.ipv6_access_groups |
management_ssh.ipv6_access_group_in or management_ssh.vrfs.ipv6_access_group_in |
ntp.servers[].vrf |
ntp.vrf |
port_channel_interfaces[].encapsulation_dot1q_vlan |
port_channel_interfaces[].encapsulation_dot1q.vlan |
port_channel_interfaces[].encapsulation_vlan.client.dot1q |
port_channel_interfaces[].encapsulation_vlan.client.encapsulation |
port_channel_interfaces[].encapsulation_vlan.client.unmatched |
port_channel_interfaces[].encapsulation_vlan.client.encapsulation |
port_channel_interfaces[].encapsulation_vlan.network.client |
port_channel_interfaces[].encapsulation_vlan.network.encapsulation |
port_channel_interfaces[].encapsulation_vlan.network.dot1q |
port_channel_interfaces[].encapsulation_vlan.network.encapsulation |
port_channel_interfaces[].isis_authentication_key |
port_channel_interfaces[].isis_authentication.both.key or port_channel_interfaces[].isis_authentication.level_1.key or port_channel_interfaces[].isis_authentication.level_2.key |
port_channel_interfaces[].isis_authentication_mode |
port_channel_interfaces[].isis_authentication.both.mode or port_channel_interfaces[].isis_authentication.level_1.mode or port_channel_interfaces[].isis_authentication.level_2.mode |
port_channel_interfaces[].mode |
port_channel_interfaces[].switchport.mode |
port_channel_interfaces[].native_vlan |
port_channel_interfaces[].switchport.trunk.native_vlan |
port_channel_interfaces[].native_vlan_tag |
port_channel_interfaces[].switchport.trunk.native_vlan_tag |
port_channel_interfaces[].phone |
port_channel_interfaces[].switchport.phone |
port_channel_interfaces[].pvlan_mapping |
port_channel_interfaces[].switchport.pvlan_mapping |
port_channel_interfaces[].traffic_engineering.srlg |
port_channel_interfaces[].traffic_engineering.srlgs |
port_channel_interfaces[].trunk_groups |
port_channel_interfaces[].switchport.trunk.groups |
port_channel_interfaces[].trunk_private_vlan_secondary |
port_channel_interfaces[].switchport.trunk.private_vlan_secondary |
port_channel_interfaces[].type |
- |
port_channel_interfaces[].vlans |
port_channel_interfaces[].switchport.access_vlan or switchport.trunk.allowed_vlan |
port_channel_interfaces[].vlan_translations |
port_channel_interfaces[].switchport.vlan_translations |
router_bgp.address_family_evpn.bgp_additional_paths |
router_bgp.address_family_evpn.bgp.additional_paths |
router_bgp.address_family_ipv4.redistribute_routes |
router_bgp.address_family_ipv4.redistribute |
router_bgp.address_family_ipv4_multicast.redistribute_routes |
router_bgp.address_family_ipv4_multicast.redistribute |
router_bgp.address_family_ipv6.redistribute_routes |
router_bgp.address_family_ipv6.redistribute |
router_bgp.address_family_ipv6_multicast.redistribute_routes |
router_bgp.address_family_ipv6_multicast.redistribute |
router_bgp.redistribute_routes |
router_bgp.redistribute |
router_bgp.vrfs[].address_family_ipv4.redistribute_routes |
router_bgp.vrfs[].address_family_ipv4.redistribute |
router_bgp.vrfs[].address_family_ipv6.redistribute_routes |
router_bgp.vrfs[].address_family_ipv6.redistribute |
router_bgp.vrfs[].address_family_ipv4_multicast.redistribute_routes |
router_bgp.vrfs[].address_family_ipv4_multicast.redistribute |
router_bgp.vrfs[].address_family_ipv6_multicast.redistribute_routes |
router_bgp.vrfs[].address_family_ipv6_multicast.redistribute |
router_path_selection.tcp_mss_ceiling.ipv4_segment_size |
router_path_selection.tcp_mss_ceiling.ipv4 |
static_routes[].destination_address_prefix |
static_routes[].prefix |
static_routes[].gateway |
static_routes[].next_hop |
vlan_interfaces[].vrrp_ids[].ipv6.address |
vlan_interfaces[].vrrp_ids[].ipv6.addresses |
ip_name_servers[].vrf is required to generate name servers configuration¶
In AVD 5.x, the key ip_name_servers[].vrf was not required. If this key was not set, the name server configuration was generated without an explicitly specified VRF, which the EOS CLI treats as the default VRF.
This key must be set to default for default VRF in AVD 6.0.0.
Traffic policy named counters must now be explicitly defined under traffic_policies.policies[].counters¶
In AVD 5.0.0, named counters were generated automatically based on the traffic_policies.policies[].matches[].actions[].count key.
Starting AVD 6.0.0, this automatic generation has been removed. All named counters must be defined under the new traffic_policies.policies[].counters key.
traffic_policies:
policies:
- name: BLUE-C1-POLICY
+ counters:
+ - DEMO-TRAFFIC
matches:
- name: BLUE-C2-POLICY-01
actions:
count: DEMO-TRAFFIC
errdisable.recovery.causes is now a list of dictionaries¶
In AVD 5.x, errdisable.recovery.causes was modeled as a list of strings.
As of AVD 6.0.0, this data model has been updated to a list of dictionaries to allow configuring a recovery interval for each cause.
The diff below shows an example on how to update your inputs to match the new data model:
ntp.servers[].vrf moved to ntp.vrf since all NTP servers must use the same VRF¶
In AVD 5.x, the VRF for NTP servers was defined individually under ntp.servers[].vrf.
Starting with AVD 6.0.0, because in EOS all NTP servers must be in the same VRF, ntp.servers[].vrf has been replaced by ntp.vrf to avoid misconfigurations.
New eos_cli_config_gen schema restrictions¶
Starting AVD 6.0.0, the following data model keys will have defined restrictions in eos_cli_config_gen.
| Keys | Restrictions |
|---|---|
aaa_accounting.commands.console[].type |
required |
aaa_accounting.commands.default[].type |
required |
aaa_accounting.dot1x.default.type |
required |
aaa_accounting.exec.default.type |
required |
aaa_accounting.system.default.type |
required |
ethernet_interfaces[].speed |
Added valid_values |
management_interfaces[].speed |
Added valid_values |
Changes to role arista.avd.anta_runner¶
// TODO: potentially remove if empty