-
Couldn't load subscription status.
- Fork 257
Feat(eos_designs): ipv6 support for core_interfaces #5988
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: devel
Are you sure you want to change the base?
Conversation
|
Review docs on Read the Docs To test this pull request: # Create virtual environment for this testing below the current directory
python -m venv test-avd-pr-5988
# Activate the virtual environment
source test-avd-pr-5988/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/emilarista/ansible-avd.git@core_if_ipv6#subdirectory=python-avd" --force
# Point Ansible collections path to the Python virtual environment
export ANSIBLE_COLLECTIONS_PATH=$VIRTUAL_ENV/ansible_collections
# Install Ansible collection
ansible-galaxy collection install git+https://github.com/emilarista/ansible-avd.git#/ansible_collections/arista/avd/,core_if_ipv6 --force
# Optional: Install AVD examples
cd test-avd-pr-5988
ansible-playbook arista.avd.install_examples |
| if ( | ||
| (self.inputs.underlay_rfc5549 and p2p_link.routing_protocol != "ebgp") | ||
| or p2p_link.ipv6_enable is True | ||
| or self.shared_utils.underlay_ipv6 is True |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This extra condition will be breaking, so we will need to write a porting guide entry, where in the diff we show they can set ipv6_enable: false to prevent the change.
Also since we now use strong typing we can rely on bool:
| or self.shared_utils.underlay_ipv6 is True | |
| or self.shared_utils.underlay_ipv6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have added porting guide entry. Let me know if it looks ok.
python-avd/pyavd/_eos_designs/structured_config/core_interfaces_and_l3_edge/utils.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/schema/schema_fragments/underlay_ipv6.schema.yml
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/core_interfaces_and_l3_edge/utils.py
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/core_interfaces_and_l3_edge/utils.py
Outdated
Show resolved
Hide resolved
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
1 similar comment
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
e22a543 to
9928929
Compare
|
Conflicts have been resolved. A maintainer will review the pull request shortly. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…s_and_l3_edge/utils.py Co-authored-by: Claus Holbech <holbech@arista.com>
…s_and_l3_edge/utils.py Co-authored-by: Claus Holbech <holbech@arista.com>
…s_and_l3_edge/utils.py Co-authored-by: Claus Holbech <holbech@arista.com>
for more information, see https://pre-commit.ci
815893d to
23ae14b
Compare
|
Conflicts have been resolved. A maintainer will review the pull request shortly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey Emil, I tested your PR in my existing repo but I am getting an error.
Model:
l3_edge:
p2p_links_ip_pools:
- name: DCI_POOL
ipv6_pool: 2001:db8:3:255::/64
p2p_links:
- id: 1
ip_pool: DCI_POOL
nodes: [ DC1-BL1, DC2-BL1 ]
interfaces: [Ethernet3, Ethernet3]
as: [ 65120, 65220 ]
include_in_underlay_protocol: true
- id: 2
ip_pool: DCI_POOL
nodes: [ DC1-BL1, DC2-BL2 ]
interfaces: [Ethernet4, Ethernet3]
as: [ 65120, 65220 ]
include_in_underlay_protocol: true
- id: 3
ip_pool: DCI_POOL
nodes: [ DC1-BL2, DC2-BL1 ]
interfaces: [Ethernet3, Ethernet4]
as: [ 65120, 65220 ]
include_in_underlay_protocol: true
- id: 4
ip_pool: DCI_POOL
nodes: [ DC1-BL2, DC2-BL2 ]
interfaces: [Ethernet4, Ethernet4]
as: [ 65120, 65220 ]
include_in_underlay_protocol: true
Error:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: pyavd._errors.AristaAvdMissingVariableError: 'l3_edge.p2p_links.[].ip, .subnet or .ip_pool' is required but was not found.
fatal: [DC2-BL2 -> localhost]: FAILED! => {"changed": false, "msg": "'l3_edge.p2p_links.[].ip, .subnet or .ip_pool' is required but was not found."}Am I missing something?
|
|
Also, can we separate this PR for clarity? We could have one PR for the new feature (IPv6 support on core_interfaces/l3_edge models) and other PR(s) for change of behaviors/bug fixes. Thanks. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |



Change Summary
Added support for ipv6_pool, ipv6_prefix_length in core_interfaces -> p2p_links_ip_pools.
Added ipv6_prefix, ipv6 (addresses) under core_interfaces p2p_links and profiles data model.
This PR also changes behavior of underlay_ipv6 knob slightly. Before this PR, nodes with underlay protocol == ospf would get ipv6 unicast-routing turned on and ipv6 enable on core interfaces despite ospf protocol not being compatible with ipv6. Additional conditions were added for shared_utils.underlay_ipv6 to only return true if underlay protocol is isis, or if underlay_rfc5549 or underlay_ipv6_numbered is active.
Related Issue(s)
Fixes #5961
Component(s) name
arista.avd.eos_designsProposed changes
How to test
Added test with molecule, awaiting feedback from customer/SE.
Checklist
Repository Checklist