Manually update compatibilitySets in SDDC Manager
search cancel

Manually update compatibilitySets in SDDC Manager

book

Article ID: 327209

calendar_today

Updated On:

Products

VMware Cloud Foundation

Issue/Introduction

How to update the compatibility sets on SDDC manually, so that an upgrade bundle can be marked as applicable and available. This would be need in the scenario where the expected upgrade for a component is not showing up when selecting the required VCF version.

For example, if we are upgrading the components of a WLD to 4.4.1, and the next expected component upgrade is NSX-T 3.1.3.7.4, but instead we are seeing a vCenter or a VxRail upgrade, and possibly even that is grayed out.

 

- Logs indicate the upgrade bundle is being marked as not applicable due to a compatibility set resulting in an invalid state / non-supported state.

Example of log entries:
 

... Update with bundle: <bundle_id> results in invalid state: true
... bundle application moves the Core SDDC Software State to non-supported state
... not applicable to any domain, moving it to pending bundle list

 

 

 

Environment

VMware Cloud Foundation 3.x
VMware Cloud Foundation 4.x

Cause

This is due to a missing or unexpected compatibility set combination of the various components involved, namely VCENTER, ESX_HOST and NSX_T_MANAGER / NSX_MANAGER.

Resolution

Confirm if the upgrade of the individual component is compatible with the existing versions of the other components : https://interopmatrix.vmware.com/Interoperability

If the product versions are compatible, manually update the compatibilitySets, using the following procedure:

0. Take a snapshot of the SDDC Manager.

1. SSH to the SDDC manager with the vcf user, and then su root.

2.Verify that manifestPolling is set to false.

vi /opt/vmware/vcf/lcm/lcm-app/conf/application-prod.properties
lcm.core.enableManifestPolling=false

3.Cycle the lcm service (Only needed if you changed the Manifest Polling value to false)

systemctl restart lcm


4. Copy the softwareCompatibilitySets.json to the upload location:

cp -p /nfs/vmware/vcf/nfs-mount/bundle/softwareCompatibilitySets.json /nfs/vmware/vcf/nfs-mount/bundle/depot/local/


5. Edit the softwareCompatibilitySets.json to add the required set:

vi /nfs/vmware/vcf/nfs-mount/bundle/depot/local/softwareCompatibilitySets.json 

For example:


6. Update the ownership and permissions of the directory and its contents:

chmod -R 777 /nfs/vmware/vcf/nfs-mount/bundle/depot/local
chown -R vcf_lcm:vcf /nfs/vmware/vcf/nfs-mount/bundle/depot/local


7. Use API to update the compatibilitySet using the edited JSON:

curl -X PUT http://localhost/lcm/bundle/upload/compatibilitySets -H "Content-Type: application/json"


8. Restart the LCM service:

systemctl restart lcm


9. The compatibiltySet should no longer cause a non-supported state.
Login to the SDDC Manager UI and check the updates tab for the required WLD.

10.After the upgrades complete you should change the manifestPolling back to true and cycle the lcm service for the change to take effect. 

vi /opt/vmware/vcf/lcm/lcm-app/conf/application-prod.properties
lcm.core.enableManifestPolling=true

 

 

Additional Information

https://docs.vmware.com/en/VMware-Cloud-Foundation/4.4/com.vmware.vcf.vxrail.doc/GUID-7925F6DD-2008-4CCA-87ED-0AA12BC56EE5.html

 


Impact/Risks:

MINIMAL: We are going to make changes to the softwareCompatibilitySets.json and use a PUT API command to update the sets in the SDDC DB. A snapshot of the SDDC Manager is recommended, should we need to revert to a state prior to making these changes.