SDDC manager backup failure due to missing ip address field for imported edge nodes in VC
search cancel

SDDC manager backup failure due to missing ip address field for imported edge nodes in VC

book

Article ID: 450371

calendar_today

Updated On:

Products

VMware Cloud Foundation VMware NSX

Issue/Introduction

When Edge Clusters are created via NSX Manager and imported after the initial 9.0 deployment, the import process fails to include the management_ip_address field for the edge nodes. Consequently, SDDC Manager backups will fail in environments that contain these imported out-of-band edge nodes.

Environment

Imported Edge Clusters.

Resolution

  1. Get the NSX-T Edge Cluster from the inventory by ID. Run the following curl command to retrieve the cluster data and output it to a file:

    curl localhost/inventory/nsxt-edgeclusters?id=<EDGE_CLUSTER_ID> | jq > edge_cluster.json

    Example Output (cat edge_cluster.json):
    [ 
    {
      "clusterIds": [
        "<VSPHERE_CLUSTER_ID>"
      ],
      "nsxtClusterId": "<NSXT_CLUSTER_ID>",
      "id": "<EDGE_CLUSTER_ID>",
      "edgeClusterNsxtId": "<EDGE_CLUSTER_NSXT_ID>",
      "name": "<EDGE_CLUSTER_NAME>",
      "status": "ACTIVE",
      "nsxtEdgeNodes": [
        {
          "id": "<EDGE_NODE_1_ID>",
          "hostName": "<EDGE_NODE_1_FQDN>",
          "edgeNodeNsxtId": "<EDGE_NODE_1_NSXT_ID>"
        },
        {
          "id": "<EDGE_NODE_2_ID>",
          "hostName": "<EDGE_NODE_2_FQDN>",
          "edgeNodeNsxtId": "<EDGE_NODE_2_NSXT_ID>"
        }
      ],
      "isTier0ManagedBySystem": true,
      "skipTepRoutabilityCheck": false,
      "originType": "CLASSIC",
      "applianceType": "EDGE_NODE"
    }
    ]


  2. Update the NSX-T edge cluster payload. Update the edge_cluster.json file generated in Step 1. Add the managementIpAddress field for each node in the nsxtEdgeNodes array.
    Note: Remove the outer array brackets [ ] from the beginning and end of the JSON file so the root element is a dictionary { }.

    Example Updated edge_cluster.json:
    {
    "clusterIds": [
      "<VSPHERE_CLUSTER_ID>"
    ],
    "nsxtClusterId": "<NSXT_CLUSTER_ID>",
    "id": "<EDGE_CLUSTER_ID>",
    "edgeClusterNsxtId": "<EDGE_CLUSTER_NSXT_ID>",
    "name": "<EDGE_CLUSTER_NAME>",
    "status": "ACTIVE",
    "nsxtEdgeNodes": [
      {
        "id": "<EDGE_NODE_1_ID>",
        "hostName": "<EDGE_NODE_1_FQDN>",
        "managementIpAddress": "<EDGE_NODE_1_IP>",
        "edgeNodeNsxtId": "<EDGE_NODE_1_NSXT_ID>"
      },
      {
        "id": "<EDGE_NODE_2_ID>",
        "hostName": "<EDGE_NODE_2_FQDN>",
        "managementIpAddress": "<EDGE_NODE_2_IP>",
        "edgeNodeNsxtId": "<EDGE_NODE_2_NSXT_ID>"
      }
    ],
    "isTier0ManagedBySystem": true,
    "skipTepRoutabilityCheck": false,
    "originType": "CLASSIC",
    "applianceType": "EDGE_NODE"
    }
  3. Push the updated JSON payload back to the SDDC Manager using the following curl command:

    curl -X PUT -H "Content-Type: application/json" --data @edge_cluster.json localhost/inventory/nsxt-edgeclusters/<EDGE_CLUSTER_ID> | jq

  4. Verify that the edge node IP addresses are now updated correctly.
    1. First, obtain the domain ID:

      curl localhost/inventory/domains | jq

    2. Use the domain ID to verify the edge node IPs appear correctly in the response:

      curl localhost/inventory/domains/<DOMAIN_ID>/inventory | jq

  5. Repeat the previous steps for any other edge clusters that have imported edge nodes with missing IP addresses.

Once all missing IPs are updated, retry the SDDC Manager backup workflow from the UI.