Add Host to Cluster fails at "Validate IP Address Availability for Edge Overlay (TEP) IP Assignment" due to VDS NSX-T configuration mismatch in SDDC Manager
search cancel

Add Host to Cluster fails at "Validate IP Address Availability for Edge Overlay (TEP) IP Assignment" due to VDS NSX-T configuration mismatch in SDDC Manager

book

Article ID: 427914

calendar_today

Updated On:

Products

VMware SDDC Manager VMware NSX VMware Cloud Foundation

Issue/Introduction

  • When attempting to add a host to an existing cluster via the SDDC Manager API or UI, the task fails during the "Validate IP Address Availability for Edge Overlay (TEP) IP Assignment" validation phase.
  • SDDC Manager UI Error
    Description	Validate IP Address Availability for Edge Overlay (TEP) IP Assignment
    Progress Messages	Failed to validate the provided spec with error [Failed to validate IP assignment scheme of the cluster sample-wld-cluster01 using existing host in the cluster existing_esxi01.example.com]
    Error Message: Failed to validate the provided spec with error [Failed to validate IP assignment scheme of the cluster sample-wld-cluster01 using existing host in the cluster existing_esxi01.example.com]

     

  • Error in /var/log/vmware/vcf/domainmanager/domainmanager.log in SDDC Manager
    ERROR [vcf_dm,696...........................] [c.v.v.h.s.v.HostSpecValidator,dm-exec-17]  Failed to fetch IP address pool details from NSX-T cluster nsxt-vip.example.com
    java.lang.IllegalStateException: Unable to find any hostswitch by vcenter UUID 50 ## ## ## ## ## ## ##-## ## ## ## ## ## ## ea in the transport node existing_esxi01.example.com
            at com.vmware.vcf.common.fsm.plugins.nsxt.helpers.NsxtUtils.lambda$getTransportNodeHostSwitchByName$25(NsxtUtils.java:653)
    		
    ERROR [vcf_dm,696...........................] [c.v.v.h.a.h.NsxtIpAssignmentValidationAction,dm-exec-17]  Failed to validate that the IP pool configured for the cluster has enough IP addresses
    com.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Failed to validate the provided spec with error [Failed to validate IP assignment scheme of the cluster sample-wld-cluster01 using existing host in the cluster existing_esxi01.example.com]

     

  • Following steps in KB Cluster expansion (add host) fails if the cluster transport nodes are not configured with overlay transport zone  do not resolve the issue
  • VDS with NSXT Switch is vCenter inventory is not matching with the vds config in SDDC Manager database

Environment

  • VMware Cloud Foundation (VCF)
  • VMware SDDC Manager
  • VMware NSX-T 

Cause

  • The issue occurs when the SDDC Manager inventory database incorrectly identifies which Virtual Distributed Switch (VDS) is associated with NSX-T traffic.

  • In this scenario, the database has the is_used_by_nsxt flag set to true (t) and contains nsxt_switch_config data for a VDS (e.g., vds-02) that is not actually used for NSX in the vCenter/NSX-T manager. Conversely, the correct VDS (e.g., vds-01) is missing these attributes in the SDDC Manager database. During validation, the HostSpecValidator attempts to find the NSX HostSwitch on the wrong VDS UUID, resulting in the IllegalStateException.

Resolution

To resolve this issue, the SDDC Manager inventory must be manually updated via API to align the VDS configuration with the actual environment.

 

  1. Pre-requisite: Take a snapshot of the SDDC Manager VM.
  2. Identify the VDS IDs: Query the SDDC Manager inventory to identify the IDs for both the correct and incorrect VDS entries
    psql -h localhost -U postgres -d platform -c "\x" -c "select id,name,is_used_by_nsxt,nsxt_switch_config from vds;"


    Sample output of VDS with missing nsxt_switch_config and is_used_by_nsxt

    id						|9b####95
    name					|VDS-01
    is_used_by_nsxt			| 
    nsxt_switch_config		|
    


    Sample output of VDS with incorrect nsxt_switch_config and is_used_by_nsxt

    id						|f9####c5
    name					|VDS-02
    is_used_by_nsxt			| t
    nsxt_switch_config		| {"transportZones":[{"name":"overlay-tz-nsxt-vip.example.com","id":"eb#####12","transportType":"OVERLAY"}],"hostSwitchOperationalMode":"STANDARD"}

     

  3. Back up Current VDS Configurations
    curl http://localhost/inventory/vds/<VDS-01-ID> | json_pp > vds-01.json

     

    curl http://localhost/inventory/vds/<VDS-02-ID> | json_pp > vds-02.json

     

  4. Modify the JSON Files

    • For the correct NSX VDS (vds-01):
      • Set "isUsedByNsxt": true
      • Copy the "nsxtSwitchConfig" block (including transportZones) from the vds-02.json into this file

    • For the incorrect NSX VDS (vds-02):
      • Set "isUsedByNsxt": false.
      • Remove the "nsxtSwitchConfig" block

  5. Apply the Changes: Update the SDDC Manager inventory using a PUT request:
    curl -X PUT http://localhost/inventory/vds/<VDS-01-ID> -H 'Content-type: application/json' -H 'Accept: application/json' -d @vds-01_updated.json

     

    curl -X PUT http://localhost/inventory/vds/<VDS-02-ID> -H 'Content-type: application/json' -H 'Accept: application/json' -d @vds-02_updated.json

     

  6. Verify and Retry
    1. Restart the domain manager service
      systemctl restart domainmanager
    2. Retry the Add Host operation from the SDDC Manager UI