Description of problem: FFU: updating stack outputs fails on environments using OS::TripleO::NodeExtraConfig customizations with resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned Version-Release number of selected component (if applicable): openstack-tripleo-heat-templates-8.0.2-0.20180327213843.f25e2d8.el7ost.noarch How reproducible: 100% Steps to Reproduce: 1. Deploy OSP10 with OS::TripleO::NodeExtraConfig customizations 2. Upgrade undercloud to OSP11/12/13 3. Update heat stack output with: openstack overcloud deploy --templates /usr/share/openstack-tripleo-heat-templates \ --overcloud-ssh-user admin \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-management.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml \ -e ~/openstack_deployment/environments/centralci-prod-customisations.yaml \ -e ~/openstack_deployment/environments/nodes.yaml \ -e ~/openstack_deployment/environments/network-environment.yaml \ -e ~/openstack_deployment/environments/disk-layout.yaml \ -e ~/openstack_deployment/environments/scheduler_hints_env.yaml \ -e ~/openstack_deployment/environments/ips-from-pool-all.yaml \ -e ~/openstack_deployment/environments/neutron-settings.yaml \ -e /home/stack/virt/docker-images.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/fast-forward-upgrade.yaml \ -e /home/stack/ffu_repos.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/config-download-environment.yaml \ -e /home/stack/ceph-ansible-env.yaml \ Actual results: stack update fails with: (undercloud) [stack@undercloud-0 ~]$ openstack stack failures list overcloud --long overcloud.Controller.1.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: 5b610778-28e7-442e-ac29-9b53bd3223ce status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.Controller.0.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: d5ab50c3-a6c9-4439-bb46-9963aeba7ea7 status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.Controller.2.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: 212a7d09-742f-4ad7-a267-c5e018d446d0 status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.Compute.1.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: d770153f-9d78-4993-b812-74e2449c924f status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.Compute.0.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: 3bfafc3a-7de3-43c6-8f8f-8a3ebc9ec7f7 status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.CephStorage.1.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: 7d50364e-efd4-4cfa-a551-a4d35f63db55 status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.CephStorage.0.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: 5e8e6633-66ff-4624-bc51-c8d8e14c0d7f status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned overcloud.CephStorage.2.NodeExtraConfig: resource_type: OS::TripleO::NodeExtraConfig physical_resource_id: c8d211c0-4770-4043-9300-838fd641772b status: UPDATE_FAILED status_reason: | resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned Expected results: stack update succeeds Additional info:
PreDeployDeployment: type: OS::Heat::SoftwareDeployment properties: < here you are missing name: "whatever" > server: {get_param: server} config: {get_resource: PreDeployConfig}
@Marius, have you tried adding the name property as Lukas mentioned? I will close it as this seems a misconfiguration, if it's still occurring after feel free to re-open it.
(In reply to Jose Luis Franco from comment #4) > @Marius, have you tried adding the name property as Lukas mentioned? I will > close it as this seems a misconfiguration, if it's still occurring after > feel free to re-open it. I don't think we can consider this a misconfiguration. Deployment passed fine without the name property and also it is how we advertise to apply these kind of customization in the product docs: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/advanced_overcloud_customization/chap-configuration_hooks#sect-Customizing_Overcloud_PreConfiguration_All This means that environments out there in production are already deployed without the name property in the template. If there is no possible way to cover this issue automatically in code and we go to the documentation route then I think we need to answer these questions: 1. How does the operator know before starting the upgrade that it will fail because of the resource missing the name property. Provide a way to identify all the environments files which require this change. 2. At which point in the upgrade workflow does the operator need to adjust the templates and add the name property? Ideally I think we should fix this automatically in code to avoid the user doing yet another manual step during the upgrade procedure.
We need to update docs for this to make sure you always have the name property set in your templates.
If this OSP13 only?
Also, is there any relevance to the name i.e. do users have to make it something specific?
I suspect this is because FFU enables the config-download overrides to the *Deployment heat resources e.g: https://github.com/openstack/tripleo-heat-templates/blob/master/config-download-software.yaml#L5 https://github.com/openstack/tripleo-heat-templates/blob/master/config-download-structured.yaml the "name" parameter in both of these is mandatory, which I suspect is a bug, if we add a default to each of those files is the problem resolved?
Thank you @Steve, that makes total sense and its a better solution than modifying the documentation, as there are no real changes in the SoftwareDeployment resource properties for queens: https://docs.openstack.org/heat/queens/template_guide/openstack.html#OS::Heat::SoftwareDeployment
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://access.redhat.com/errata/RHEA-2018:2086