Continue refactoring of Pacemakers infrastructure in Puppet

Registered by Dmitry Ilyin on 2014-08-26

Let's continue to improve the Pacemaker support in Fuel

* Refactor several resources needed to create a pacemaker service into a single definition
* Add wrapper handlers for manual control and/or debugging of ocf services
* Debug and repair our service provider to make it idempotent and contribute it to upstream openstack_extras

Feature Lead: Sergii Golovatiuk
Mandatory Design Reviewers: Bogdan Dobrelia, Dmitry Ilyin, Vladimir Kuklin
Developers: Dmitry Ilyin, Sergii Golovatiuk, Bogdan Dobrelia
QA: Andrey Sledzinskiy, Egor Kotko

Blueprint information

Status:
Complete
Approver:
Vladimir Kuklin
Priority:
High
Drafter:
Dmitry Ilyin
Direction:
Approved
Assignee:
Sergii Golovatiuk
Definition:
Approved
Series goal:
Accepted for 6.0.x
Implementation:
Implemented
Milestone target:
milestone icon 6.0
Started by
Bogdan Dobrelya on 2014-10-02
Completed by
Bogdan Dobrelya on 2014-12-18

Whiteboard

[Dmitry Borodaenko 2014-12-16]
Remaining work items from this blueprint have their own separate blueprints now:
https://blueprints.launchpad.net/fuel/+spec/services-under-supervisor
https://blueprints.launchpad.net/fuel/+spec/corosync-2
https://blueprints.launchpad.net/fuel/+spec/pcs-ocf-for-openstack-services
The rest was completed in 6.0.

Drafts/brainstorm sessions/action items tracking:

Common topics:
https://etherpad.openstack.org/p/fuel-further-pacemaker-improvements

Openstack services and pacemaker provider meeting minutes:
https://etherpad.openstack.org/p/ha-puppet-service-providers-overrrides

Gerrit topic: https://review.openstack.org/#q,topic:bp/pacemaker-improvements,n,z

Addressed by: https://review.openstack.org/123817
    Specification for pacemaker-improvements

Addressed by: https://review.openstack.org/116825
    Refactor corosync resources to definitions

Addressed by: https://review.openstack.org/125642
    Rename VIP resources

Addressed by: https://review.openstack.org/125644
    Rename VIP resources

Addressed by: https://review.openstack.org/125647
    Rename VIP resources

Addressed by: https://review.openstack.org/125649
    Rename VIP resources

Addressed by: https://review.openstack.org/125657
    Add puppet module for monit

Addressed by: https://review.openstack.org/125921
    Adapt monit module for Fuel needs

Gerrit topic: https://review.openstack.org/#q,topic:bp/merge-openstack-puppet-modules,n,z

Addressed by: https://review.openstack.org/126006
    Sync puppet-corosync

Addressed by: https://review.openstack.org/126027
    Adapt synced Corosync module

Addressed by: https://review.openstack.org/126255
    Add monit as an option for compute nodes

Addressed by: https://review.openstack.org/126276
    Add AMQP conn check for ceilo-agent ocf
    Reverted by https://review.openstack.org/#/c/139937/ due to race conditions introduced

Addressed by: https://review.openstack.org/126284
    Add AMQP conn check for heat-engine ocf
    Reverted by https://review.openstack.org/#/c/139937/ due to race conditions introduced

Gerrit topic: https://review.openstack.org/#q,topic:bp/pacemaker-improvements-2,n,z

Addressed by: https://review.openstack.org/127486
    Add Nova Controller Services as pacemaker primitives

Addressed by: https://review.openstack.org/127523
    Improve monitoring in neutron-agent-dhcp OCF

Addressed by: https://review.openstack.org/127551
    Improve monitoring in neutron-agent-dhcp OCF

Addressed by: https://review.openstack.org/128254
    Del unused parameter in monit::process

Addressed by: https://review.openstack.org/128575
    Add openstack_extras and epel dependency

Addressed by: https://review.openstack.org/128853
    Enable monit for compute nodes

Addressed by: https://review.openstack.org/129193
    Add monit package to requirements

Addressed by: https://review.openstack.org/129351
    New service provider

Addressed by: https://review.openstack.org/129925
    Use separate pid files for Pacemaker OCF

Addressed by: https://review.openstack.org/130263
    Remove basic service stop

Addressed by: https://review.openstack.org/130823
    Remove old basic service_disables

Addressed by: https://review.openstack.org/131562
    "Add monit package to requirements""

Addressed by: https://review.openstack.org/132318
    Refactor Heat HA to wrappers

Addressed by: https://review.openstack.org/133017
    Pacemaker improvements

Gerrit topic: https://review.openstack.org/#q,topic:bp/granular-deployment-based-on-tasks,n,z

Addressed by: https://review.openstack.org/133482
    Sort new pacemaker function

Addressed by: https://review.openstack.org/134964
    Fix idempotency of cs_resource

Addressed by: https://review.openstack.org/135372
    Remove the last cs_shadow

Gerrit topic: https://review.openstack.org/#q,topic:bug/1391599,n,z

Addressed by: https://review.openstack.org/136446
    Replace wait-for-haproxy-backends with pupprt type

Addressed by: https://review.openstack.org/142074
    Reimplement all corosync providers

Addressed by: https://review.openstack.org/150555
    Port an updated pacemaker service provider

Gerrit topic: https://review.openstack.org/#q,topic:pacemaker-improvements,n,z

Addressed by: https://review.openstack.org/150738
    Change Galera Pacemaker timers

Addressed by: https://review.openstack.org/150775
    Cleanup primitives by their full names

Addressed by: https://review.openstack.org/160960
    Database, Keystone tasks

Gerrit topic: https://review.openstack.org/#q,topic:bp/fuel-library-modularization,n,z

Addressed by: https://review.openstack.org/191769
    Remove openstack_extras module

(?)

Work Items

Work items:
* Rename OCF vip resources to proper names: DONE
* Refactor puppet service provider. It should disable upstart/systemd/system V init when we use pacemaker as a service control plane: DONE
* Add wrapper handlers for manual control and/or debugging of ocf services (example: http://review.openstack.org/#/c/116825 )) OR just add debug parameter for all pacemaker resources under OCF control plane: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.