-
Notifications
You must be signed in to change notification settings - Fork 219
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
Fix(eos_designs)!: VARPv6 config is not generated even when "ipv6_enable: true" is specified #4208
Fix(eos_designs)!: VARPv6 config is not generated even when "ipv6_enable: true" is specified #4208
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-4208
# Activate the virtual environment
source test-avd-pr-4208/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/bjmeuer/avd.git@varpv6_ipv6enable#subdirectory=python-avd" --force
# Install Ansible collection
ansible-galaxy collection install git+https://github.com/bjmeuer/avd.git#/ansible_collections/arista/avd/,varpv6_ipv6enable --force
# Optional: Install AVD examples
cd test-avd-pr-4208
ansible-playbook arista.avd.install_examples |
python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py
Show resolved
Hide resolved
ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/varpv6.yml
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/varpv6.yml
Show resolved
Hide resolved
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.
So I think we would need to adjust the schema description for the key under SVI:
# IPv6 VARP addresses.
# Requires an IPv6 address to be configured on the SVI.
# If ipv6_address_virtuals is also set, ipv6_virtual_router_addresses will take precedence
# _if_ there is an ipv6_address configured for the node.
ipv6_virtual_router_addresses:
The second line needs to be changed. Also the fourth line is not correct anymore. Can you please adjust the documentation with what you feel makes sense?
Point of attention
Right now I feel like this Fix is a breaking change to the current behavior for at least one case, the existing behavior is that:
- If
ipv6_enable
is true BUT no ipv6 address is set, thenipv6_address_virtuals
(Anycast IPv6 addresses) are configured, asipv6_virtual_router_address
is ignored if present. - With your change,
ipv6_virtual_router_address
is not ignored anymore in this situation (which is what your fix is about) and so we would not be configuring the Anycast IPv6 addresses anymore.
From a behavior point of view it can break existing deployment where people would have both ipv6_address_virtuals
and ipv6_virtual_router_address
set (probably a bad input choice as one is useless today), no IPv6 address defined, and ipv6_enable: true
. I know this is probably a corner case but as we are following semver this is something we need to consider.
@ClausHolbechArista for review when he is back.
ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/varpv6.yml
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/varpv6.yml
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/network_services/vlan_interfaces.py
Show resolved
Hide resolved
The following inputs would give a different outcome before/ after the PR: Change of behavior for
|
We will move this to 5.0 to avoid any concerns of breaking changes. We need to add some info in the release notes to tell about the potential breakage although it is a very small risk. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
1b6be9c
to
74299ea
Compare
Conflicts have been resolved. A maintainer will review the pull request shortly. |
Quality Gate passedIssues Measures |
Co-authored-by: laxmikantchintakindi <159624484+laxmikantchintakindi@users.noreply.github.com>
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.
Great test cases with good descriptions. Thank you for fixing these issues.
Quality Gate passedIssues Measures |
…ble: true" is specified (aristanetworks#4208)
Change Summary
VARPv6 is now configured not only when "ipv6_address" is given, it also is configured if "ipv6_enable:true" is given
Related Issue(s)
Fixes #4203
Component(s) name
arista.avd.eos_designs
Proposed changes
before for VARPv6 this was checked:
if vlan_interface_config["ipv6_address"] is not None:
after the change it is:
if vlan_interface_config["ipv6_address"] is not None or vlan_interface_config["ipv6_enable"]:
How to test
Checklist
User Checklist
Repository Checklist