Bug 1258795

Summary: [Docs] [Director] NeutronExternalBridgeConfiguration parsed as a dict, however, heat expects string
Product: Red Hat OpenStack Reporter: Pawel Koniszewski <pawel.koniszewski>
Component: documentationAssignee: Dan Macpherson <dmacpher>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: adahms, dsneddon, mburns, pawel.koniszewski, rhel-osp-director-maint, rybrown, yeylon, zbitter
Target Milestone: y1Keywords: Documentation, Reopened
Target Release: 7.0 (Kilo)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-10-12 04:14: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:

Description Pawel Koniszewski 2015-09-01 10:10:32 UTC
Description of problem:
I'm trying to deploy setup with Neutron configured with vxlans. Documentation says that I should provide NeutronExternalBridgeConfiguration: # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex

So when I set this parameter in network-environment.yaml to:
NeutronExternalNetworkBridge: 
  default: "br-ex"
  type: string
heat fails with an error that NeutronExternalNetworkBridge should be a string. 

This is what Heat received:
"NeutronExternalNetworkBridge": "{u'default': u'br-ex', u'type': u'string'}"

And this is what Heat expects:
"NeutronExternalNetworkBridge": "br-ex"

To workaround this issue I've added:
'NeutronExternalNetworkBridge': 'br-ex',
to dict of parameters in overcloud_deploy.py.

How reproducible:
100%

Steps to Reproduce:
1. Add 
NeutronExternalNetworkBridge:
  default: "br-ex"
  type: string
To network-environment.yaml
2. Try to deploy overcloud with vxlans

Actual results:
Stack create failed, controllers failed to deploy.

Expected results:
Stack deployed successfully with network configured on br-ex

Comment 3 chris alfonso 2015-09-02 16:11:36 UTC
That is an illegal value you provided. The workaround you provided is the actual correct thing to do.

Comment 4 Pawel Koniszewski 2015-09-02 16:40:23 UTC
Chris, I'm sure that there is a bug somewhere basing on documentation (section 6.2.5.2):

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/html/Director_Installation_and_Usage/sect-Scenario_2_Using_the_CLI_to_Create_a_Basic_Overcloud.html#sect-Isolating_the_External_Network

It says that default value for NeutronExternalNetworkBridge is:

NeutronExternalNetworkBridge: default: "''"

however it is not a legal value. It also says that it can be changed to:

NeutronExternalNetworkBridge: default: "br-ex"

and it is even worse. Correct value is:

NeutronExternalNetworkBridge:
  default: "br-ex"
  type: string

but the way it is parsed is wrong. Are you saying that user should MANUALLY edit overcloud_deploy.py to configure network on br-ex?

Marking back as a new bug as I don't understand explanation.

Comment 5 Zane Bitter 2015-09-02 17:21:27 UTC
That looks like a docs bug. The format you're trying to use is the way to specify the parameter schema in a template, but the environment only includes parameter *values*. Likely the error crept in while copying and pasting from one to the other. The docs should say:

    NeutronExternalNetworkBridge: "''"

Comment 7 Dan Sneddon 2015-09-02 17:34:20 UTC
(In reply to Pawel Koniszewski from comment #4)

Pawel,

You are correct, the documentation is incorrect. As mentioned, this should work:

parameter_defaults:
  NeutronExternalNetworkBridge: "''"

I will work with the documentation team to get this corrected as soon as possible. Thanks for catching that and reporting the bug.

Comment 8 Pawel Koniszewski 2015-09-03 06:14:53 UTC
Thanks for the explanation, I will give it a shot.

Comment 9 Andrew Dahms 2015-09-03 06:40:10 UTC
Assigning to Dan for review.

Comment 12 Dan Macpherson 2015-09-09 01:48:07 UTC
I've pushed an update to the documentation with that changes the syntax of NeutronExternalNetworkBridge. The format is now just:

  # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex
  NeutronExternalNetworkBridge: "''"

This bug is also related: https://bugzilla.redhat.com/show_bug.cgi?id=1252433

Here are the links for both the Basic and Advanced Scenarios:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/html/Director_Installation_and_Usage/sect-Scenario_2_Using_the_CLI_to_Create_a_Basic_Overcloud.html#sect-Isolating_the_External_Network

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/html/Director_Installation_and_Usage/sect-Advanced-Scenario_3_Using_the_CLI_to_Create_an_Advanced_Overcloud_with_Ceph_Nodes.html#sect-Advanced-Isolating_all_Networks_into_VLANs

Pawel -- Does this fix correct the issues you're facing? Is there any further change required?

Comment 13 Dan Macpherson 2015-10-12 04:14:40 UTC
No feedback for a month. Closing this bug.