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): Interface "LACP Fallback Individual" Support #3510

Conversation

bjmeuer
Copy link
Contributor

@bjmeuer bjmeuer commented Jan 17, 2024

Change Summary

Adding "LACP Fallback Individual" to the eos_designs. This is a common requirement for automated server deployments in order to bootstrap bare-metal servers via a different VLAN or interface type (for example) than is configured against the port-channel interface. Also adding the ability to specify different interface configuration parameters at the member interface level than are specified at the port-channel level by using port_profiles.

Related Issue(s)

Fixes #3367

Component(s) name

arista.avd.eos_designs

Proposed changes

The option "individual" was added to the "mode" key of the lacp_fallback setting. Additionally added the setting "individual" with the key "profile" where you can reference a port_profile from which you want to inherit configuration for the member interfaces. The following config from a port_profile will be inherited: mode, vlans, native_vlan, native_vlan_tag.

servers:
  - name: server1
    adapters:
    - switch_ports: ['Ethernet10/1', 'Ethernet10/1']
      ...
        lacp_fallback: 
          mode: individual
          individual:
            profile: ESX_TRUNK

How to test

From the molecule tests:

servers:
  # port-channel with lacp fallback individual
  - name: INDIVIDUAL_1
    adapters:
      - switches: [connected_endpoints, connected_endpoints]
        switch_ports: [Ethernet12, Ethernet13]
        port_channel:
          mode: "active"
          description: "INDIVIDUAL_1"
          lacp_fallback:
            mode: individual
  # port-channel with lacp fallback individual and profile for member interfaces
  - name: INDIVIDUAL_2
    adapters:
      - switches: [connected_endpoints, connected_endpoints]
        switch_ports: [Ethernet14, Ethernet15]
        port_channel:
          mode: "active"
          description: "INDIVIDUAL_2"
          lacp_fallback:
            mode: individual
            individual:
              profile: INDIVIDUAL_TRUNK

port_profiles:
  - profile: INDIVIDUAL_TRUNK
    mode: trunk
    vlans: "1,2,3,4,5,6,7,123,234"
    native_vlan_tag: False
    native_vlan: 123

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)

@bjmeuer bjmeuer requested review from a team as code owners January 17, 2024 14:48
@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 17, 2024
bjmeuer and others added 3 commits January 18, 2024 08:05
…s/connected_endpoints/ethernet_interfaces.py

Co-authored-by: Claus Holbech <holbech@arista.com>
…s/connected_endpoints/ethernet_interfaces.py

Co-authored-by: Claus Holbech <holbech@arista.com>
…s/connected_endpoints/ethernet_interfaces.py

Co-authored-by: Claus Holbech <holbech@arista.com>
Copy link
Contributor

@ClausHolbechArista ClausHolbechArista left a comment

Choose a reason for hiding this comment

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

Minor code optimization. Done by hand so may require linting.

bjmeuer and others added 2 commits January 19, 2024 11:39
…s/connected_endpoints/port_channel_interfaces.py

Co-authored-by: Claus Holbech <holbech@arista.com>
@ClausHolbechArista ClausHolbechArista requested a review from a team January 19, 2024 12:45
@ClausHolbechArista ClausHolbechArista added the one approval This PR has one approval and is only missing one more. label Jan 19, 2024
Copy link
Contributor

@ankudinov ankudinov left a comment

Choose a reason for hiding this comment

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

LGTM. Tested various combinations in Codespace

@ClausHolbechArista ClausHolbechArista merged commit c9c1ca4 into aristanetworks:devel Jan 24, 2024
38 checks passed
@carlbuchmann carlbuchmann removed the one approval This PR has one approval and is only missing one more. label Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rn: Feat(eos_designs) 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.

Interface "LACP Fallback Individual" Support
4 participants