Bug 1562546 - FFU: updating stack outputs fails on environments using OS::TripleO::NodeExtraConfig customizations with resources.NodeExtraConfig: Property error: resources.PreDeployDeployment.properties: Property name not assigned
Summary: FFU: updating stack outputs fails on environments using OS::TripleO::NodeExtr...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: beta
: 13.0 (Queens)
Assignee: Jose Luis Franco
QA Contact: Gurenko Alex
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-03-31 21:47 UTC by Marius Cornea
Modified: 2018-06-27 13:50 UTC (History)
11 users (show)

Fixed In Version: openstack-tripleo-heat-templates-8.0.2-10.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-06-27 13:49:35 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1766908 0 None None None 2018-04-25 15:27:16 UTC
OpenStack gerrit 564773 0 None None None 2018-05-03 08:10:16 UTC
Red Hat Product Errata RHEA-2018:2086 0 None None None 2018-06-27 13:50:27 UTC

Description Marius Cornea 2018-03-31 21:47:22 UTC
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:

Comment 3 Lukas Bezdicka 2018-04-11 14:39:31 UTC
  PreDeployDeployment:
    type: OS::Heat::SoftwareDeployment
    properties:
< here you are missing name: "whatever" >
      server: {get_param: server}
      config: {get_resource: PreDeployConfig}

Comment 4 Jose Luis Franco 2018-04-12 05:21:57 UTC
@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.

Comment 5 Marius Cornea 2018-04-12 17:46:09 UTC
(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.

Comment 6 Lukas Bezdicka 2018-04-18 15:20:06 UTC
We need to update docs for this to make sure you always have the name property set in your templates.

Comment 7 Dan Macpherson 2018-04-19 04:20:36 UTC
If this OSP13 only?

Comment 8 Dan Macpherson 2018-04-19 04:30:25 UTC
Also, is there any relevance to the name i.e. do users have to make it something specific?

Comment 9 Steven Hardy 2018-04-25 15:04:26 UTC
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?

Comment 10 Jose Luis Franco 2018-04-25 15:29:56 UTC
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

Comment 17 errata-xmlrpc 2018-06-27 13:49:35 UTC
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


Note You need to log in before you can comment on or make changes to this bug.