When using composable roles with a custom roles_data.yaml that does not have a CephStorage role any stack-update's fail with: Parameter 'CephStorageCount' was not found in existing stack The same is true for the other default role names as well. This is due to the hardcoded role names in tripleoclient at: https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/overcloud_deploy.py#L750 When that default dict is passed to check_node_count in utils.py, this exception is raised if these parameter names do not exist in the stack, which they won't if you have removed them from your customized roles_data.yaml.
The workaround here would be to add the default role names to the custom roles data with a CountDefault set to 0.
I've posted an upstream patch, but leaving in ASSIGNED for now until I get some feedback on the approach.
This is usability issue but will hit every user on every single stack-update operation if he customized roles. Therefor blocker for OSP10.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-2948.html