Bug 1348188 - Pacemaker is not enabled by default in overcloud HA deployment
Summary: Pacemaker is not enabled by default in overcloud HA deployment
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 10.0 (Newton)
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: beta
: 10.0 (Newton)
Assignee: Carlos Camacho
QA Contact: Marius Cornea
URL:
Whiteboard:
: 1355597 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-06-20 11:43 UTC by Marius Cornea
Modified: 2016-12-21 17:18 UTC (History)
10 users (show)

Fixed In Version: openstack-tripleo-heat-templates-5.0.0-0.20160817161003.bacc2c6.1.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1406869 (view as bug list)
Environment:
Last Closed: 2016-12-14 15:40:48 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2016:2948 0 normal SHIPPED_LIVE Red Hat OpenStack Platform 10 enhancement update 2016-12-14 19:55:27 UTC

Description Marius Cornea 2016-06-20 11:43:59 UTC
Description of problem:
Pacemaker is not enabled by default in overcloud HA deployment.

Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-5.0.0-0.20160609160634.8027ae2.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. Deploy overcloud with the following command:
openstack overcloud deploy --templates \
-e $THT/environments/network-isolation.yaml \
-e $THT/environments/network-management.yaml \
-e ~/templates/network-environment.yaml \
-e $THT/environments/storage-environment.yaml \
-e ~/templates/disk-layout.yaml \
-e ~/templates/wipe-disk-env.yaml \
--control-scale 3 \
--control-flavor controller \
--compute-scale 1 \
--compute-flavor compute \
--ceph-storage-scale 1 \
--ceph-storage-flavor ceph \
--ntp-server clock.redhat.com  \
--libvirt-type qemu 

Actual results:
Deployment fails.

Expected results:
Deployment succeeds.

Additional info:
Deployment fails at CREATE_FAILED Error: resources.ControllerNodesPostDeployment.resources.ControllerOvercloudServicesDeployment_Step3.resources[1]

When I log in to one of the controllers I can see that:
[root@overcloud-controller-0 ~]# pcs status
Error: cluster is not currently running on this node

Worarkound:
Pass -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml

Comment 2 Alexander Chuzhoy 2016-07-12 16:16:27 UTC
*** Bug 1355597 has been marked as a duplicate of this bug. ***

Comment 3 Marius Cornea 2016-08-10 10:11:54 UTC
I'm testing the lastest build: 
openstack-tripleo-heat-templates-5.0.0-0.20160725225924.77f6c40.1.el7ost.noarch

I can see in overcloud-resource-registry-puppet.yaml that pacemaker is set only for a set of resources:

grep pacemaker /usr/share/openstack-tripleo-heat-templates/overcloud-resource-registry-puppet.yaml 
  # set to controller-config-pacemaker.yaml to enable pacemaker
  OS::TripleO::ControllerConfig: puppet/controller-config-pacemaker.yaml
  OS::TripleO::Tasks::ControllerPrePuppet: extraconfig/tasks/pre_puppet_pacemaker.yaml
  OS::TripleO::Tasks::ControllerPostPuppet: extraconfig/tasks/post_puppet_pacemaker.yaml

While environments/puppet-pacemaker.yaml also contains entries for the custom pacemaker services:

[root@undercloud openstack-tripleo-heat-templates]# cat environments/puppet-pacemaker.yaml 
# An environment which enables configuration of an
# Overcloud controller with Pacemaker.
resource_registry:
  OS::TripleO::ControllerConfig: ../puppet/controller-config-pacemaker.yaml
  OS::TripleO::Tasks::ControllerPrePuppet: ../extraconfig/tasks/pre_puppet_pacemaker.yaml
  OS::TripleO::Tasks::ControllerPostPuppet: ../extraconfig/tasks/post_puppet_pacemaker.yaml

  # custom pacemaker services
  # NOTE: For now we will need to specify overrides to all services
  # which use pacemaker. In the future (with upcoming HA light work) this
  # list will hopefully be much smaller however.
  OS::TripleO::Services::CinderApi: ../puppet/services/pacemaker/cinder-api.yaml
  OS::TripleO::Services::CinderScheduler: ../puppet/services/pacemaker/cinder-scheduler.yaml
  OS::TripleO::Services::CinderVolume: ../puppet/services/pacemaker/cinder-volume.yaml
  OS::TripleO::Services::Keystone: ../puppet/services/pacemaker/keystone.yaml
  OS::TripleO::Services::GlanceApi: ../puppet/services/pacemaker/glance-api.yaml
  OS::TripleO::Services::GlanceRegistry: ../puppet/services/pacemaker/glance-registry.yaml
  OS::TripleO::Services::HeatApi: ../puppet/services/pacemaker/heat-api.yaml
  OS::TripleO::Services::HeatApiCfn: ../puppet/services/pacemaker/heat-api-cfn.yaml
  OS::TripleO::Services::HeatApiCloudwatch: ../puppet/services/pacemaker/heat-api-cloudwatch.yaml
  OS::TripleO::Services::HeatEngine: ../puppet/services/pacemaker/heat-engine.yaml
  OS::TripleO::Services::NeutronDhcpAgent: ../puppet/services/pacemaker/neutron-dhcp.yaml
  OS::TripleO::Services::NeutronL3Agent: ../puppet/services/pacemaker/neutron-l3.yaml
  OS::TripleO::Services::NeutronMetadataAgent: ../puppet/services/pacemaker/neutron-metadata.yaml
  OS::TripleO::Services::NeutronServer: ../puppet/services/pacemaker/neutron-server.yaml
  OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/pacemaker/neutron-plugin-ml2.yaml
  # Neutron Core Plugin Vendors (these typically override NeutronCorePlugin)
  OS::TripleO::Services::NeutronCorePluginPlumgrid: ../puppet/services/pacemaker/neutron-plugin-plumgrid.yaml
  OS::TripleO::Services::NeutronCorePluginNuage: ../puppet/services/pacemaker/neutron-plugin-nuage.yaml
  OS::TripleO::Services::NeutronCorePluginOpencontrail: ../puppet/services/pacemaker/neutron-plugin-opencontrail.yaml
  OS::TripleO::Services::NeutronCorePluginMidonet: ../puppet/services/pacemaker/neutron-midonet.yaml
  OS::TripleO::Services::NeutronOvsAgent: ../puppet/services/pacemaker/neutron-ovs-agent.yaml
  OS::TripleO::Services::RabbitMQ: ../puppet/services/pacemaker/rabbitmq.yaml
  OS::TripleO::Services::HAproxy: ../puppet/services/pacemaker/haproxy.yaml
  OS::TripleO::Services::Memcached: ../puppet/services/pacemaker/memcached.yaml
  OS::TripleO::Services::Pacemaker: ../puppet/services/pacemaker.yaml
  OS::TripleO::Services::Redis: ../puppet/services/pacemaker/database/redis.yaml
  OS::TripleO::Services::NovaConductor: ../puppet/services/pacemaker/nova-conductor.yaml
  OS::TripleO::Services::MongoDb: ../puppet/services/pacemaker/database/mongodb.yaml
  OS::TripleO::Services::NovaApi: ../puppet/services/pacemaker/nova-api.yaml
  OS::TripleO::Services::NovaScheduler: ../puppet/services/pacemaker/nova-scheduler.yaml
  OS::TripleO::Services::NovaConsoleauth: ../puppet/services/pacemaker/nova-consoleauth.yaml
  OS::TripleO::Services::NovaVncproxy: ../puppet/services/pacemaker/nova-vncproxy.yaml
  OS::TripleO::Services::CeilometerApi: ../puppet/services/pacemaker/ceilometer-api.yaml
  OS::TripleO::Services::CeilometerCollector: ../puppet/services/pacemaker/ceilometer-collector.yaml
  OS::TripleO::Services::CeilometerAgentCentral: ../puppet/services/pacemaker/ceilometer-agent-central.yaml
  OS::TripleO::Services::CeilometerAgentNotification: ../puppet/services/pacemaker/ceilometer-agent-notification.yaml
  #Gnocchi services
  OS::TripleO::Services::GnocchiApi: ../puppet/services/pacemaker/gnocchi-api.yaml
  OS::TripleO::Services::GnocchiMetricd: ../puppet/services/pacemaker/gnocchi-metricd.yaml
  OS::TripleO::Services::GnocchiStatsd: ../puppet/services/pacemaker/gnocchi-statsd.yaml
  OS::TripleO::Services::MySQL: ../puppet/services/pacemaker/database/mysql.yaml
  OS::TripleO::Services::Horizon: ../puppet/services/pacemaker/horizon.yaml

Comment 5 James Slagle 2016-08-17 15:38:15 UTC
ccamacho is going to take a look at this. he is working on getting setup with the downstream patching process and gerrit.

Comment 6 Carlos Camacho 2016-08-17 18:49:34 UTC
Hello, I have updated the overcloud-resource-registry template with the values from the puppet-pacemaker deployment.

Locally working for me by: 

openstack overcloud deploy \
--libvirt-type qemu \
--ntp-server pool.ntp.org \
--control-scale 3 \
--templates /home/stack/openstack-tripleo-heat-templates \
-e /home/stack/openstack-tripleo-heat-templates/overcloud-resource-registry-puppet.yaml 


This is adding by default adding the parameters currently in puppet-pacemaker.yaml


https://code.engineering.redhat.com/gerrit/#/c/81939

Comment 7 Carlos Camacho 2016-08-17 18:53:54 UTC
I had some doubts about doing this in this way, as this will break all non-pacemaker deployments, but now I'm aware of the fact that that's the only option supported downstream.

Even that my initial thought was to update instead the python-tripleo client so when used any *-scale option automatically appends the puppet-pacemaker template.

Comment 8 Jon Schlueter 2016-08-22 13:54:49 UTC
(In reply to Carlos Camacho from comment #7)
> I had some doubts about doing this in this way, as this will break all
> non-pacemaker deployments, but now I'm aware of the fact that that's the
> only option supported downstream.
> 
> Even that my initial thought was to update instead the python-tripleo client
> so when used any *-scale option automatically appends the puppet-pacemaker
> template.

That sounds like it could get accepted upstream as well.

Comment 9 Carlos Camacho 2016-08-24 09:02:34 UTC
Take into account that all pcm templates should disappear when the new HA lands.

Comment 12 errata-xmlrpc 2016-12-14 15:40:48 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


Note You need to log in before you can comment on or make changes to this bug.