Description of problem: If I deploy tripleo with multiple environment files that include the same default parameters with different values, the last one included wins. This can cause a surprise for the deployer. We should create a tripleo-validation which tests the included environment files for duplicate parameters/parameter_defaults and warns when one value is overridden by another file. Version-Release number of selected component (if applicable): Rocky and all previous versions How reproducible: 100% Steps to Reproduce: 1. If this is my deploy command-line: openstack overcloud deploy --templates \ -e environments/network-isolation.yaml \ -e environments/neutron-ovs-dvr.yaml \ -e network-environment.yaml \ -r roles_data.yaml \ --control-scale 1 \ --compute-scale 2 \ --control-flavor control \ --compute-flavor compute \ --ntp-server 10.1.24.11 Assume that the parameter_default for OS::TripleO::Compute::Ports::ExternalPort is different in network-isolation.yaml than it is in neutron-ovs-dvr.yaml, then the value in neutron-ovs-dvr.yaml will override the value in network-isolation.yaml. This creates different outcomes depending on which file was included last. Actual results: The deployment will either work or fail depending on the order which the environment files were included. Expected results: TripleO-Validations should warn when a parameter_default included in one environment file is overridden by another included environment file. This would help troubleshoot failed deployments and help the deployer understand what is happening. Additional info: