-
Notifications
You must be signed in to change notification settings - Fork 184
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 per MACVRF EVPN domain scope #2347
Feat(eos_designs): Add per MACVRF EVPN domain scope #2347
Conversation
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 add
- Documentation (update the network-services.md file)
- Molecule test case
Maybe we also need to check if this data model is what we want. Maybe a single boolean "evpn_export_to_remote_domain" (or something better).
ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_bgp.py
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_bgp.py
Outdated
Show resolved
Hide resolved
65cde08
to
b3d6cf6
Compare
I like this idea. I've changed the data model to a boolean parameter called |
@carlbuchmann please review the documentation on this when you are back. |
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.
couple of quick comments
Question on the testing - it looks like the feature is only tested on VRF and not on VLANs - is it correct? Would it be possible to add a test for Vlan as well to prevent regression there in the future?
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
Are you referring to setting |
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
Yeah that's what I mean adding a SVI test for now I am not sure what is the expected config for a SVI if you have the new setting as follow:
Looking at
however the documentation states that it should override tenant AND vrf settings
Should it be something like: (though the
|
With the current changes...
It doesn't appear that anything in DC1 leverages VLAN-Based MACVRFs for molecule testing today...Do we need a new It sounds like we're at a fork in the road here...perhaps adding Thanks for the feedback thus far! |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
@gmuloc and @ClausHolbechArista I've added setting The molecule test was adjusted to enable VLAN-Based MACVRF testing.
Net result is that only VLAN 350 in Tenant C has a MACVRF with remote domain RD/RT values. This is the expected behavior. Let me know what I missed! Once this is good, will update the documentation... Thanks again! |
@@ -290,7 +290,7 @@ def _router_bgp_vlans_vlan(self, vlan, tenant) -> dict | None: | |||
"eos_cli": get(vlan, "bgp.raw_eos_cli"), | |||
"struct_cfg": get(vlan, "bgp.structured_config"), | |||
} | |||
if self._evpn_gateway_vxlan_l2: | |||
if self._evpn_gateway_vxlan_l2 and default(vlan.get("evpn_multi_domain"), tenant.get("evpn_multi_domain"), vrf.get("evpn_multi_domain"), True) is True: |
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.
I would change the order to vlan -> vrf -> tenant
rather than vlan -> tenant -> vrf
?
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.
+1
ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_bgp.py
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_bgp.py
Outdated
Show resolved
Hide resolved
Ready for review again. Thanks again for all the help @gmuloc @ClausHolbechArista @tgodaA ! |
Since all this only affect the L2 gateway and vlan services, we should probably include |
...e_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/DC1_FABRIC.yml
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/doc/network-services.md
Outdated
Show resolved
Hide resolved
ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_bgp.py
Outdated
Show resolved
Hide resolved
I like this suggestion. Changed |
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.
LGTM
Change Summary
Add an optional
evpn_l2_multi_domain
boolean parameter to enable the extension of VLANs into remote EVPN domainsTOI: https://www.arista.com/en/support/toi/eos-4-26-1f/14785-multi-domain-evpn-vxlan
The
evpn_l2_multi_domain
parameter can be defined at the following levels:It will default to a value of
True
, but this can be overridden as needed at the different levels defined above.Related Issue(s)
N/A
Component(s) name
arista.avd.eos_designs
Proposed changes
Extend the Network Services data model, providing an optional
evpn_l2_multi_domain
boolean parameter at the following levels:Generated output if
evpn_l2_multi_domain: false
:Generated output if
evpn_l2_multi_domain: true
:How to test
molecule converge -s eos_designs_unit_tests
Checklist
User Checklist
N/A
Repository Checklist