Skip to content
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

Refactor(eos_designs): Remove dependency on overlay_routing_protocol and evpn_role for WAN routers #4865

Draft
wants to merge 11 commits into
base: devel
Choose a base branch
from

Conversation

gmuloc
Copy link
Contributor

@gmuloc gmuloc commented Jan 9, 2025

Change Summary

This is a stepping stone PR to introduce EVPN GW between DPS and VXLAN in PR #4831

Since the intro of the WAN routers, the overlay_routing_protocol HAD to be ibgp and the evpn_role HAD to be the same as the wan_role. Making both keys being essentially ignored.
This PR decorelates and "relax" the requirements.

It introduces a new boolean that continue to ignore the keys and it is enabled by default in order to prevent extra configuration to be generated.

Component(s) name

arista.avd.eos_designs

Proposed changes

  • [Adjust multiple places where the code was implicitly relying on iBGP / evpn_role == wan_role for decisions around iBGP and so on. Relying only on wan_router + wan_role (eventually could add later relying on wan_mode but today both are actually using iBGP)
  • Adjust schema to remove the limitations
  • Remove negative unit tests

How to test

  • molecule test should render the same.
  • need to add new molecule test to enable EVPN on LAN and be happy

Checklist

User Checklit

  • need to review WAN how-to to clean it up
  • need to review cv-pathfinder example to clean it up

Repository Checklist

  • My code has been rebased from devel before I start
  • I have read the CONTRIBUTING document.
  • My change requires a change to the documentation and documentation have been updated accordingly.
  • I have updated molecule CI testing accordingly. (check the box if not applicable)

@github-actions github-actions bot added state: CI Updated CI scenario have been updated in the PR state: Documentation role Updated role: eos_designs issue related to eos_designs role labels Jan 9, 2025
Copy link

github-actions bot commented Jan 9, 2025

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-4865
# Activate the virtual environment
source test-avd-pr-4865/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/gmuloc/avd.git@relax-wan-default-requirements#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/gmuloc/avd.git#/ansible_collections/arista/avd/,relax-wan-default-requirements --force
# Optional: Install AVD examples
cd test-avd-pr-4865
ansible-playbook arista.avd.install_examples

elif self.shared_utils.overlay_routing_protocol == "ibgp" and self.shared_utils.overlay_vtep and self.shared_utils.evpn_role != "server":
elif (
(self.shared_utils.overlay_routing_protocol == "ibgp" and self.shared_utils.overlay_vtep) or self.shared_utils.is_wan_router
) and self.shared_utils.evpn_role != "server":
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

( self.shared_utils.overlay_routing_protocol == "ibgp" and self.shared_utils.overlay_vtep and self.shared_utils.evpn_role != "server" ) or ( self.shared_utils.is_wan_client and self.inputs.wan_use_evpn_node_settings_for_lan)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm I think ths will not work to maintain backward compatibility - I need to look deeper

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed let me know

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
role: eos_designs issue related to eos_designs role state: CI Updated CI scenario have been updated in the PR state: Documentation role Updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants