Bug 1379152

Summary: Fix OpendaylightApiNetwork key naming
Product: Red Hat OpenStack Reporter: Itzik Brown <itbrown>
Component: openstack-tripleo-heat-templatesAssignee: Tim Rozet <trozet>
Status: CLOSED ERRATA QA Contact: Itzik Brown <itbrown>
Severity: high Docs Contact:
Priority: high    
Version: 10.0 (Newton)CC: dbecker, lpeer, mburns, morazi, nyechiel, rhel-osp-director-maint, trozet
Target Milestone: rcKeywords: Triaged
Target Release: 10.0 (Newton)Flags: trozet: needinfo-
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
N/A
Last Closed: 2016-12-14 16:04:59 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:
Bug Depends On:    
Bug Blocks: 1258832    

Description Itzik Brown 2016-09-25 12:53:53 UTC
Description of problem:
When deploying OSPD with the following parameters the deployment fails.

Error: Could not find data item opendaylight_api_node_ips in any Hiera data file and no default supplied at /etc/puppet/modules/tripleo/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp:45 on node compute-0.localdomain


Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-5.0.0-0.20160907212643.90c852e.2.el7ost.noarch
openstack-heat-templates-0.0.1-0.20160906185549.ac2db55.el7ost.noarch

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

The deployment execution:

openstack overcloud deploy --debug \
--templates \
--libvirt-type kvm \
--ntp-server clock.redhat.com \
--neutron-network-type vxlan \
--neutron-tunnel-types vxlan \
--control-scale 1 \
--control-flavor controller-d75f3dec-c770-5f88-9d4c-3fea1bf9c484 \--compute-scale 1 \
--compute-flavor compute-b634c10a-570f-59ba-bdbf-0c313d745a10 \--environment-file "/usr/share/openstack-tripleo-heat-templates/environments/services/sahara.yaml" \
-e /home/stack/virt/network/network-environment.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/virt/hostnames.yml \
-e /home/stack/virt/debug.yaml \
-e /home/stack/neutron-opendaylight-l3.yaml \
--log-file overcloud_deployment_35.log &> overcloud_install.log


The neutron-opendaylight-l3.yaml file:

resource_registry:
  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
  OS::TripleO::Services::OpenDaylight: /usr/share/openstack-tripleo-heat-templates/puppet/services/opendaylight-api.yaml
  OS::TripleO::Services::OpenDaylightOvs: /usr/share/openstack-tripleo-heat-templates/puppet/services/opendaylight-ovs.yaml
  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None

parameter_defaults:
  EnableOpenDaylightOnController: true
  NeutronEnableForceMetadata: true
  NeutronMechanismDrivers: 'opendaylight'
  NeutronServicePlugins: "networking_odl.l3.l3_odl.OpenDaylightL3RouterPlugin"
  OpenDaylightEnableL3: "'yes'"


Output from heat 'deployment-show'
{
  "status": "FAILED", 
  "server_id": "60e91b4d-d267-4fe3-8b4b-244f05be5aa1", 
  "config_id": "3a74578f-aab9-49fc-b2b8-16d99a95bab3", 
  "output_values": {
    "deploy_stdout": "", 
    "deploy_stderr": "exception: connect failed\n\u001b[1;31mError: Could not find data item opendaylight_api_node_ips in any Hiera data file and no default supplied at /etc/puppet/modules/tripleo/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp:45 on node compute-0.localdomain\u001b[0m\n\u001b[1;31mError: Could not find data item opendaylight_api_node_ips in any Hiera data file and no default supplied at /etc/puppet/modules/tripleo/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp:45 on node compute-0.localdomain\u001b[0m\n", 
    "deploy_status_code": 1
  }, 
  "creation_time": "2016-09-25T12:06:30", 
  "updated_time": "2016-09-25T12:07:04", 
  "input_values": {
    "step": 2, 
    "update_identifier": "1474804585"
  }, 
  "action": "CREATE", 
  "status_reason": "deploy_status_code : Deployment exited with non-zero status code: 1", 
  "id": "08dfb4a8-63a6-4f4f-8f1a-6f77617af1c8"
}

Comment 1 Tim Rozet 2016-09-30 19:20:43 UTC
After looking at this it looks like <service>_node_ips is now dynamically generated in THT (rather than the previous way declared in overcloud.yaml).  The dynamic substitution is a little hard to follow, but my suspicion is the dynamic parsing is using the actual name of the service when it goes to parse <service name>Network.  In this case the opendaylight service is 'OpenDaylight', but the ODL network is actually 'OpenDaylightApiNetwork'.

Itzik, can you please try chaning 'OpenDaylight' to be 'OpenDaylightApi' making these changes and redeploying?

It needs to be changed in these places:
https://github.com/openstack/tripleo-heat-templates/blob/master/roles_data.yaml#L93
https://github.com/openstack/tripleo-heat-templates/blob/master/overcloud-resource-registry-puppet.j2.yaml#L190
https://github.com/openstack/tripleo-heat-templates/blob/master/environments/neutron-opendaylight.yaml#L5
https://github.com/openstack/tripleo-heat-templates/blob/master/environments/neutron-opendaylight-l3.yaml

Comment 2 Tim Rozet 2016-10-03 18:23:44 UTC
Can you also verify that your original test included this patch?
https://review.openstack.org/#/c/361578/

My previous comment may not actually help (except to make things more aligned cosmetically).

Comment 3 Itzik Brown 2016-10-05 06:25:55 UTC
Yes. It includes this patch.

Comment 4 Tim Rozet 2016-10-05 15:48:00 UTC
After talking to Steve Hardy - there is a nuance to how TripleO interprets/translates the service net name into the <service_name>_network that includes splitting camel case with _ and setting to lower case.  The issue was OpenDaylight is a single word with camel case, causing the translation to be:
open_daylight_api_node_ips, rather than opendaylight_api_node_ips.  Steve has uploaded a fix:
https://review.openstack.org/#/c/382480/1

I confirmed this works.

Comment 6 Itzik Brown 2016-10-13 12:11:12 UTC
Tim,
Can you please update the RPM version in 'Fixed in Version' ?

Thanks

Comment 7 Tim Rozet 2016-10-25 13:44:51 UTC
Itzik,
I'm not sure how to map upstream merged changes into downstream builds.  But it has been some time since this was fixed upstream, it must be in the latest downstream build by now.

Comment 8 Itzik Brown 2016-11-02 13:17:25 UTC
Tim,
How do you suggest verifying? Make sure that the deployment is done?

Comment 9 Itzik Brown 2016-11-06 10:41:25 UTC
Verified the the code openstack-tripleo-heat-templates-5.0.0-1.2.el7ost.noarch

Comment 13 errata-xmlrpc 2016-12-14 16:04:59 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/RHEA-2016-2948.html