When creating a new workload domain with shared NSX from the SDDC Manager it fails with the error "Failed to validate domain spec".
The following error can be observed in the /var/log/vmware/vcf/domainmanager/domainmanager.log
:yyyy-dd-mmThh:mm:ss ERROR [vcf_dm,23b12c16a07b4996,19a1] [c.v.e.s.e.h.LocalizableRuntimeExceptionHandler,http-nio-127.0.0.1-7200-exec-2] [OO7RGH] PUBLIC_DOMAINSPEC_VALIDATION_FAILED Failed to validate domain spec
yyyy-dd-mmThh:mm:ss DEBUG [vcf_dm,23b12c16a07b4996,19a1] [c.v.e.s.e.h.LocalizableRuntimeExceptionHandler,http-nio-127.0.0.1-7200-exec-2] Handler Error Response: {"errorCode":"PUBLIC_DOMAINSPEC_VALIDATION_FAILED","arguments":[],"message":"Failed to validate domain spec","nestedErrors":[{"errorCode":"INCOMPATIBLE_SHARING_OF_NSX_FOR_NON_ISOLATED_WLD","arguments":["xxxxxxxxxxxxxx","[XXXXXXXXX]"],"message":"NSX xxxxxxxxxxxxxxxx be shared as it is used by other incompatible domains [XXXXXXXX]. NSX can be shared only between non-Isolated WLDs. Please provide a new NSX spec."}],"referenceToken":"OO7RGH"}
VMware Cloud Foundation 5.x
Field is_management_sso_domain
is set to false
for the affected WLD before.
Note: Please take a snapshot of the SDDC Manager VM before making changes in the SDDC DB.
Resolution:
1. SSH into the SDDC Manager as the vcf
user, then switch to the root
user by running:
su -
2. Enter the SDDC Manager DB:
/usr/pgsql/13/bin/psql -h localhost -U postgres
3. Check if the value of is_management_sso_domain is set as false:
select * from domain;
An output similar to the below shows up:
| id | creation\_time | modification\_time | name | organization | status | type | vra\_integration\_status | vrops\_integration\_status | vrli\_integration\_status | sso\_id | sso\_name | is\_management\_sso\_domain | dfw\_configuration |
| ------------------------------------ | -------------- | ------------------ | ----------- | ------------ | ------ | ---------- | ------------------------ | -------------------------- | ------------------------- | ------------------------------------ | ------------- | --------------------------- | ------------------ |
| xxxxxxxxxx | 1723033491979 | 1723033491979 | sddcId-1001 | COM | ACTIVE | MANAGEMENT | | | | xxxxxxxxxx | vsphere.local | t | |
| xxxxxxxxxx | 1723282831176 | 1723282831176 | vi-vsan | COM | ACTIVE | VI | | | | xxxxxxxxxx | vsphere.local | f | |
4. Run the following command:
/usr/pgsql/13/bin/psql -h localhost -U postgres -d platform -c "update domain set is_management_sso_domain ='t' where id = 'XXXXXX-XXXXXX-XXXXX-XXXX-XXXX'"
where id is the WLD id in the domainmanager
logs.
After updating the value of is_management_sso_domain
to true
for the shared WLD, the WLD creation task could be completed successfully.