Bug 1613024

Summary: [RFE] TripleO-Validations should warn when included environment files override one another
Product: Red Hat OpenStack Reporter: Dan Sneddon <dsneddon>
Component: openstack-tripleo-validationsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED WONTFIX QA Contact: nlevinki <nlevinki>
Severity: medium Docs Contact:
Priority: medium    
Version: 14.0 (Rocky)CC: beth.white, flfuchs, jbuchta, jjoyce, jrist, jschluet, slinaber, tvignaud
Target Milestone: Upstream M3Keywords: FutureFeature, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: NeedsAllocation
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-20 10:47:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dan Sneddon 2018-08-06 19:15:24 UTC
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: