Skip to content

Issue with Manual Allocation and Spine Role Loopbacks #662

@malriddell

Description

@malriddell

Ansible Version

ansible [core 2.16.3]
  config file = /Users/sriddell/Documents/PycharmProjects/services-as-code/netascode/sac-vxlan-as-code/nac-ndfc/ansible.cfg
  configured module search path = ['/Users/sriddell/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/sriddell/.pyenv/versions/3.12.10/envs/sac-ndfc-clean/lib/python3.12/site-packages/ansible
  ansible collection location = /Users/sriddell/.pyenv/versions/3.12.10/envs/sac-ndfc-clean/lib/python3.10/site-packages/ansible/collections:/Users/sriddell/Documents/PycharmProjects/services-as-code/netascode/sac-vxlan-as-code/nac-ndfc/collections/ansible_collections
  executable location = /Users/sriddell/.pyenv/versions/sac-ndfc-clean/bin/ansible
  python version = 3.12.10 (main, Oct  6 2025, 14:37:51) [Clang 17.0.0 (clang-1700.3.19.1)] (/Users/sriddell/.pyenv/versions/3.12.10/envs/sac-ndfc-clean/bin/python3.12)
  jinja version = 3.1.6
  libyaml = True

Ansible Collection Versions

# /.pyenv/versions/3.12.10/envs/sac-ndfc-clean/lib/python3.10/site-packages/ansible/collections/ansible_collections
Collection         Version  
------------------ ---------
ansible.netcommon  7.1.0    
ansible.posix      2.0.0    
ansible.utils      5.1.2    
cisco.dcnm         3.9.1-dev
cisco.nac_dc_vxlan 0.5.1-dev
community.general  10.1.0   

# /netascode/sac-vxlan-as-code/nac-ndfc/collections/ansible_collections
Collection         Version  
------------------ ---------
ansible.netcommon  7.1.0    
ansible.posix      2.0.0    
ansible.utils      5.1.2    
cisco.dcnm         3.9.1-dev
cisco.nac_dc_vxlan 0.5.1-dev
community.general  10.1.0

Cisco Nexus Dashboard Version

4.1.1g

Cisco NX-OS Version

10.5(2)

Which role is this issue related to?

cisco.nac_dc_vxlan.validate

Which section of the data model is this issue related to?

vxlan.topology

Expected Behavior

The VTEP Interface (in my case Loopback1) should not be deployed on a switch set in a Spine role.  It does not need to be configured.

Actual Behavior

The code throws an error in the validate code section on Rule 208.

Ansible Playbook

The File is /collections/ansible_collections/cisco/nac_dc_vxlan/roles/validate/files/rules/ibgp_vxlan/208_manual_ipaddress_allocation.py
The lines are 

            if not vtep_loopback_found:
                cls.results.append(
                    f"Switch '{switch_name}' is missing a configured interface '{vtep_loopback_name}' with an IPv4 address."
                )

It needs to account for the Spine Role.

Data Model

vxlan:
  topology:
    switches:
      - name: Site-2_Spine-1
        serial_number: 9U936UZR9AZ
        role: spine
        management:
          default_gateway_v4: 192.168.102.1
          management_ipv4_address: 192.168.102.5
          subnet_mask_ipv4: 24
        routing_loopback_id: 0
        interfaces:
          - name: loopback0
            mode: loopback
            description: "Routing loopback interface"
            enabled: true
            vrf: default
            ipv4_address: 10.2.0.1

Steps to Reproduce

Set the model to use manual allocation and then do not include a VTEP loopback on the Spine Switch.

Relevant Debug Output

TASK [cisco.nac_dc_vxlan.validate : Perform Required Syntax and Semantic Model Validation] *****************************************************************
task path: /Users/sriddell/Documents/PycharmProjects/services-as-code/netascode/sac-vxlan-as-code/nac-ndfc/collections/ansible_collections/cisco/nac_dc_vxlan/roles/validate/tasks/sub_main.yml:65
Semantic error, rule 208: Verify IP address when manual_underlay_allocation is true (["Switch 'Site-2_Spine-2' is missing a configured interface 'loopback1' with an IPv4 address.", "Switch 'Site-2_Spine-1' is missing a configured interface 'loopback1' with an IPv4 address."])

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions