Bug 1265436

Summary: NeutronL3HA parameter from heat is not getting passed to the neutron puppet module
Product: Red Hat OpenStack Reporter: Shiva Prasad Rao <shivrao>
Component: openstack-tripleo-heat-templatesAssignee: Jiri Stransky <jstransk>
Status: CLOSED NOTABUG QA Contact: Shai Revivo <srevivo>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: hbrock, jstransk, mburns, rhel-osp-director-maint, skinjo, sthillma
Target Milestone: ---Keywords: Triaged
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: n1kv
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-22 18:03:20 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:

Description Shiva Prasad Rao 2015-09-22 23:42:25 UTC
Description of problem:
NeutronL3HA parameter from heat is getting passed as a string but the neutron puppet module expects a boolean. Thus the l3_ha value is always set to true on overcloud and the value entered through heat templates is not honoured

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.deploy overcloud with NeutronL3HA set to false
2.
3.

Actual results:
l3_ha variable in neutron.conf on overcloud is set to true

Expected results:
l3_ha variable in neutron.conf on overcloud should be set to false if NeutronL3HA is set to false in heat

Additional info:

Comment 4 Mike Burns 2016-04-07 20:50:54 UTC
This bug did not make the OSP 8.0 release.  It is being deferred to OSP 10.

Comment 7 Jiri Stransky 2016-07-20 09:13:29 UTC
I think this should already be correctly wired through already in OSP 8, via this patch:

https://github.com/openstack/tripleo-heat-templates/commit/fed9d001ccc92a6d3392cb959416596b6df83d99

The confusion may come from the fact that tripleoclient automatically selects the default for NeutronL3HA based on whether the deployment has more than one controller:

https://github.com/openstack/python-tripleoclient/blob/06325dea70f43acc37b9a7d93380ef88f02efce7/tripleoclient/v1/overcloud_deploy.py#L178-L194

Try `heat stack-show overcloud | grep L3HA` on the deployment in question, you might see probably see that the parameter is in fact set to True on the Heat stack.


It should be possible to override parameter values generated by tripleoclient by passing an extra environment file to `openstack overcloud deploy` command with custom parameter values in parameter_defaults section of the environment file.

Comment 9 Shinobu KINJO 2016-07-20 10:53:39 UTC
If it's already fixed, please specify `Fixed In Version`.

Comment 10 Jiri Stransky 2016-07-20 16:23:59 UTC
> NeutronL3HA:
>     default: 'False'
>     description: Whether to enable l3-agent HA
> 
> in:
> 
> /usr/share/openstack-tripleo-heat-templates/overcloud.yaml

The default from t-h-t doesn't get utilized because tripleoclient will feed its own default, which is higher priority than the one in tripleo-heat-templates. As i wrote in #7, tripleoclient decides the value in a smarter way based on how many controllers are being deployed, this is the expected behavior of OSP-d. Please use the environment file method i mentioned earlier, if there's desire to override the value that tripleoclient selected.

> If it's already fixed, please specify `Fixed In Version`.

I think what we've discussed so far is the expected behavior. If we discover that setting NeutronL3HA via environment files doesn't work either, please follow up and we can look into the issue further.


You mentioned the env is OSP 8, where such env file should do the job i think:

parameter_defaults:
  NeutronL3HA: False

Comment 11 Shinobu KINJO 2016-07-21 00:27:24 UTC
(In reply to Jiri Stransky from comment #10)
> > NeutronL3HA:
> >     default: 'False'
> >     description: Whether to enable l3-agent HA
> > 
> > in:
> > 
> > /usr/share/openstack-tripleo-heat-templates/overcloud.yaml
> 
> The default from t-h-t doesn't get utilized because tripleoclient will feed
> its own default, which is higher priority than the one in
> tripleo-heat-templates. As i wrote in #7, tripleoclient decides the value in
> a smarter way based on how many controllers are being deployed, this is the
> expected behavior of OSP-d. Please use the environment file method i
> mentioned earlier, if there's desire to override the value that
> tripleoclient selected.
> 
> > If it's already fixed, please specify `Fixed In Version`.
> 
> I think what we've discussed so far is the expected behavior. If we discover
> that setting NeutronL3HA via environment files doesn't work either, please
> follow up and we can look into the issue further.
> 
> 
> You mentioned the env is OSP 8, where such env file should do the job i
> think:
> 
> parameter_defaults:

I double-checked this logic. It would work as you mentioned.

>   NeutronL3HA: False

Comment 12 Jiri Stransky 2016-07-22 18:03:20 UTC
Thanks for the verification. I'm closing this as not a bug then (OSPd behaves as expected in this sense), please feel free to reopen in case there's some problem with the environment file solution.