Description of problem:
The CLI should make sure that GUI users will also see what environment files and customizations were passed to the deployment. Currently, if a deployment was made from the CLI and then a user opens the GUI - the plan configuration will not reflect the environments that were used.
The CLI should:
1) Create the plan-environment.yaml in the swift container, same as the GUI does
2) Populate the "environments:" section with the environment files that were used in the command line
3) Populate the "parameter_defaults:" section with the counts (e.g. ControllerCount, ComputeCount etc') and flavors (e.g. OvercloudControllerFlavor, OvercloudComputeFlavor etc')
4) Populate whatever other default parameters that were passed in the environments that were listed on the command line (e.g. the SSL certificates if they were provided, and more...)
5) Resource mappings are currently not possible and not supported in the GUI, so a specific solution is needed to support saving resource mappings in the plan in swift
A CLI user who didn't save the deployment command of the initial overcloud deployment, and later needs to know what command was used in order to do the upgrades, should be able to find all the info in the plan - same as GUI users can.
Updating an overcloud deployment should be possible by editing the files stored in swift, and running the "openstack overcloud plan deploy" command, even if the initial deployment was not done from the GUI.
I agree this is really important, both for parity between the UI and CLI as well as to improve the user experience.
Steve Hardy has been doing a ton of work around this, mainly to stop the CLI from merging environments before deploying, which is causing a number of issues and differences when deploying with the UI vs CLI:
There's a couple dozen patches in there, many merged already so I'll only link to the ones that are still open.
The CLI already creates a plan-environment.yaml file which is informative enough to reconstruct the deployment command. The GUI won't always realize that the environment files that were used from the file system are equivalent the ones in capabilities-map.yaml.