Bug 1396288

Summary: Overcloud deployment without Heat services fails
Product: Red Hat OpenStack Reporter: Marius Cornea <mcornea>
Component: puppet-tripleoAssignee: Steven Hardy <shardy>
Status: CLOSED CURRENTRELEASE QA Contact: Marius Cornea <mcornea>
Severity: urgent Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: aschultz, dbecker, jjoyce, jschluet, jslagle, mburns, morazi, rhel-osp-director-maint, shardy, slinaber, tvignaud
Target Milestone: z6Keywords: TestOnly, Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: puppet-tripleo-5.6.0-3.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-10-10 18:08:24 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:

Description Marius Cornea 2016-11-17 21:36:30 UTC
Description of problem:

I'm trying to do an overcloud deployment which doesn't run Heat services(a Swift only environment) but deployment fails with the following error:

    Error: Could not find data item heat::keystone::domain::domain_password in any Hiera data file and no default supplied at /etc/puppet/modules/tripleo/manifests/profile/base/keystone.pp:68 on node overcloud-serviceapi-0.localdomain
    Error: Could not find data item heat::keystone::domain::domain_password in any Hiera data file and no default supplied at /etc/puppet/modules/tripleo/manifests/profile/base/keystone.pp:68 on node overcloud-serviceapi-0.localdomain

This is the roles_data.yaml file that I am using:

- name: Controller
  CountDefault: 1
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::Core
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::MySQL
    - OS::TripleO::Services::RabbitMQ
    - OS::TripleO::Services::HAproxy
    - OS::TripleO::Services::Memcached
    - OS::TripleO::Services::Pacemaker
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts

- name: ObjectStorage
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::SwiftStorage
    - OS::TripleO::Services::SwiftRingBuilder
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts

- name: ServiceApi
  CountDefault: 1
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::Core
    - OS::TripleO::Services::Keystone
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::SwiftProxy
    - OS::TripleO::Services::SwiftRingBuilder
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::Horizon
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts


Version-Release number of selected component (if applicable):
openstack-heat-templates-0-0.7.1e6015dgit.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. Deploy overcloud without Heat services

Actual results:
Deployment fails.

Expected results:
Deployment should proceed.

Additional info:

Workaround: add an additional unused role in roles_data.yaml which contains the Heat services:

- name: Heat
  CountDefault: 1
  ServicesDefault:
    - OS::TripleO::Services::HeatApi
    - OS::TripleO::Services::HeatApiCfn
    - OS::TripleO::Services::HeatApiCloudwatch
    - OS::TripleO::Services::HeatEngine
 
After doing this the overcloud deployment passes but Keystone endpoints for Heat also get created on the overcloud even though there's no Heat service configured/running on the overcloud nodes:

openstack catalog list
+----------+----------------+----------------------------------------------------------------------------------+
| Name     | Type           | Endpoints                                                                        |
+----------+----------------+----------------------------------------------------------------------------------+
| swift    | object-store   | regionOne                                                                        |
|          |                |   publicURL: https://172.16.18.25:13808/v1/AUTH_b654c355d174407c834043ad2d841f19 |
|          |                |   internalURL: http://10.0.0.145:8080/v1/AUTH_b654c355d174407c834043ad2d841f19   |
|          |                |   adminURL: http://10.0.0.145:8080                                               |
|          |                |                                                                                  |
| heat-cfn | cloudformation | regionOne                                                                        |
|          |                |   publicURL: https://172.16.18.25:13005/v1                                       |
|          |                |   internalURL: http://10.0.0.19:8000/v1                                          |
|          |                |   adminURL: http://10.0.0.19:8000/v1                                             |
|          |                |                                                                                  |
| keystone | identity       | regionOne                                                                        |
|          |                |   publicURL: https://172.16.18.25:13000/v2.0                                     |
|          |                |   internalURL: http://10.0.0.19:5000/v2.0                                        |
|          |                |   adminURL: http://192.168.0.12:35357/v2.0                                       |
|          |                |                                                                                  |
| heat     | orchestration  | regionOne                                                                        |
|          |                |   publicURL: https://172.16.18.25:13004/v1/b654c355d174407c834043ad2d841f19      |
|          |                |   internalURL: http://10.0.0.19:8004/v1/b654c355d174407c834043ad2d841f19         |
|          |                |   adminURL: http://10.0.0.19:8004/v1/b654c355d174407c834043ad2d841f19            |
|          |                |                                                                                  |
+----------+----------------+----------------------------------------------------------------------------------+

Comment 1 Steven Hardy 2016-11-18 13:40:29 UTC
I think this has been fixed upstream:

https://review.openstack.org/#/c/398128

https://review.openstack.org/#/c/398127/

I'll raise a bug and propose backports to stable/newton

Comment 2 Steven Hardy 2016-11-18 13:54:00 UTC
stable/newton backports proposed:

https://review.openstack.org/#/c/399595/

https://review.openstack.org/#/c/399599/

There was no upstream LP bug so I raised this one:

https://bugs.launchpad.net/tripleo/+bug/1642961

Comment 3 Steven Hardy 2016-11-25 11:29:50 UTC
Verified by inspection that openstack-tripleo-heat-templates-5.1.0-5.el7ost.noarch.rpm contains the t-h-t patch, but we've not yet picked up the puppet-tripleo change in a build.

Comment 9 Lon Hohberger 2017-09-06 19:56:48 UTC
According to our records, this should be resolved by puppet-tripleo-5.6.1-2.el7ost.  This build is available now.

Comment 10 Marius Cornea 2017-09-26 11:06:32 UTC
Works on latest build:

[stack@undercloud-0 ~]$ cat roles_data.yaml 
# Specifies which roles (groups of nodes) will be deployed
# Note this is used as an input to the various *.j2.yaml
# jinja2 templates, so that they are converted into *.yaml
# during the plan creation (via a mistral action/workflow).
#
# The format is a list, with the following format:
#
# * name: (string) mandatory, name of the role, must be unique
#
# CountDefault: (number) optional, default number of nodes, defaults to 0
# sets the default for the {{role.name}}Count parameter in overcloud.yaml
#
# HostnameFormatDefault: (string) optional default format string for hostname
# defaults to '%stackname%-{{role.name.lower()}}-%index%'
# sets the default for {{role.name}}HostnameFormat parameter in overcloud.yaml
#
# ServicesDefault: (list) optional default list of services to be deployed
# on the role, defaults to an empty list. Sets the default for the
# {{role.name}}Services parameter in overcloud.yaml

- name: Controller
  CountDefault: 1
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::Core
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::MySQL
    - OS::TripleO::Services::RabbitMQ
    - OS::TripleO::Services::HAproxy
    - OS::TripleO::Services::Keystone
    - OS::TripleO::Services::Keepalived
    - OS::TripleO::Services::Memcached
    - OS::TripleO::Services::Pacemaker
    - OS::TripleO::Services::Redis
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::SwiftProxy
    - OS::TripleO::Services::SwiftStorage
    - OS::TripleO::Services::SwiftRingBuilder
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts

- name: ObjectStorage
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::SwiftStorage
    - OS::TripleO::Services::SwiftRingBuilder
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::FluentdClient
    - OS::TripleO::Services::VipHosts

[stack@undercloud-0 ~]$ openstack catalog list
+----------+--------------+---------------------------------------------------------------------------------+
| Name     | Type         | Endpoints                                                                       |
+----------+--------------+---------------------------------------------------------------------------------+
| swift    | object-store | regionOne                                                                       |
|          |              |   publicURL: http://10.0.0.103:8080/v1/AUTH_4c5d4ba1052b48eabb549015e55e16d6    |
|          |              |   internalURL: http://172.17.3.13:8080/v1/AUTH_4c5d4ba1052b48eabb549015e55e16d6 |
|          |              |   adminURL: http://172.17.3.13:8080                                             |
|          |              |                                                                                 |
| keystone | identity     | regionOne                                                                       |
|          |              |   publicURL: http://10.0.0.103:5000/v2.0                                        |
|          |              |   internalURL: http://172.17.1.14:5000/v2.0                                     |
|          |              |   adminURL: http://192.168.24.6:35357/v2.0                                      |
|          |              |                                                                                 |
+----------+--------------+---------------------------------------------------------------------------------+