If you spend enough time building out VMware Cloud Foundation (VCF) in a lab, Proof of Concept, or nested environment, you will eventually hit “The Wall.”
You know the hardware works. You know the ESXi versions will play nicely together. But SDDC Manager’s automated guardrails, the strict Hardware Compatibility List (HCL) checks and VVS (VMware Validated Solutions) interoperability validations throw up a red flag and stop your deployment or upgrade dead in its tracks.
VCF is designed to be rigid for stability in production. But in a lab, sometimes you just need to force things through to test a specific feature or scenario.
Today, I’m sharing a quick shell script that modifies the LCM and Domain Manager configurations on the SDDC Manager appliance to bypass these strict validation checks.
The Big Disclaimer
STOP. READ THIS FIRST.
This procedure is not supported by VMware GSS for production environments. These guardrails exist to prevent you from building an unstable or unsupportable environment.
By running this script, you are telling SDDC Manager to ignore safety checks.
- Do not run this in production.
- Only use this in labs, POCs, or nested environments where you accept the risk of instability.
- Always take a snapshot of your SDDC Manager VM before proceeding.
What Does The Script Do?
The script targets two main guardrails within the SDDC Manager appliance:
1. The LCM Compatibility Check
The Lifecycle Manager (LCM) consults the VMware Compatibility Guide to ensure your hardware (servers, I/O cards, drives) is validated for the target VCF version.
- The config modified:
/opt/vmware/vcf/lcm/lcm-app/conf/compatibility.flag - The action: By adding the flag
vcf.compatibility.controllers.compatibilityCheckEnabled=false, we tell LCM to skip this HCL lookup.
2. The Domain Manager VVS Validation
The Domain Manager handles the creation and expansion of Workload Domains. It has internal checks to ensure your configuration adheres to VMware Validated Solutions (VVS) interoperability standards.
- The config modified:
/etc/vmware/vcf/domainmanager/application-prod.properties - The action: By adding
vcf.domainmanager.validation.enableVvsInteropValidation=false, we loosen constraints related to interop validation during domain operations.
The “Quick & Dirty” Commands
If you just want to copy-paste the raw commands right into your SSH session as root, here is what you need to do. It appends the necessary flags to the config files and restarts the relevant services to apply the changes.
echo "vcf.compatibility.controllers.compatibilityCheckEnabled=false" >> /opt/vmware/vcf/lcm/lcm-app/conf/compatibility.flag
systemctl restart lcm
echo "vcf.domainmanager.validation.enableVvsInteropValidation=false" >> /etc/vmware/vcf/domainmanager/application-prod.properties
systemctl restart domainmanager.service
The “Better” Way (Reusable Script)
If you are frequently tearing down and rebuilding labs, it’s better to wrap this into a reusable script with a few basic safety checks (like ensuring you are root and creating backups of the config files before modifying them).
Here is a version of the process script:
#!/bin/bash
# Title: disable-vcf-validations.sh
# Description: Disables LCM compatibility check and Domain Manager VVS interop validation on SDDC Manager.
# NOTE: FOR LAB USE ONLY. NOT SUPPORTED IN PRODUCTION.
# 1. Ensure running as Root
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit 1
fi
echo "--- Starting VCF Validation Bypass ---"
# 2. Disable LCM Compatibility Check
LCM_CONF="/opt/vmware/vcf/lcm/lcm-app/conf/compatibility.flag"
if [ -f "$LCM_CONF" ]; then
echo "Backing up LCM config..."
cp "$LCM_CONF" "${LCM_CONF}.bak"
echo "Disabling LCM Compatibility Check flag..."
echo "vcf.compatibility.controllers.compatibilityCheckEnabled=false" >> "$LCM_CONF"
echo "Restarting LCM service..."
systemctl restart lcm
else
echo "Error: LCM config file not found at $LCM_CONF"
fi
echo "------------------------------------"
# 3. Disable Domain Manager VVS Validation
DM_PROPS="/etc/vmware/vcf/domainmanager/application-prod.properties"
if [ -f "$DM_PROPS" ]; then
echo "Backing up Domain Manager properties..."
cp "$DM_PROPS" "${DM_PROPS}.bak"
echo "Disabling VVS Interop Validation flag..."
echo "vcf.domainmanager.validation.enableVvsInteropValidation=false" >> "$DM_PROPS"
echo "Restarting Domain Manager service..."
systemctl restart domainmanager.service
else
echo "Error: Domain Manager properties not found at $DM_PROPS"
fi
echo "--- Finished. Validations disabled. ---"
How to use it:
- SSH into your SDDC Manager appliance using the
vcfuser and su toroot. - Create a file named
disable-vcf-validations.sh. - Paste the script code above into the file.
- Make it executable:
chmod +x disable-vcf-validations.sh. - Run it:
./disable-vcf-validations.sh.
Once the services restart, retry the operation that was previously blocked in the SDDC Manager UI. Happy labbing!
