Skip to content

Feat(eos_designs): Add support for uplink type l2-ethernet to support L2 ring topology#6918

Open
ClausHolbechArista wants to merge 8 commits intoaristanetworks:develfrom
ClausHolbechArista:feat/eos_designs/support-ring-topologies-and-l2-ethernet
Open

Feat(eos_designs): Add support for uplink type l2-ethernet to support L2 ring topology#6918
ClausHolbechArista wants to merge 8 commits intoaristanetworks:develfrom
ClausHolbechArista:feat/eos_designs/support-ring-topologies-and-l2-ethernet

Conversation

@ClausHolbechArista
Copy link
Copy Markdown
Contributor

Change Summary

Add support for uplink type l2-ethernet to support L2 ring topology

Related Issue(s)

Fixes #6910

Component(s) name

arista.avd.eos_designs

Proposed changes

  • Add uplink_type: l2-ethernet under node_type_keys and under node config.
  • Support L2 ring topologies:
    • For proper ensurance that all VLANs are permitted throughout the ring, uplink_switches etc must be configured both ways on all l2 devices in the ring.
    • Works with and without filter.only_vlans_in_use.
    • Use of inband mgmt must be consistent around the ring unless the inband_mgmt_vlan is also defined under network services and permitted by filtering.

How to test

  • Added molecule test.

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)

@ClausHolbechArista ClausHolbechArista requested review from a team as code owners May 4, 2026 19:26
@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 May 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

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-6918
# Activate the virtual environment
source test-avd-pr-6918/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/ClausHolbechArista/avd.git@feat/eos_designs/support-ring-topologies-and-l2-ethernet#subdirectory=python-avd" --force
# Point Ansible collections path to the Python virtual environment
export ANSIBLE_COLLECTIONS_PATH=$VIRTUAL_ENV/ansible_collections
# Install Ansible collection
python -m ansible.cli.galaxy collection install git+https://github.com/ClausHolbechArista/avd.git#/ansible_collections/arista/avd/,feat/eos_designs/support-ring-topologies-and-l2-ethernet --force
cd test-avd-pr-6918
# Run your playbook using `python -m ansible.cli.playbook path/to/playbook.yml ...`

You can also test this PR using AVD playground:

  • Rebase your branch to makes sure it is up-to-date and has latest lab topologies for example inventories
  • Authenticate on labs.arista.com. Use your email! Not login.
  • Start the playground
  • In the lab selector UI pick "I want to use a specific AVD fork"
  • Enter following parameters:
GitHub org: ClausHolbechArista
Repository name: avd
Branch: feat/eos_designs/support-ring-topologies-and-l2-ethernet
  • Select an example inventory to test the PR
  • Once the AVD Playground setup will be finished, type make start and test anything once the lab is up

@ClausHolbechArista ClausHolbechArista marked this pull request as draft May 4, 2026 19:30
@ClausHolbechArista ClausHolbechArista marked this pull request as ready for review May 4, 2026 19:36
@codecov
Copy link
Copy Markdown

codecov Bot commented May 4, 2026

Codecov Report

❌ Patch coverage is 97.33333% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.54%. Comparing base (0ebd67e) to head (3681a6f).

Files with missing lines Patch % Lines
...-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py 95.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            devel    #6918   +/-   ##
=======================================
  Coverage   87.54%   87.54%           
=======================================
  Files         351      351           
  Lines       19416    19437   +21     
  Branches     3650     3655    +5     
=======================================
+ Hits        16997    17017   +20     
- Misses       1853     1854    +1     
  Partials      566      566           
Files with missing lines Coverage Δ
...vd/pyavd/_eos_designs/eos_designs_facts/uplinks.py 100.00% <100.00%> (ø)
...yavd/_eos_designs/shared_utils/filtered_tenants.py 92.49% <100.00%> (-0.25%) ⬇️
...avd/_eos_designs/shared_utils/inband_management.py 95.87% <100.00%> (ø)
...n-avd/pyavd/_eos_designs/shared_utils/node_type.py 100.00% <100.00%> (ø)
...esigns/structured_config/network_services/vlans.py 100.00% <100.00%> (ø)
...-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py 97.74% <95.00%> (-0.25%) ⬇️

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 5, 2026

Comment thread python-avd/pyavd/_eos_designs/eos_designs_facts/uplinks.py Outdated
Comment thread python-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py Outdated
Comment thread python-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py Outdated
Comment thread python-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py
Comment thread python-avd/pyavd/_eos_designs/eos_designs_facts/vlans.py Outdated
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.

Support for L2 ring topologie (no SWAG)

2 participants