There is a design behavior difference between how the "host_id" is maintained in NSX 3.1.x and NSX 3.2.x (and above versions).
In NSX 3.1.x, we display "host_id" in GET transport-nodes API for edge node, even if user does not specify "host_id" at the time of deployment.
How the "host_id" is maintained in NSX 3.1.x in GET transport-nodes API for edge node.
1. If user does not specify "host_id" during Edge node deployment, then also in MP API GET https://NSX_Manager_FQDN/api/v1/transport-nodes/<edge-node-uuid> "host_id" field is shown.
2. This happens because, in 3.1.x "host_id" is displayed in GET transport-nodes API
a) from Edge intent if "host_id" is present in Edge intent (i.e. in Manager corfu database) or, b) from "host_id" which is directly fetched from realized configuration from edge node
In short, in NSX 3.1.x, irrespective of the fact that the host details was configured or not during Edge deployment, the NSX UI will continue to show the Host column populated for the Edges. In other words, there is no way by just looking at the NSX UI we can distinguish if the host details was configured or not during the Edge deployment.
In NSX 3.2.x and above versions, there is behavior change in GET transport-nodes API for edge node, as compared to NSX version 3.1.x. But there is no functional impact because of this.
How the "host_id" is maintained in NSX 3.2.x and above version in GET transport-nodes API for edge node.
1. If user does not specify "host_id" in intent at the time of Edge deployment, then "host_id" is not populated in intent. There is no functional impact because of this.
2. If user explicitly specifies "host_id" in intent at the time of Edge deployment, then only "host_id" is kept in intent.
3. In NSX 3.2.x and above versions, the "host_id" is only populated in GET transport-nodes API for an Edge node when user specifies this optional field "host_id" in Edge intent at the time of edge deployment.
In short, in NSX 3.2.x and above versions, the host column will be populated for the Edges only when we configure it during Edge deployment.
This also means if an Edge is deployed without host configured in NSX 3.1.x, we will still see the host details populated because of the design behavior how "host_id" is maintained in NSX 3.1.x and later if we upgrade to NSX 3.2.x or higher version, we will see missing host details for the Edge's that was not configured with host during the Edge deployment because of how "host_id" is maintained in NSX 3.2.x and higher version.
Resolution
In NSX 3.2.x and above versions, this is as per design and an expected behavior.
1. If user does not specify "host_id" in intent during an Edge deployment, then "host_id" is not populated in intent. There is no functional impact because of this. 2. If user explicitly specifies "host_id" in intent during an Edge deployment, then only "host_id" is kept in intent.
Impact to customer : No functional Impact.
Additional Information
The resolution requires validations in NSX Manager corfu database. Please open a case with Broadcom Support referencing this article.