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

Feat(eos_designs): Add support for l3_port_channel_interfaces for WAN #4752

Open
wants to merge 13 commits into
base: devel
Choose a base branch
from

Conversation

ashenoy-arista
Copy link

@ashenoy-arista ashenoy-arista commented Nov 21, 2024

Change Summary

Revised schema to support L3 Port-Channel interfaces and supporting changes to eos_designs
Primary use-case is to allow such interfaces as wan-facing interfaces.

Related Issue(s)

Fixes #4695

Component(s) name

arista.avd.eos_designs

Proposed changes

How to test

This change introduces revised schema within eos_designs with node key l3_port_channels
to represent L3 port-channel interfaces that may be used as wan-facing interfaces.
Includes logic to support the newly added schema and unit tests to validate handling of newly added schema attributes.
Internet exit policy is not yet supported for L3 Port-Channel interface.
Interface tags are being generated for L3 Port-Channel interfaces.

Checklist

User Checklist

  • N/A

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)

@ashenoy-arista ashenoy-arista requested review from a team as code owners November 21, 2024 17:10
Copy link

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

@ashenoy-arista ashenoy-arista marked this pull request as draft November 21, 2024 17:10
@github-actions github-actions bot added role: eos_cli_config_gen issue related to eos_cli_config_gen role type: code quality CI and development toolset state: CI Updated CI scenario have been updated in the PR labels Nov 21, 2024
@github-actions github-actions bot removed role: eos_cli_config_gen issue related to eos_cli_config_gen role type: code quality CI and development toolset state: CI Updated CI scenario have been updated in the PR labels Nov 21, 2024
@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 2 times, most recently from a8fa6b9 to 1d61e17 Compare November 27, 2024 20:49
@github-actions github-actions bot added the state: CI Updated CI scenario have been updated in the PR label Dec 3, 2024
@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 2 times, most recently from cfae876 to fccd4c8 Compare December 3, 2024 04:05
@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 2 times, most recently from b8175d8 to ffc3188 Compare December 5, 2024 06:50
@ClausHolbechArista ClausHolbechArista changed the title Feat(eos_designs): Add revised schema to support L3 Port-Channel interfaces Feat(eos_designs): Add suport for l3_port_channel_interfaces for WAN Dec 6, 2024
@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 3 times, most recently from c689203 to 41612ab Compare December 12, 2024 07:39
Copy link

Conflicts have been resolved. A maintainer will review the pull request shortly.

@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 4 times, most recently from fd72134 to 67fe5e5 Compare January 23, 2025 01:04
@gmuloc
Copy link
Contributor

gmuloc commented Jan 23, 2025

On the call:

  • remove internet_exit from schema to block it for now
  • WAN how-to page document - no IE policy on port-channel
  • Port-channel tags to be added in metadata

@ashenoy-arista ashenoy-arista force-pushed the samplePRBranch branch 2 times, most recently from 7be99ea to a38bdbe Compare January 24, 2025 00:29
@ClausHolbechArista ClausHolbechArista added this to the v5.2.0 milestone Jan 27, 2025
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot added the state: conflict PR with conflict label Jan 30, 2025
Copy link

Conflicts have been resolved. A maintainer will review the pull request shortly.

@github-actions github-actions bot removed the state: conflict PR with conflict label Jan 30, 2025
Copy link
Contributor

@gmuloc gmuloc left a comment

Choose a reason for hiding this comment

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

We also need to update the WAN how-to to indicate this feature

Comment on lines +190 to +195
for port_channel_intf in self.structured_config.port_channel_interfaces:
tags = []
if self.shared_utils.is_cv_pathfinder_router:
tags.extend(self._get_cv_pathfinder_interface_tags(port_channel_intf))
if tags:
interface_tags.append({"interface": port_channel_intf.name, "tags": tags})
Copy link
Contributor

Choose a reason for hiding this comment

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

feels like this coul be simplified because we are not parsing tags_to_generate for l3 port-channels. @ClausHolbechArista should we?

l3_interfaces:
- name: Ethernet4
peer_interface: Ethernet8
l3_port_channels:
Copy link
Contributor

Choose a reason for hiding this comment

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

we need to change the diagrams

Copy link
Contributor

Choose a reason for hiding this comment

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

@ClausHolbechArista lets see if it does not make sense to add another member interface in the picture for the example (we would need to adjust EVE-NG but we can survive)

ip address 192.168.142.1/32
!
interface Ethernet1
description peerDevice1_Ethernet11
Copy link
Contributor

Choose a reason for hiding this comment

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

open question:

for members for WAN L3 Port channels, would it make sense to repear wan_carrier on the member description

@ClausHolbechArista

python-avd/pyavd/_eos_designs/shared_utils/wan.py Outdated Show resolved Hide resolved
python-avd/pyavd/_eos_designs/shared_utils/wan.py Outdated Show resolved Hide resolved
python-avd/pyavd/_eos_designs/shared_utils/wan.py Outdated Show resolved Hide resolved
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.

Feat(eos_designs): Add support for Port-Channels for WAN interfaces
6 participants