Skip to content

Commit 8102be7

Browse files
authored
Merge pull request #613 from netascode/release-0.5.0
Release 0.5.0
2 parents f484304 + f68a44b commit 8102be7

File tree

308 files changed

+7849
-3200
lines changed

Some content is hidden

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

308 files changed

+7849
-3200
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,16 @@ body:
119119
validations:
120120
required: true
121121

122+
- type: textarea
123+
id: data-model-yaml
124+
attributes:
125+
label: Data Model
126+
description: Please provide pieces of your relevant data model that is encountering the issue
127+
placeholder: Data Model
128+
render: yaml
129+
validations:
130+
required: true
131+
122132
- type: textarea
123133
id: step-to-reproduce
124134
attributes:

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
steps:
2626
- name: Check out code
2727
uses: actions/checkout@v4
28-
28+
2929
- name: Set up Python 3.10.14
3030
uses: actions/setup-python@v5
3131
with:

CHANGELOG.rst

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,84 @@ This project adheres to `Semantic Versioning <http://semver.org/>`_.
88

99
.. contents:: ``Release Versions``
1010

11+
`0.5.0`_
12+
=====================
13+
14+
**Release Date:** ``2025-09-22``
15+
16+
Added
17+
-----
18+
19+
* Added initial support for VXLAN eBGP EVPN fabric type that includes:
20+
* Fabric management
21+
* Underlay & Overlay configuration using provided documentation and examples: https://netascode.cisco.com/docs/data_models/vxlan/global/global/
22+
* Device discovery
23+
* vPC
24+
* Interfaces
25+
* Overlay (VRFs and Networks)
26+
* Policy
27+
* **Note**: eBGP EVPN fabric type introduces and only supports global configuration under `vxlan.global.ebgp`
28+
* Added additional backwards compatiability support for NDFC 3.1
29+
* Added support for creating and managing vPC domain / vPC pair in data model for external fabric
30+
* Added support for L3VNI without VLAN for iBGP and eBGP EVPN fabric types
31+
* Added support for additional LACP attributes in data model for port-channels
32+
* Added support for individual per-switch credentials
33+
* Support documentation can be found here: https://github.com/netascode/ansible-dc-vxlan/blob/0.5.0/docs/SWITCH_CREDENTIALS_GUIDE.md
34+
* Added support for breakout interfaces with pre-provision device workflows
35+
* Added initial support for unified Nexus Dashboard 4.1 via legacy, backwards compatiable NDFC APIs
36+
37+
Modified
38+
--------
39+
40+
* Updated iac-validate to use nac-validate in validate role
41+
* Updated `vxlan.global` keys to align with supported fabric types
42+
* iBGP EVPN fabric type should use: `vxlan.global.ibgp`
43+
* External fabric type should use: `vxlan.global.external`
44+
* eBGP EVPN fabric type introduces properties `vxlan.global.ebgp` starting in this release, `0.5.0`
45+
* Backwards compatiability is provided for `vxlan.global` keys for iBGP and External fabric types
46+
* Updated pointer to defaults used for ISN and MSD fabric types to use `defaults.vxlan.multisite` keys
47+
48+
Fixed
49+
-----
50+
* https://github.com/netascode/ansible-dc-vxlan/issues/301
51+
* https://github.com/netascode/ansible-dc-vxlan/issues/315
52+
* https://github.com/netascode/ansible-dc-vxlan/issues/337
53+
* https://github.com/netascode/ansible-dc-vxlan/issues/383
54+
* https://github.com/netascode/ansible-dc-vxlan/issues/390
55+
* https://github.com/netascode/ansible-dc-vxlan/issues/407
56+
* https://github.com/netascode/ansible-dc-vxlan/issues/413
57+
* https://github.com/netascode/ansible-dc-vxlan/issues/425
58+
* https://github.com/netascode/ansible-dc-vxlan/issues/430
59+
* https://github.com/netascode/ansible-dc-vxlan/issues/435
60+
* https://github.com/netascode/ansible-dc-vxlan/issues/439
61+
* https://github.com/netascode/ansible-dc-vxlan/issues/441
62+
* https://github.com/netascode/ansible-dc-vxlan/issues/442
63+
* https://github.com/netascode/ansible-dc-vxlan/issues/443
64+
* https://github.com/netascode/ansible-dc-vxlan/issues/445
65+
* https://github.com/netascode/ansible-dc-vxlan/issues/447
66+
* https://github.com/netascode/ansible-dc-vxlan/issues/451
67+
* https://github.com/netascode/ansible-dc-vxlan/issues/457
68+
* https://github.com/netascode/ansible-dc-vxlan/issues/458
69+
* https://github.com/netascode/ansible-dc-vxlan/issues/466
70+
* https://github.com/netascode/ansible-dc-vxlan/issues/468
71+
* https://github.com/netascode/ansible-dc-vxlan/issues/472
72+
* https://github.com/netascode/ansible-dc-vxlan/issues/490
73+
* https://github.com/netascode/ansible-dc-vxlan/issues/505
74+
* https://github.com/netascode/ansible-dc-vxlan/issues/513
75+
* https://github.com/netascode/ansible-dc-vxlan/issues/528
76+
* https://github.com/netascode/ansible-dc-vxlan/issues/532
77+
* https://github.com/netascode/ansible-dc-vxlan/issues/537
78+
* https://github.com/netascode/ansible-dc-vxlan/issues/540
79+
* https://github.com/netascode/ansible-dc-vxlan/issues/545
80+
* https://github.com/netascode/ansible-dc-vxlan/issues/550
81+
* https://github.com/netascode/ansible-dc-vxlan/issues/551
82+
* https://github.com/netascode/ansible-dc-vxlan/issues/553
83+
* https://github.com/netascode/ansible-dc-vxlan/issues/555
84+
* https://github.com/netascode/ansible-dc-vxlan/issues/558
85+
* https://github.com/netascode/ansible-dc-vxlan/issues/566
86+
* https://github.com/netascode/ansible-dc-vxlan/issues/589
87+
* https://github.com/netascode/ansible-dc-vxlan/issues/595
88+
1189
`0.4.3`_
1290
=====================
1391

@@ -286,6 +364,7 @@ The following roles have been added to the collection:
286364

287365
This version of the collection includes support for an IPv4 Underlay only. Support for IPv6 Underlay will be available in the next release.
288366

367+
.. _0.5.0: https://github.com/netascode/ansible-dc-vxlan/compare/0.4.3...0.5.0
289368
.. _0.4.3: https://github.com/netascode/ansible-dc-vxlan/compare/0.4.2...0.4.3
290369
.. _0.4.2: https://github.com/netascode/ansible-dc-vxlan/compare/0.4.1...0.4.2
291370
.. _0.4.1: https://github.com/netascode/ansible-dc-vxlan/compare/0.4.0...0.4.1

README.md

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Role: [cisco.nac_dc_vxlan.validate](https://github.com/netascode/ansible-dc-vxla
2626

2727
The `validate` role ensures that the data model is correct and that the data model can be processed by the subsequent roles. The validate role reads all the files in the `host_vars` directory and creates a single data model in memory for execution.
2828

29-
As part of the VXLAN as Code service from Cisco, you will also be able to utilize the semantic validation feature to make sure that the data model matches the intended expected values. This is a powerful feature that allows you to ensure that the data model is correct before it is deployed to the network. Additonally the validate role allows creation of rules that can be used to prevent operators from making specific configurations that are not allowed in the network. These can be as simple as enforcing proper naming conventions to more complex rules for interconnectivity issues that should be avoided. These rules are coded in Python and can be constructed as part of the Services as Code offer.
29+
As part of the VXLAN as Code service from Cisco, you will also be able to utilize the semantic validation feature to make sure that the data model matches the intended expected values. This is a powerful feature that allows you to ensure that the data model is correct before it is deployed to the network. Additonally the validate role allows creation of rules that can be used to prevent operators from making specific configurations that are not allowed in the network. These can be as simple as enforcing proper naming conventions to more complex rules for interconnectivity issues that should be avoided. These rules are coded in Python and can be constructed as part of the Services as Code offer.
3030

3131
### Create Role
3232

@@ -82,7 +82,7 @@ The following control variables are available in this collection.
8282

8383
| Variable | Description | Default Value |
8484
| -------- | ------- | ------- |
85-
| `force_run_all` | Force all roles in the collection to run | `false` |
85+
| `force_run_all` | Force all roles in the collection to run | `false` |
8686
| `interface_delete_mode` | Remove interface state as part of the remove role | `false` |
8787
| `inventory_delete_mode` | Remove inventory state as part of the remove role | `false` |
8888
| `link_vpc_delete_mode` | Remove vpc link state as part of the remove role | `false` |
@@ -164,7 +164,7 @@ If you wish to install the galaxy collection inside the repository you are creat
164164
ansible-galaxy collection install -p collections/ansible_collections/ -r requirements.yaml
165165
```
166166

167-
The `ansible.cfg` file needs to be configured to point to the location of the collection.
167+
The `ansible.cfg` file needs to be configured to point to the location of the collection.
168168

169169
This is the path for all the python modules and libraries of the virtual environment that were created. If you look in that directory, you will find the collections package locations. Here is the base ansible.cfg, you will need to adjust the collections_path to your environment paths:
170170

@@ -186,7 +186,7 @@ bin_ansible_callbacks = True
186186

187187
#### Step 6 - Verify the Installation
188188

189-
Verify that the ansible configuration file is being read and all the paths are correct inside of this virtual environment.
189+
Verify that the ansible configuration file is being read and all the paths are correct inside of this virtual environment.
190190

191191
```bash
192192
ansible --version
@@ -300,18 +300,39 @@ export NDFC_SW_USERNAME=admin
300300
export NDFC_SW_PASSWORD=Admin_123
301301
```
302302

303+
##### Switch Credential Management
304+
305+
This collection supports flexible credential management for network switches with three security levels:
306+
307+
- **🔐 Ansible Vault**: Encrypted credentials for production deployments
308+
- **✅ Environment Variables**: Secure credential injection for CI/CD pipelines
309+
- **⚠️ Plain Text**: Simple credentials for lab testing only
310+
311+
The system supports both switch-specific credentials and group-level defaults with automatic fallback. Environment variable lookups can be configured in group_vars for enhanced security and automation compatibility.
312+
313+
**📖 Complete Guide**: [Switch Credentials Configuration](docs/SWITCH_CREDENTIALS_GUIDE.md)
314+
315+
## Quick Start Guide
316+
303317
The following quickstart repository is available to provide a step by step guide for using this collection.
304318

305319
[Quick Start Guide Repo](https://github.com/netascode/ansible-dc-vxlan-example)
306320

307321
This collection is intended for use with the following release versions:
308322

309-
* `Cisco Nexus Dashboard Fabric Controller (NDFC) Release 12.2.1` or later.
323+
* `Cisco Nexus Dashboard Fabric Controller (NDFC) Release 12.2.1`
324+
* `Cisco Nexus Dashboard Fabric Controller (NDFC) Release 12.2.2`
325+
* `Cisco Nexus Dashboard Fabric Controller (NDFC) Release 12.2.3`
326+
* `Cisco Nexus Dashboard Release 4.1.1g` - Unified Nexus Dashboard Tech Preview
310327

311328
<!--start requires_ansible-->
312329
## Ansible Version Compatibility
313330

314-
This collection has been tested against following Ansible versions: **>=2.14.15**.
331+
This collection has been tested against following Ansible Core versions:
332+
* `2.14.x`
333+
* `2.15.x`
334+
* `2.16.x`
335+
* `2.17.x`
315336

316337
Plugins, roles and modules within a collection may be tested with only specific Ansible versions.
317338
A collection may contain metadata that identifies these versions.
@@ -432,7 +453,7 @@ We welcome community contributions to this collection. If you find problems, ple
432453

433454
## More Information
434455

435-
- [Cisco Nexus Dashboard and Services Deployment and Upgrade Guide](https://www.cisco.com/c/en/us/td/docs/dcn/nd/3x/deployment/cisco-nexus-dashboard-and-services-deployment-guide-321.html)
456+
- [Cisco Nexus Dashboard and Services Deployment and Upgrade Guide](https://www.cisco.com/c/en/us/td/docs/dcn/nd/3x/deployment/cisco-nexus-dashboard-and-services-deployment-guide-321.html)
436457
- [Cisco Nexus Dashboard Fabric Controller (NDFC) User Content for LAN Configuration Guide](https://www.cisco.com/c/en/us/td/docs/dcn/ndfc/1222/collections/ndfc-user-content-1222-lan.html)
437458
- [Ansible User Guide](https://docs.ansible.com/ansible/latest/user_guide/index.html)
438459
- [Ansible Developer Guide](https://docs.ansible.com/ansible/latest/dev_guide/index.html)

0 commit comments

Comments
 (0)