Skip to content

Release 3.8.0 #423

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

Merged
merged 30 commits into from
Jun 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
74eb648
Update dcnm_links.py (#380)
mthurstocisco Mar 3, 2025
8a0ad7d
Add per_vrf_loopback_auto_provision
allenrobel Mar 6, 2025
4bc65e7
Appease pylint
allenrobel Mar 7, 2025
9ecd61d
Merge pull request #385 from CiscoDevNet/dcnm-fabric-per-vrf-loopback…
allenrobel Mar 7, 2025
9c4547b
dcnm_vrf: Update log messages and comments (#386)
allenrobel Mar 8, 2025
234247a
dcnm_vrf: dict_values_differ(), more... (#387)
allenrobel Mar 25, 2025
716c74c
Support for modification of PortChannel and vPC Member Interfaces (#382)
mikewiebe Mar 26, 2025
c7dcaa1
Issue 368: #368 (#370)
prabahal Mar 26, 2025
873da75
Issue #352 : more preparatory changes
allenrobel Mar 29, 2025
99fdb03
dcnm_vrf: Fix push_diff_delete()
allenrobel Apr 1, 2025
c419ae2
Merge pull request #391 from CiscoDevNet/dcnm-vrf-issue-352-2
allenrobel Apr 1, 2025
4f91452
dcnm_vrf: get_want(): Fix key used to determine attach_state (#394)
allenrobel Apr 4, 2025
b131678
Add support for Native vlan with Trunk, Port-Channel Trunk and vPC Tr…
ccoueffe Apr 16, 2025
d01e807
Add support dot1q tunnel host on dcnm_interface (#393)
ccoueffe Apr 22, 2025
a5db5ce
dcnm_network: Fix for issue 395 (#396)
allenrobel Apr 22, 2025
bcc703e
Update README.md
mikewiebe Apr 25, 2025
cc8aa44
Fix policy delete for freeform deploy false (#403)
mikewiebe May 2, 2025
b05ab5b
Update galaxy.yml (#414)
mikewiebe May 10, 2025
17cb999
Update galaxy.yml
mikewiebe May 10, 2025
33a993f
Add breakout interface (#399)
ccoueffe May 14, 2025
5f1e5a3
add duplex for eth and po interface in access and trunk (#401)
ccoueffe May 14, 2025
b43d58b
add vpc orphan port for eth and po trunk and access (#402)
ccoueffe May 14, 2025
96ad3a2
add route_tag for subinterface (#415)
ccoueffe May 15, 2025
cde9dc3
Update dcnm_interface.py (#416)
ccoueffe May 20, 2025
1e56756
Update dcnm_network.py (#420)
mikewiebe May 26, 2025
9b72615
Fix dcnm_policy delete issue #412 (#421)
mikewiebe May 29, 2025
bf32c50
Update CHANGELOG.rst
mikewiebe Jun 2, 2025
face1b0
Update README.md
mikewiebe Jun 2, 2025
413febe
Update galaxy.yml
mikewiebe Jun 2, 2025
fb2c9fb
Update galaxy.yml
mikewiebe Jun 2, 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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,6 @@ venv.bak/

# mypy
.mypy_cache/

# Ignore Integration Tests Files Directories
tests/integration/targets/ndfc_interface/files
28 changes: 28 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,33 @@ This project adheres to `Semantic Versioning <http://semver.org/>`_.

.. contents:: ``Release Versions``

`3.8.0`_
=====================

**Release Date:** ``2025-06-02``

Added
-----

- Updated ``dcnm_interface`` module to support the following
- Breakout Interfaces
- New properties `native_vlan`, `orphan_port`, `duplex`, `peer1_native_vlan`, `peer2_native_vlan`, `route_tag`
- Ability to manage `admin_state`, `description` and `cmds` properties for PortChannel and vPC member interfaces


Fixed
-----

- https://github.com/CiscoDevNet/ansible-dcnm/issues/28
- https://github.com/CiscoDevNet/ansible-dcnm/issues/350
- https://github.com/CiscoDevNet/ansible-dcnm/issues/368
- https://github.com/CiscoDevNet/ansible-dcnm/issues/372
- https://github.com/CiscoDevNet/ansible-dcnm/issues/379
- https://github.com/CiscoDevNet/ansible-dcnm/issues/395
- https://github.com/CiscoDevNet/ansible-dcnm/issues/398
- https://github.com/CiscoDevNet/ansible-dcnm/issues/412


`3.7.0`_
=====================

Expand Down Expand Up @@ -536,6 +563,7 @@ The Ansible Cisco Data Center Network Manager (DCNM) collection includes modules
- cisco.dcnm.dcnm_network - Add and remove Networks from a DCNM managed VXLAN fabric.
- cisco.dcnm.dcnm_interface - DCNM Ansible Module for managing interfaces.

.. _3.8.0: https://github.com/CiscoDevNet/ansible-dcnm/compare/3.7.0...3.8.0
.. _3.7.0: https://github.com/CiscoDevNet/ansible-dcnm/compare/3.6.0...3.7.0
.. _3.6.0: https://github.com/CiscoDevNet/ansible-dcnm/compare/3.5.1...3.6.0
.. _3.5.1: https://github.com/CiscoDevNet/ansible-dcnm/compare/3.5.0...3.5.1
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Actions Status](https://github.com/CiscoDevNet/ansible-dcnm/workflows/CI/badge.svg)](https://github.com/CiscoDevNet/ansible-dcnm/actions)
[![Actions Status](https://github.com/CiscoDevNet/ansible-dcnm/workflows/CI/badge.svg)](https://github.com/CiscoDevNet/ansible-dcnm/actions?branch=develop)


# Cisco DCNM Collection
Expand Down Expand Up @@ -71,7 +71,7 @@ You can also include it in a `requirements.yml` file and install it with `ansibl
---
collections:
- name: cisco.dcnm
version: 3.7.0
version: 3.8.0
```
## Using this collection

Expand Down
191 changes: 189 additions & 2 deletions docs/cisco.dcnm.dcnm_interface_module.rst
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,51 @@ Parameters
</td>
</tr>

<tr>
<td class="elbow-placeholder"></td>
<td colspan="2">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>profile_breakout</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">-</span>
</div>
</td>
<td>
</td>
<td>
<div>Though the key shown here is &#x27;profile_breakout&#x27; the actual key to be used in playbook is &#x27;profile&#x27;. The key &#x27;profile_breakout&#x27; is used here to logically segregate the interface objects applicable for this profile</div>
<div>Interface must be parent interface. Ex: Ethernet1/49. Short name is not supported.</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
<td colspan="1">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>map</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">string</span>
/ <span style="color: red">required</span>
</div>
</td>
<td>
<ul style="margin: 0; padding: 0"><b>Choices:</b>
<li>10g-4x</li>
<li>25g-4x</li>
<li>50g-2x</li>
<li>50g-4x</li>
<li>100g-2x</li>
<li>100g-4x</li>
<li>200g-2x</li>
</ul>
</td>
<td>
<div>type of breakout</div>
</td>
</tr>

<tr>
<td class="elbow-placeholder"></td>
<td colspan="2">
Expand Down Expand Up @@ -390,7 +435,7 @@ Parameters
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan for the interface. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;access&#x27;</div>
<div>Vlan for the interface. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;access&#x27; or &#x27;dot1q&#x27;</div>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -606,10 +651,12 @@ Parameters
<li>routed</li>
<li>monitor</li>
<li>epl_routed</li>
<li>dot1q</li>
</ul>
</td>
<td>
<div>Interface mode</div>
<div>When ethernet interface is a PortChannel or vPC member, mode is ignored. The only properties that can be managed for PortChannel or vPC member interfaces are &#x27;admin_state&#x27;, &#x27;description&#x27; and &#x27;cmds&#x27;. All other properties are ignored.</div>
</td>
</tr>
<tr>
Expand All @@ -631,6 +678,24 @@ Parameters
<div>Can be specified with any value within 576 and 9216 for routed interface types. If not specified, it defaults to 9216</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
<td colspan="1">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>native_vlan</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">string</span>
</div>
</td>
<td>
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan used as native vlan. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;trunk&#x27;.</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
Expand Down Expand Up @@ -914,7 +979,7 @@ Parameters
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan for the interface. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;access&#x27;</div>
<div>Vlan for the interface. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;access&#x27; or &#x27;dot1q&#x27;</div>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -1066,13 +1131,32 @@ Parameters
<li>trunk</li>
<li>access</li>
<li>l3</li>
<li>dot1q</li>
<li>monitor</li>
</ul>
</td>
<td>
<div>Interface mode</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
<td colspan="1">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>native_vlan</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">string</span>
</div>
</td>
<td>
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan used as native vlan. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;trunk&#x27;.</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
Expand Down Expand Up @@ -2246,6 +2330,24 @@ Parameters
<div>Member interfaces that are part of this port channel on first peer</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
<td colspan="1">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>peer1_native_vlan</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">string</span>
</div>
</td>
<td>
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan used as native vlan of first peer. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;trunk&#x27;</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
Expand Down Expand Up @@ -2361,6 +2463,24 @@ Parameters
<div>Member interfaces that are part of this port channel on second peer</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
<td colspan="1">
<div class="ansibleOptionAnchor" id="parameter-"></div>
<b>peer2_native_vlan</b>
<a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a>
<div style="font-size: small">
<span style="color: purple">string</span>
</div>
</td>
<td>
<b>Default:</b><br/><div style="color: blue">""</div>
</td>
<td>
<div>Vlan used as native vlan of second peer. This option is applicable only for interfaces whose &#x27;mode&#x27; is &#x27;trunk&#x27;</div>
</td>
</tr>
<tr>
<td class="elbow-placeholder"></td>
<td class="elbow-placeholder"></td>
Expand Down Expand Up @@ -2441,6 +2561,7 @@ Parameters
<li>svi</li>
<li>st-fex</li>
<li>aa-fex</li>
<li>breakout</li>
</ul>
</td>
<td>
Expand Down Expand Up @@ -2506,6 +2627,7 @@ Parameters
<li>svi</li>
<li>st_fex</li>
<li>aa_fex</li>
<li>breakout</li>
</ul>
<b>Default:</b><br/><div style="color: blue">[]</div>
</td>
Expand Down Expand Up @@ -3340,6 +3462,71 @@ Examples
enable_netflow: false # optional, flag to enable netflow, default is false
mode: port_channel_st # choose from [port_channel_st], default is "port_channel_st"

# Dot1q Tunnel host

- name: Configure dot1q on interface E1/12
cisco.dcnm.dcnm_interface:
fabric: "{{ ansible_fabric }}"
state: merged
config:
- name: eth1/12
type: eth
switch:
- "{{ ansible_switch1 }}"
deploy: true
profile:
admin_state: true
mode: dot1q
access_vlan: 41
description: "ETH 1/12 Dot1q Tunnel"

# Breakout interfaces

- name: Configure breakout interface
cisco.dcnm.dcnm_interface:
fabric: "{{ ansible_svi_fabric }}"
state: merged
config:
- name: ethernet1/100
type: breakout
switch:
- "{{ ansible_switch1 }}"
deploy: true
profile:
map: 10g-4x
- name: ethernet1/101
type: breakout
switch:
- "{{ ansible_switch1 }}"
deploy: true
profile:
map: 10g-4x
- name: ethernet1/102
type: breakout
switch:
- "{{ ansible_switch1 }}"
deploy: true
profile:
map: 10g-4x

- name: Configure breakout interface
cisco.dcnm.dcnm_interface:
fabric: "{{ ansible_svi_fabric }}"
state: deleted
config:
- name: ethernet1/100
type: breakout
switch:
- "{{ ansible_switch1 }}"
- name: ethernet1/101
type: breakout
switch:
- "{{ ansible_switch1 }}"
- name: ethernet1/102
type: breakout
switch:
- "{{ ansible_switch1 }}"

# QUERY

- name: Query interface details
Expand Down
2 changes: 1 addition & 1 deletion galaxy.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
namespace: cisco
name: dcnm
version: 3.7.0
version: 3.8.0
readme: README.md
authors:
- Shrishail Kariyappanavar <nkshrishail>
Expand Down
15 changes: 15 additions & 0 deletions playbooks/roles/dcnm_interface/dcnm_hosts.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
all:
vars:
ansible_user: "admin"
ansible_password: "password"
ansible_python_interpreter: python
ansible_httpapi_validate_certs: False
ansible_httpapi_use_ssl: True
children:
ndfc:
vars:
ansible_connection: ansible.netcommon.httpapi
ansible_network_os: cisco.dcnm.dcnm
hosts:
nac-ndfc1:
ansible_host: 10.0.55.128
Loading