-
Notifications
You must be signed in to change notification settings - Fork 233
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
base: devel
Are you sure you want to change the base?
Feat(eos_designs): Add support for l3_port_channel_interfaces for WAN #4752
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-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 |
2f1a500
to
d3086d9
Compare
d3086d9
to
7d8c276
Compare
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Show resolved
Hide resolved
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type.schema.yml
Outdated
Show resolved
Hide resolved
a8fa6b9
to
1d61e17
Compare
2e10ead
to
f35199a
Compare
cfae876
to
fccd4c8
Compare
b8175d8
to
ffc3188
Compare
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/base/__init__.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/network_services/utils_wan.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/static_routes.py
Outdated
Show resolved
Hide resolved
c689203
to
41612ab
Compare
Conflicts have been resolved. A maintainer will review the pull request shortly. |
fd72134
to
67fe5e5
Compare
On the call:
|
7be99ea
to
a38bdbe
Compare
python-avd/pyavd/_eos_designs/structured_config/underlay/utils.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/utils.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/utils.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/utils.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/network_services/utils_wan.py
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/port_channel_interfaces.py
Show resolved
Hide resolved
207490d
to
0f06391
Compare
0f06391
to
be87c96
Compare
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
…es/utils_wan.py Co-authored-by: Guillaume Mulocher <[email protected]>
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.
We also need to update the WAN how-to to indicate this feature
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}) |
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.
feels like this coul be simplified because we are not parsing tags_to_generate
for l3 port-channels. @ClausHolbechArista should we?
...tive_unit_tests/inventory/host_vars/l3-port-channel-sub-interface-with-member-interfaces.yml
Outdated
Show resolved
Hide resolved
..._designs_negative_unit_tests/inventory/host_vars/l3-port-channel-sub-interface-with-mode.yml
Outdated
Show resolved
Hide resolved
l3_interfaces: | ||
- name: Ethernet4 | ||
peer_interface: Ethernet8 | ||
l3_port_channels: |
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.
we need to change the diagrams
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.
@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 |
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.
open question:
for members for WAN L3 Port channels, would it make sense to repear wan_carrier on the member description
for more information, see https://pre-commit.ci
Quality Gate passedIssues Measures |
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 keyl3_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
Repository Checklist