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

AVD Data Model for EVPN/VXLAN Deployment Guide - Domain A #61

Merged
merged 45 commits into from
Jan 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
5dc6ddf
tl evpnvxlan domain a initial commit
MitchV85 Nov 13, 2024
44144f1
Merge branch 'aristanetworks:main' into tl-evpnvxlan-avd
MitchV85 Nov 14, 2024
46bdca0
add evpn l2 gw
MitchV85 Nov 15, 2024
5c7c14e
domain a evpn gw configs
MitchV85 Nov 16, 2024
f47ecfd
evpn gw config update
MitchV85 Nov 16, 2024
c0a6966
update evpn gw peer group config
MitchV85 Nov 16, 2024
94b9b49
domain a config avd config updates
MitchV85 Nov 16, 2024
7a422cd
update evpn multicast avd config domain a
MitchV85 Nov 16, 2024
d6f579f
dhcp relay and option 82
MitchV85 Nov 16, 2024
45f1e7b
post deployment config backups
MitchV85 Nov 16, 2024
9ffc86d
update techlib-domain-a container
MitchV85 Nov 16, 2024
6694914
techlib-domain-a-avd
MitchV85 Nov 16, 2024
c8bffee
update techlib domain a lab
MitchV85 Nov 16, 2024
46b499e
testing
MitchV85 Nov 16, 2024
3fb39f3
testing dev container
MitchV85 Nov 16, 2024
2343036
testing
MitchV85 Nov 16, 2024
bcc28fb
move avd dir for techlib domain a
MitchV85 Nov 16, 2024
a66dff3
update techlib domain a container
MitchV85 Nov 16, 2024
ca3f2f5
update documentation based on avd 5.0.0
MitchV85 Nov 16, 2024
940a741
remove anta reports - consolidate makefile
MitchV85 Nov 18, 2024
3ade791
lab testing
MitchV85 Nov 18, 2024
a2de4bf
add graphite
MitchV85 Nov 27, 2024
4091a31
Merge branch 'aristanetworks:main' into tl-evpnvxlan-avd
MitchV85 Nov 27, 2024
eaca64c
test graphite link
MitchV85 Dec 2, 2024
30b4d44
update lab topo link
MitchV85 Dec 2, 2024
2eec33e
postcreate script in domain a lab
MitchV85 Dec 2, 2024
e8dcd08
update readme in tl domain a lab
MitchV85 Dec 2, 2024
e2b2b06
update postcreate script tl domain a
MitchV85 Dec 2, 2024
c4e2b32
fix postcreate script tl domain a
MitchV85 Dec 2, 2024
982b89b
fix postcreate.sh
MitchV85 Dec 2, 2024
730b0c0
update readme with important note
MitchV85 Dec 2, 2024
1465f4a
update readme in tl domain a lab
MitchV85 Dec 2, 2024
2d2f95b
update postcreate script tl domain a lab
MitchV85 Dec 2, 2024
b465af8
Merge branch 'aristanetworks:main' into tl-evpnvxlan-avd
MitchV85 Dec 4, 2024
6b50402
Merge branch 'aristanetworks:main' into tl-evpnvxlan-avd
MitchV85 Jan 2, 2025
93fb1a3
update eos and container image
MitchV85 Jan 4, 2025
4824e1f
update eos image
MitchV85 Jan 4, 2025
78691ad
remove avd generated doc and config files
MitchV85 Jan 4, 2025
4e0a797
change avd validation mode to error
MitchV85 Jan 4, 2025
8269c0e
setting ansible validation mode to warning
MitchV85 Jan 4, 2025
6d2c598
add backbone nodes to domain a lab
MitchV85 Jan 4, 2025
2afed8f
remove domain a directory
MitchV85 Jan 4, 2025
23f700f
update domain a lab container
MitchV85 Jan 4, 2025
e3b235d
update domain a lab container
MitchV85 Jan 4, 2025
2bbdd67
update domain a lab readme
MitchV85 Jan 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .devcontainer/techlib-vxlan-domain-a/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
{
// "image": "ghcr.io/${localEnv:GITHUB_REPOSITORY}/lab-base:python3.11-avd-v4.10.2-clab0.57.5-rev9",
"image": "ghcr.io/${localEnv:GITHUB_REPOSITORY}/lab-base:python3.11-avd-v4.10.2-clab0.57.5-rev1.0",
"image": "ghcr.io/${localEnv:GITHUB_REPOSITORY}/lab-base:python3.11-avd-v5.1.0-clab0.60.1-rev1.1",
// containerEnv set the variables applied to entire container
"containerEnv": {
"ARISTA_TOKEN": "${localEnv:ARTOKEN}",
"CONTAINERWSF": "${containerWorkspaceFolder}",
"GITHUB_REPOSITORY": "${localEnv:GITHUB_REPOSITORY}",
"CEOS_LAB_VERSION": "4.32.2.1F"
"CEOS_LAB_VERSION": "4.32.3M"
},
"secrets": {
"ARTOKEN": {
Expand All @@ -22,4 +21,4 @@
"postCreateCommand": "postCreate.sh; make start; make inspect",
"workspaceMount": "source=${localWorkspaceFolder}/labs/${containerWorkspaceFolder},target=/${containerWorkspaceFolder},type=bind",
"workspaceFolder": "/techlib-vxlan-domain-a"
}
}
5 changes: 4 additions & 1 deletion labs/techlib-vxlan-domain-a/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ avd_inventory/config_backup/
# gitignore downloaded cEOS-lab images
cEOS-lab-*

# ingnore images and other files not to be uploaded to GitHub
# ignore images and other files not to be uploaded to GitHub
.gitignored/*
!.gitignored/.gitkeep

# ignore AVD config_backups
avd/config_backup
12 changes: 12 additions & 0 deletions labs/techlib-vxlan-domain-a/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,15 @@ inspect: ## Inspect ceos lab
@echo ""
@echo "You can check the lab status, hostnames and management addresses above."
@echo "To connect to a lab device use \`ssh admin@<hostname>\` and password \`admin\`."

.PHONY: build
build: ## Build Configs
ansible-playbook avd/playbooks/build.yml -i avd/inventory.yml -e "target_hosts=DOMAIN_A_FABRIC"

.PHONY: deploy
deploy: ## Deploy Configs via eAPI
ansible-playbook avd/playbooks/deploy.yml -i avd/inventory.yml -e "target_hosts=DOMAIN_A_FABRIC"

.PHONY: validate
validate: ## Validate Fabric
ansible-playbook avd/playbooks/validate.yml -i avd/inventory.yml -e "target_hosts=DOMAIN_A_FABRIC"
114 changes: 102 additions & 12 deletions labs/techlib-vxlan-domain-a/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,113 @@
# TechLibrary EVPN Domain-A Lab
# Arista's Tech Library EVPN/VXLAN Domain A Lab

This lab is tested for:
## Overview
This lab has been validated as fully functional with:

cEOS-lab version: 4.32.2.1F
Codespace Container Size
CPUs: 16
memory: 64 GB
storage: 128 GB
- cEOS-lab: 4.32.3M
- AVD: 5.1.0
- ContainerLab: 0.60.1

Last reviewed: 02/10/2024
## Quick Links

To inspect the lab details use `make inspect` shortcut. This will list the host names and management addresses for all lab devices.
To connect to any device use:
[Interactive Lab Topology](#interactive-lab-toplogy)

[Building Configurations](#building-configurations)

[Deploying Configurations](#deploying-configurations)

[Validating the Topology](#validating-the-topology)

[Topology Status](#topology-status)

[Connecting to Nodes via the Terminal](#connecting-to-nodes-via-terminal)

[Starting the Topology](#starting-the-topology)

[Stopping the Topology](#stopping-the-topology)

## Interactive Lab Toplogy

An interactive topology is available via the link below, and can be used to access the nodes via web SSH. All nodes have a username of `admin` and password of `admin`

> [!IMPORTANT]
> Please wait until the postCreate.sh script completes before opening the interactive lab topology link below

[Interactive Lab Topology](https://{{gh.codespace_name}}-8080.app.github.dev/graphite)

## Building Configurations

Pre-built AVD data models are located in the `avd/group_vars` directory. These data models will render configurations for the nodes in Domain A as shown in the EVPN/VXLAN Deployment Guide.

Issuing the below command at the terminal will render all configuration and documentation based on the pre-built data models.

```bash
make build
```

> [!TIP]
> Be sure to explore and experiment with the data models! More information on AVD can be found at https://avd.arista.com.

## Deploying Configurations

Once rendered, the AVD-generated configurations can be deployed to the nodes by issuing the below command at the terminal

```bash
make deploy
```

## Validating the Topology

The [Arista Network Test Automation (ANTA)](https://anta.arista.com/) framework can be used to validate that the topology is built and operational as defined in the AVD data models.

Issue the below command at the terminal will initiate the validation testing.

```
make validate
```

> [!TIP]
> ANTA has an extensive and continually growing [test catalog](https://anta.arista.com/stable/api/tests/). Be sure to explore and test with the available options!

## Additional Tasks

### Topology Status

The current status of the lab environment can be retrieved at any time by issuing the below command at the terminal.

```bash
make inspect
```

This will list the host names and management addresses for all lab devices.

### Connecting to Nodes via Terminal

As an alternative to the [Interactive Lab Topology](https://{{gh.codespace_name}}-8080.app.github.dev/graphite), all nodes can be accessed via SSH directly from the terminal as shown below.

```bash
# the password is `admin`
ssh admin@<a-lab-device-hostname>
```

To check connectivity, ssh to any host and use `pingcheck ipv4_vrf_prod` or `pingcheck ipv4_vrf_dev` to start fping to the lab hosts. You have to wait a few minutes after the lab start for ping to be successful.
### Stopping the topology

If needed, the topology can be stopped by issuing the below command at the terminal:

```
make stop
```

### Starting the topology

> [!IMPORTANT]
> The topology is automatically started upon the initial launch of the Codespace lab.

If the topology is stopped for any reason, either manually or automatically due to the user's configured Codespace idle timeout value, it can be restarted by issuing the below command at the terminal:

```
make start
```

# Enjoy the lab!

Enjoy the lab!
Last reviewed: January 4th, 2025
4 changes: 4 additions & 0 deletions labs/techlib-vxlan-domain-a/ansible.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[defaults]
forks = 5
inventory = inventory.yml
jinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do,jinja2.ext.i18n
87 changes: 87 additions & 0 deletions labs/techlib-vxlan-domain-a/avd/group_vars/DOMAIN_A_ENDPOINTS.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---

########################################################
# Port Profiles #
########################################################
port_profiles:
- profile: PROF-BLUE-MLAG
mode: access
spanning_tree_portfast: edge
spanning_tree_bpduguard: true
vlans: 10
port_channel:
mode: active

- profile: PROF-ORANGE-MLAG
mode: access
spanning_tree_portfast: edge
spanning_tree_bpduguard: true
vlans: 30
port_channel:
mode: active

- profile: PROF-ORANGE-SINGLE-HOMED
mode: access
spanning_tree_portfast: edge
spanning_tree_bpduguard: true
vlans: 30

- profile: PROF-YELLOW-SINGLE-HOMED
mode: access
spanning_tree_portfast: edge
spanning_tree_bpduguard: true
vlans: 50

- profile: PROF-BROWN-MLAG
mode: access
spanning_tree_portfast: edge
spanning_tree_bpduguard: true
vlans: 70
port_channel:
mode: active

########################################################
# End hosts #
########################################################
servers:
- name: HostA1
adapters:
- endpoint_ports: [eth1, eth2]
switch_ports: [Ethernet7, Ethernet7]
switches: [A-LEAF1, A-LEAF2]
profile: PROF-BLUE-MLAG

- name: HostA2
adapters:
- endpoint_ports: [eth1, eth2]
switch_ports: [Ethernet8, Ethernet8]
switches: [A-LEAF1, A-LEAF2]
profile: PROF-ORANGE-MLAG

- name: HostA3
adapters:
- endpoint_ports: [eth1]
switch_ports: [Ethernet7]
switches: [A-LEAF3]
profile: PROF-YELLOW-SINGLE-HOMED

- name: HostA4
adapters:
- endpoint_ports: [eth1, eth2]
switch_ports: [Ethernet8, Ethernet8]
switches: [A-LEAF3, A-LEAF4]
profile: PROF-BLUE-MLAG

- name: HostA5
adapters:
- endpoint_ports: [eth1]
switch_ports: [Ethernet7]
switches: [A-LEAF4]
profile: PROF-ORANGE-SINGLE-HOMED

- name: HostA6
adapters:
- endpoint_ports: [eth1, eth2]
switch_ports: [Ethernet7, Ethernet7]
switches: [A-LEAF5, A-LEAF6]
profile: PROF-BROWN-MLAG
Loading
Loading