Skip to content

Commit 27eff97

Browse files
Merge branch 'devel' into feat/eos_designs/svi_static_routes
2 parents d64ff32 + 218d376 commit 27eff97

File tree

67 files changed

+1362
-242
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1362
-242
lines changed

.github/check-git-status.sh

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/bash
2+
#
3+
# Purpose: Molecule runner for github-action
4+
# Author: @titom73
5+
# Date: 2020-12-16
6+
# Version: 1.1
7+
# License: APACHE
8+
# --------------------------------------
9+
10+
echo "Script running from ${PWD}"
11+
12+
# Set default values
13+
INPUT_CHECK_GIT="${INPUT_CHECK_GIT:-true}"
14+
INPUT_CHECK_GIT_ENFORCED="${INPUT_CHECK_GIT_ENFORCED:-true}"
15+
16+
if [ ${INPUT_CHECK_GIT} = "true" ]; then
17+
git config core.fileMode false
18+
echo " * Run Git Verifier because CHECK_GIT is set to ${INPUT_CHECK_GIT}"
19+
# if git diff-index --quiet HEAD --; then
20+
GIT_STATUS="$(git status --porcelain)"
21+
if [ "$?" -ne "0" ]; then
22+
echo "'git status --porcelain' failed to run - something is wrong"
23+
exit 1
24+
fi
25+
if [ -n "$GIT_STATUS" ]; then
26+
# Some changes
27+
echo 'Some changes'
28+
echo '------------'
29+
git --no-pager status --short
30+
echo ''
31+
echo 'Diffs are:'
32+
echo '------------'
33+
git --no-pager diff
34+
if [ ${INPUT_CHECK_GIT_ENFORCED} = "true" ]; then
35+
exit 1
36+
else
37+
exit 0
38+
fi
39+
else
40+
# No Changes
41+
echo ' - No change found after running Molecule'
42+
exit 0
43+
fi
44+
exit 0
45+
else
46+
echo " * Git verifier skipped as not set to true"
47+
fi

.github/requirements-ci-dev.txt

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
# Installing PyAVD from source.
22
# The package path below is relative to the repo root and will only work if the pip install is executed from there.
33
./python-avd[ansible-collection]
4+
molecule>=6.0
5+
molecule-plugins[docker]>=23.4.0

.github/workflows/offline-links-check.yml

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ jobs:
4040
--exclude "www.docker.com" \
4141
--exclude "hub.docker.com" \
4242
--exclude "tech-library.arista.com" \
43+
--exclude "www.arista.com.*" \
4344
--max-connections-per-host 30 \
4445
--max-redirections 3 \
4546
--rate-limit 1 \

.github/workflows/pull-request-management.yml

+57-75
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ jobs:
140140
- "eos_cli_config_gen_deprecated_vars"
141141
- "eos_cli_config_gen_negative_unit_tests"
142142
ansible_version:
143-
- "ansible-core<2.19.0 --upgrade"
143+
- "ansible-core<2.19.0"
144144
# Also test minimum ansible version for one scenario.
145145
include:
146146
- avd_scenario: "eos_cli_config_gen"
@@ -149,17 +149,14 @@ jobs:
149149
if: needs.file-changes.outputs.config_gen == 'true'
150150
steps:
151151
- uses: actions/checkout@v4
152-
- name: Run molecule action
153-
uses: arista-netdevops-community/[email protected]
154-
with:
155-
molecule_parentdir: "ansible_collections/arista/avd"
156-
molecule_command: "test"
157-
molecule_args: "--scenario-name ${{ matrix.avd_scenario }}"
158-
pip_file: .github/requirements-ci-dev.txt
159-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
160-
ansible: ${{ matrix.ansible_version }}
161-
check_git: true
162-
check_git_enforced: true
152+
- name: Run molecule test
153+
run: |
154+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
155+
cd ansible_collections/arista/avd
156+
molecule test --scenario-name ${{ matrix.avd_scenario }}
157+
- name: Check GIT status
158+
run: |
159+
sh .github/check-git-status.sh
163160
# - uses: actions/upload-artifact@v4
164161
# with:
165162
# name: molecule-${{ matrix.avd_scenario }}-artifacts
@@ -175,22 +172,19 @@ jobs:
175172
fail-fast: true
176173
matrix:
177174
avd_scenario: ["dhcp_configuration", "dhcp_provisioning"]
178-
ansible_version: ["ansible-core<2.19.0 --upgrade"]
175+
ansible_version: ["ansible-core<2.19.0"]
179176
needs: [file-changes]
180177
if: needs.file-changes.outputs.dhcp == 'true'
181178
steps:
182179
- uses: actions/checkout@v4
183-
- name: Run molecule action
184-
uses: arista-netdevops-community/[email protected]
185-
with:
186-
molecule_parentdir: "ansible_collections/arista/avd"
187-
molecule_command: "test"
188-
molecule_args: "--scenario-name ${{ matrix.avd_scenario }}"
189-
pip_file: .github/requirements-ci-dev.txt
190-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
191-
ansible: ${{ matrix.ansible_version }}
192-
check_git: true
193-
check_git_enforced: true
180+
- name: Run molecule test
181+
run: |
182+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
183+
cd ansible_collections/arista/avd
184+
molecule test --scenario-name ${{ matrix.avd_scenario }}
185+
- name: Check GIT status
186+
run: |
187+
sh .github/check-git-status.sh
194188
# - uses: actions/upload-artifact@v4
195189
# with:
196190
# name: molecule-${{ matrix.avd_scenario }}-artifacts
@@ -225,19 +219,19 @@ jobs:
225219
- "example-cv-pathfinder"
226220
ansible_version:
227221
# Testing all scenario with 2.16.x, due to bug with in 2.17.0 with and the way we test eos_designs_negative_unit_tests https://github.com/ansible/ansible/issues/83292
228-
- "ansible-core>=2.16.0,<2.17.0 --upgrade"
222+
- "ansible-core>=2.16.0,<2.17.0"
229223
pip_requirements:
230224
- ".github/requirements-ci-dev.txt"
231225
# Also test minimum ansible version for one scenario.
232226
include:
233227
- avd_scenario: "eos_designs_unit_tests"
234-
ansible_version: "ansible-core==2.16.0 --upgrade"
228+
ansible_version: "ansible-core==2.16.0"
235229
pip_requirements: ".github/requirements-ci-dev.txt"
236230
- avd_scenario: "eos_designs_unit_tests"
237-
ansible_version: "ansible-core<2.18.0 --upgrade"
231+
ansible_version: "ansible-core<2.18.0"
238232
pip_requirements: ".github/requirements-ci-dev.txt"
239233
- avd_scenario: "eos_designs_unit_tests"
240-
ansible_version: "ansible-core<2.19.0 --upgrade"
234+
ansible_version: "ansible-core<2.19.0"
241235
pip_requirements: ".github/requirements-ci-dev.txt"
242236
needs: [file-changes]
243237
if: needs.file-changes.outputs.eos_design == 'true' || needs.file-changes.outputs.config_gen == 'true'
@@ -249,17 +243,14 @@ jobs:
249243
uv pip compile .github/requirements-ci-dev.txt --resolution=lowest-direct > ${{ matrix.pip_requirements }}
250244
cat ${{ matrix.pip_requirements }}
251245
if: matrix.pip_requirements == 'tmp-requirements-minimum.txt'
252-
- name: Run molecule action
253-
uses: arista-netdevops-community/[email protected]
254-
with:
255-
molecule_parentdir: "ansible_collections/arista/avd"
256-
molecule_command: "test"
257-
molecule_args: "--scenario-name ${{ matrix.avd_scenario }}"
258-
pip_file: ${{ matrix.pip_requirements }}
259-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
260-
ansible: ${{ matrix.ansible_version }}
261-
check_git: true
262-
check_git_enforced: true
246+
- name: Run molecule test
247+
run: |
248+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
249+
cd ansible_collections/arista/avd
250+
molecule test --scenario-name ${{ matrix.avd_scenario }}
251+
- name: Check GIT status
252+
run: |
253+
sh .github/check-git-status.sh
263254
# - uses: actions/upload-artifact@v4
264255
# with:
265256
# name: molecule-${{ matrix.avd_scenario }}-artifacts
@@ -276,7 +267,7 @@ jobs:
276267
avd_scenario:
277268
- "eos_config_deploy_cvp"
278269
ansible_version:
279-
- "ansible-core<2.19.0 --upgrade"
270+
- "ansible-core<2.19.0"
280271
include:
281272
- avd_scenario: "eos_config_deploy_cvp"
282273
ansible_version: "ansible-core==2.16.0"
@@ -285,17 +276,14 @@ jobs:
285276

286277
steps:
287278
- uses: actions/checkout@v4
288-
- name: Run molecule action
289-
uses: arista-netdevops-community/[email protected]
290-
with:
291-
molecule_parentdir: "ansible_collections/arista/avd"
292-
molecule_command: "test"
293-
molecule_args: "--scenario-name ${{ matrix.avd_scenario }}"
294-
pip_file: .github/requirements-ci-dev.txt
295-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
296-
ansible: ${{ matrix.ansible_version }}
297-
check_git: true
298-
check_git_enforced: true
279+
- name: Run molecule test
280+
run: |
281+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
282+
cd ansible_collections/arista/avd
283+
molecule test --scenario-name ${{ matrix.avd_scenario }}
284+
- name: Check GIT status
285+
run: |
286+
sh .github/check-git-status.sh
299287
# - uses: actions/upload-artifact@v4
300288
# with:
301289
# name: molecule-${{ matrix.avd_scenario }}-artifacts
@@ -313,25 +301,22 @@ jobs:
313301
avd_scenario:
314302
- 'anta_runner'
315303
ansible_version:
316-
- 'ansible-core<2.19.0 --upgrade'
304+
- 'ansible-core<2.19.0'
317305
include:
318306
- avd_scenario: 'anta_runner'
319307
ansible_version: 'ansible-core==2.16.0'
320308
needs: [ file-changes ]
321309
if: needs.file-changes.outputs.eos_design == 'true' || needs.file-changes.outputs.anta_runner == 'true'
322310
steps:
323311
- uses: actions/checkout@v4
324-
- name: Run molecule action
325-
uses: arista-netdevops-community/[email protected]
326-
with:
327-
molecule_parentdir: 'ansible_collections/arista/avd'
328-
molecule_command: 'test'
329-
molecule_args: '--scenario-name ${{ matrix.avd_scenario }}'
330-
pip_file: .github/requirements-ci-dev.txt
331-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
332-
ansible: ${{ matrix.ansible_version }}
333-
check_git: true
334-
check_git_enforced: true
312+
- name: Run molecule test
313+
run: |
314+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
315+
cd ansible_collections/arista/avd
316+
molecule test --scenario-name ${{ matrix.avd_scenario }}
317+
- name: Check GIT status
318+
run: |
319+
sh .github/check-git-status.sh
335320
336321
# ----------------------------------- #
337322
# EOS Validate State MOLECULE
@@ -345,25 +330,22 @@ jobs:
345330
avd_scenario:
346331
- "eos_validate_state"
347332
ansible_version:
348-
- "ansible-core<2.19.0 --upgrade"
333+
- "ansible-core<2.19.0"
349334
include:
350335
- avd_scenario: "eos_validate_state"
351336
ansible_version: "ansible-core==2.16.0"
352337
needs: [file-changes]
353338
if: needs.file-changes.outputs.eos_design == 'true' || needs.file-changes.outputs.validate_state == 'true'
354339
steps:
355340
- uses: actions/checkout@v4
356-
- name: Run molecule action
357-
uses: arista-netdevops-community/[email protected]
358-
with:
359-
molecule_parentdir: "ansible_collections/arista/avd"
360-
molecule_command: "test"
361-
molecule_args: "--scenario-name ${{ matrix.avd_scenario }}"
362-
pip_file: .github/requirements-ci-dev.txt
363-
galaxy_file: "ansible_collections/arista/avd/collections.yml"
364-
ansible: ${{ matrix.ansible_version }}
365-
check_git: true
366-
check_git_enforced: true
341+
- name: Run molecule test
342+
run: |
343+
pip install "${{ matrix.ansible_version}}" -r .github/requirements-ci-dev.txt
344+
cd ansible_collections/arista/avd
345+
molecule test --scenario-name ${{ matrix.avd_scenario }}
346+
- name: Check GIT status
347+
run: |
348+
sh .github/check-git-status.sh
367349
368350
# ----------------------------------- #
369351
# Ansible tests

.github/workflows/sonar.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ jobs:
1111
if: github.repository == 'aristanetworks/avd'
1212
runs-on: ubuntu-latest
1313
steps:
14-
- run: |
15-
echo '${{ toJson(github.event.workflow_run) }}'
1614
- uses: actions/checkout@v4
1715
with:
1816
ref: ${{ github.event.workflow_run.head_sha }}
@@ -63,7 +61,7 @@ jobs:
6361
path: python-avd/pyavd/_eos_cli_config_gen/j2templates/compiled_templates/
6462
merge-multiple: true
6563

66-
- name: 'Get PR context'
64+
- name: Get PR context
6765
# Source: https://github.com/orgs/community/discussions/25220#discussioncomment-11316244
6866
id: pr-context
6967
if: github.event.workflow_run.event == 'pull_request'

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ repos:
8080

8181
- repo: https://github.com/astral-sh/ruff-pre-commit
8282
# Ruff version.
83-
rev: v0.11.2
83+
rev: v0.11.4
8484
hooks:
8585
# Run the linter.
8686
- id: ruff

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ AVD Documentation:
1717
- [Stable version](https://avd.arista.com/stable/)
1818
- [Development version](https://avd.arista.com/devel/)
1919

20+
## Support
21+
22+
- AVD is an open-source project maintained by a dedicated Arista engineering team. Customers can purchase TAC support for AVD through the [A-Care Service contract](./docs/support/support_overview.md). TAC support for AVD must be purchased separately.
23+
- Without a support contract AVD code can be used as-is, without any warranty and with best-effort problem resolution via [GitHub discussions board](https://github.com/aristanetworks/avd/discussions).
24+
2025
## Features
2126

2227
- **Flexibility with Open Data Models:** Extensible fabric-wide network models, simplifying configuration, delivering consistency, and reducing errors
@@ -43,11 +48,6 @@ AVD Documentation:
4348
- [CloudVision Portal](https://www.arista.com/en/products/eos/eos-cloudvision)
4449
- [Arista Design and Deployment Guides](https://www.arista.com/en/solutions/design-guides)
4550

46-
## Support
47-
48-
- AVD version 4.x releases with full support from Arista TAC. If your organization has the [A-Care subscription](https://www.arista.com/assets/data/pdf/AVD-A-Care-TAC-Support-Overview.pdf) please don't hesitate to contact TAC with any questions or issues.
49-
- Community support is provided via [Github discussions board](https://github.com/aristanetworks/avd/discussions).
50-
5151
## Contributing
5252

5353
Contributing pull requests are gladly welcomed for this repository. If you are planning a big change, please start a discussion first to make sure we'll be able to merge it. Please see the [contribution guide](ansible_collections/arista/avd/docs/contribution/overview.md) for additional details.

0 commit comments

Comments
 (0)