After reviewing the config files in config/general_config/*.yml it seems like we are duplicating some config w/o good cause. The overcloud topology can be an atomic independent configuration from the rest of the configuration options.
Additionally, some configurations do not use the typical overcloud topology variable "overcloud_nodes" for instance ovb based jobs. It would be nice to share the general configuration options with ovb or libvirt provisioners.
Proposal: Create a topology and provisioner config files.
Topology:
This config would live in config/topology/[minimal,ha,ha_big].yml
Topology is defined as the number of overcloud nodes, the specific memory, cpu and hardware attributes of the nodes.
Provisioner:
This config would live in config/provisioner/[virthost/libvirt, ovb, nodepool].yml
This configuration would contain the configuration required to start nodes in the environment in question. This *would* include any common configuration specific to a type of an environment that is common across various configurations in that environment.
This would specifically *not* contain information about the number or size ( cpu, memory) of the nodes. Authentication information is also excluded from this configuration.
OVB provisioner example... the following duplicate keys were found across configurations.
config/provisioner/qeos7_ovb.yml >
environment_type: ovb_host_cloud
overcloud_nodes:
undercloud_type: ovb
hw_env: ovb_host_cloud
enable_vbmc: false
ovb_setup_connectivity: true
hostname_correction: true
# note that ovb topology is different than a libvirt topology.
config/topology/ovb_ha.yml >
node_count: 4
topology: >-
--control-scale 3
testing a bit of this out in /review. openstack. org/#/c/ 425451/ /review. openstack. org/#/c/ 425453/
https:/
https:/