Bug 1290050

Summary: ExtraConfig works only on controller nodes and not on compute, Ceph, etc...
Product: Red Hat OpenStack Reporter: Gaëtan Trellu <gtrellu>
Component: openstack-tripleo-heat-templatesAssignee: Steven Hardy <shardy>
Status: CLOSED ERRATA QA Contact: Marius Cornea <mcornea>
Severity: high Docs Contact:
Priority: urgent    
Version: 8.0 (Liberty)CC: clincoln, dmacpher, ggillies, gtrellu, jcoufal, jjung, johfulto, jslagle, kbasil, mburns, psanchez, racedoro, rhel-osp-director-maint, sbailleu, shardy
Target Milestone: y3   
Target Release: 7.0 (Kilo)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-0.8.6-113.el7ost Doc Type: Bug Fix
Doc Text:
The *ExtraConfig hiera data parameters did not work for non-Controller nodes. This is due to missing parameter definitions for non-Controller node types. This fix implements these parameters into the director's Heat template collection. Now the director writes the *ExtraConfig hiera data the the appropriate node types.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-18 16:47:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Rackspace templates none

Description Gaëtan Trellu 2015-12-09 15:05:13 UTC
Description of problem:

I followed the official documentation to customize Hiera data per profile.
I tried to use the NovaComputeExtraConfig but without success, data were never passed to the compute.

If we have a look in templates/puppet/compute-puppet.yaml, we can see that NovaComputeExtraConfig variable is never stored in Hiera datafile.

        hiera:
          hierarchy:
            - '"%{::uuid}"'
            - heat_config_%{::deploy_config_name}
            - compute
            - ceph_cluster # provided by CephClusterConfig
            - ceph
            - all_nodes # provided by allNodesConfig
            - RedHat # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1236143
            - common
            - cisco_n1kv_data  # Optionally provided by ComputeExtraConfigPre
          datafiles:
            common:
              raw_data: {get_file: hieradata/common.yaml}
            ceph:
              raw_data: {get_file: hieradata/ceph.yaml}
            compute:
              raw_data: {get_file: hieradata/compute.yaml}

It should be:

        hiera:
          hierarchy:
            - '"%{::uuid}"'
            - heat_config_%{::deploy_config_name}
            - compute
            - compute_extraconfig
            - ceph_cluster # provided by CephClusterConfig
            - ceph
            - all_nodes # provided by allNodesConfig
            - RedHat # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1236143
            - common
            - cisco_n1kv_data  # Optionally provided by ComputeExtraConfigPre
          datafiles:
            compute_extraconfig:
              mapped_data: {get_param: NovaComputeExtraConfig}
            common:
              raw_data: {get_file: hieradata/common.yaml}
            ceph:
              raw_data: {get_file: hieradata/ceph.yaml}
            compute:
              raw_data: {get_file: hieradata/compute.yaml}

Version-Release number of selected component (if applicable):
python-rdomanager-oscplugin-0.0.10-8.el7ost.noarch
CDN version

How reproducible:
Add extra values for NovaComputeExtraConfig in the YAML file.

Actual results:
Values are never send to the compute.

Expected results:
Values should be send to the compute.

Additional info:
Same issue with Ceph profile (I assume it's the same for Block and Swift profiles).

Comment 2 Gaëtan Trellu 2015-12-09 15:23:19 UTC
CephStorageExtraConfig is missing from templates/puppet/compute-puppet.yaml and templates/overcloud-without-mergepy.yaml files.

Comment 3 Gaëtan Trellu 2015-12-09 15:31:29 UTC
Sorry, not in templates/puppet/compute-puppet.yaml but in templates/puppet/ceph-storage-puppet.yaml

Comment 4 Emilien Macchi 2016-01-14 21:22:32 UTC
I think your bug is valid from what I see in your output.
Though when I look in tripleo-heat-templates upstream, I'm seeing
mapped_data: {get_param: CephStorageExtraConfig}
mapped_data: {get_param: NovaComputeExtraConfig}

Which is something I think you're missing.
Could we have your version of tripleo-heat-templates?

I'm going to investigate if there is an upstream patch we need to backport downstream.

Thanks!

Comment 5 Gaëtan Trellu 2016-01-20 14:20:24 UTC
Sure, please find them in attachment.

Thanks !

Comment 6 Gaëtan Trellu 2016-01-20 14:20:51 UTC
Created attachment 1116661 [details]
Rackspace templates

Comment 8 Jaromir Coufal 2016-02-03 12:25:32 UTC
Requesting blocker, but if we got no more info we won't hold on this.

Comment 9 Gaëtan Trellu 2016-02-03 14:03:21 UTC
Version: openstack-tripleo-heat-templates-0.8.6-71.el7ost.noarch

Comment 10 Steven Hardy 2016-02-03 14:31:07 UTC
This was originally reported via https://bugzilla.redhat.com/show_bug.cgi?id=1243971 which was closed.

Then https://bugzilla.redhat.com/show_bug.cgi?id=1269223 was raised, as it seems we were missing some of the patches I referenced in the original bugs downstream.

The latter bug is fixed in openstack-tripleo-heat-templates-0.8.6-78.el7ost, so given that this bug was reported against 0.8.6-71 this may be a duplicate which is now fixed?

Comment 11 Steven Hardy 2016-02-03 15:01:01 UTC
So, verifying openstack-tripleo-heat-templates-0.8.6-78.el7ost by inspection against the original list of patches I provided in bug #1243971 shows we're still missing some patches (that original bug should not have been closed without verifiction IMHO)

https://review.openstack.org/#/c/196046 - OK
https://review.openstack.org/#/c/196059/ - OK
https://review.openstack.org/#/c/202693/ - MISSING
https://review.openstack.org/#/c/202694/ - MISSING
https://review.openstack.org/#/c/202695/ - MISSING
https://review.openstack.org/#/c/197908/ - MISSING

Also https://review.openstack.org/#/c/188772/ is missing in
openstack-tripleo-puppet-elements-0.0.2-1.el7ost.noarch.rpm - we need to verify by inspection if 40-hiera-datafiles contains that fix in our images, I suspect it may not.

Comment 13 Steven Hardy 2016-02-04 06:30:36 UTC
To clarify comment #11 - NovaComputeExtraConfig will work if you upgrade to openstack-tripleo-heat-templates-0.8.6-78.el7ost, but a further update is required to enable the ExtraConfig parameters for BlockStorage, ObjectStorage and CephStorage roles.

Also, we require an update to 40-hiera-datafiles, which is only needed if you need to pass complex data structures via hieradata (lists/maps or json strings), not simple key/value pairs.

Comment 16 Marius Cornea 2016-02-16 13:24:49 UTC
I used the following custom.yaml:
 
parameter_defaults:
  NovaComputeExtraConfig:
    nova::compute::reserved_host_memory: 2048
  CephStorageExtraConfig:
    ceph::profile::params::osd_journal_size: 2048


[root@overcloud-compute-0 ~]# grep reserved_host_memory /etc/nova/nova.conf 
#reserved_host_memory_mb=512
reserved_host_memory_mb=2048

[root@overcloud-cephstorage-0 ~]# grep osd_journal_size /etc/ceph/ceph.conf
osd_journal_size = 2048

Comment 18 errata-xmlrpc 2016-02-18 16:47:40 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://rhn.redhat.com/errata/RHBA-2016-0264.html