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

Deploy complete switch configurations safely #254

Open
trad511 opened this issue Jan 24, 2023 · 0 comments
Open

Deploy complete switch configurations safely #254

trad511 opened this issue Jan 24, 2023 · 0 comments

Comments

@trad511
Copy link
Collaborator

trad511 commented Jan 24, 2023

SUMMARY

Currently CANU is sufficiently successful in bringing together topology (SHCD or CCJ) and IP addresses (IPAM via SLS) and creating entire switch configurations. The existing methodology is to deploy the switch configurations manually after CANU generates them. This is both time consuming and error prone.

Further out CANU should create and deploy more "composable" configurations that are less tightly coupled. For instance, a base configuration that devices and "other things" are stacked upon. Also, the ability of CANU to deploy and fix singular nodes/devices (e.g. uan001) as well as a role/class of devices (e.g. configure all network ports for UANs on the system). This change is further out and should intersect with a request for networking to be refitted into a more cloudy "VPC-like" view.

As a next step, CANU should be able to deploy entire switch configurations:

  • Automated
  • Safely
  • Rollback
ISSUE TYPE
  • RFE
ADDITIONAL INFORMATION

Here are some other requirements:

  1. Ansible should be used. This will prepare for future finer-grained configuration in the future and use industry-standard methodologies for network management.
Unpaired switches

Unpaired switches are those which do not have or require MLAG, VRRP or other features which imply ISL and Keepalive cabling and the use of VSX (Aruba), or MAGP (Mellanox).

Currently the only unpaired switches in the CSM architecture are sw-leaf-bmc switches.

sequenceDiagram
    actor AD as Admin
    participant CA as CANU
    participant AN as Ansible
    participant SU as Unpaired Switch

    AD-->>CA : Upgrade switch
    CA-->>+SU : Run pre-upgrade switch tests
    SU-->>-CA : Return pre-upgrade test JSON
    CA-->>CA : Validate readiness to upgrade
    CA-->>AN : Upgrade switch
    AN-->>SU : Copy running-config to backup checkpoint
    rect rgb(191, 223, 255)
        note right of AN: Aruba-specific NetEdit-like checks
        AN-->>SU : Upload CANU text config
        AN-->>+SU : Validate CANU text config
        SU-->>-AN : Return validated config
    end
    AN-->>SU : Set checkpoint rollback timeout
    AN-->>SU : Upload validated config to running-config
    AN-->>SU : Test continued admin access to the switch
    AN-->>SU : Remove/accept rollback timeout
    CA-->>+SU : Run post-upgrade switch tests
    SU-->>-CA : Return post-upgrade test JSON
    CA-->>CA : Validate pre/post ugprade switch states
    opt --reboot
        CA-->>AN : Reboot switch
        AN-->>SU : Reboot switch
        CA-->>+SU : Run post-upgrade switch tests
        SU-->>-CA : Return post-upgrade test JSON
        CA-->>CA : Validate pre/post reboot switch states
    end
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant