Add specs to create masakari role
Added specs to create masakari role that consist of three components: 1) masakari-api 2) masakari-engine 3) masakari-monitor Change-Id: I40b98c825af59208bb30985fe8a4a4806d0ba76e
This commit is contained in:
parent
eb670d5e25
commit
12ff51e5e3
|
@ -0,0 +1,149 @@
|
|||
Integration of Masakari with OpenStack-Ansible
|
||||
#################################
|
||||
:date: 2018-03-22 14:00
|
||||
:tags: openstack, masakari, masakari-monitors
|
||||
|
||||
Blueprint on Launchpad:
|
||||
* https://blueprints.launchpad.net/openstack-ansible/+spec/masakari-ansible-plugin
|
||||
|
||||
Masakari provides Virtual Machine High Availability (VMHA) service for OpenStack clouds
|
||||
by automatically recovering the KVM-based Virtual Machine(VM)s from failure events such
|
||||
as VM process down, provisioning process down, and nova-compute host failure. It also
|
||||
provides API service for managing and controlling the automated rescue mechanism.
|
||||
The Masakari service consists of the following components:
|
||||
|
||||
* masakari-api:
|
||||
An OpenStack-native REST API that processes API requests by sending
|
||||
them to the ``masakari-engine`` over `Remote Procedure Call (RPC)`.
|
||||
|
||||
* masakari-engine:
|
||||
Processes the notifications received from ``masakari-api`` by execcuting the
|
||||
recovery workflow in asynchronus way.
|
||||
|
||||
* masakari-monitors:
|
||||
Monitors for Masakari provides Virtual Machine High Availability (VMHA) service for OpenStack
|
||||
clouds by automatically detecting the failure events such as VM process down, provisioning
|
||||
process down, and nova-compute host failure. If it detects the events, it sends notifications
|
||||
to the masakari-api.
|
||||
|
||||
This spec outlines the steps required to integrate Masakari with OpenStack-Ansible.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Masakari provides Instances High Availability Service for OpenStack clouds
|
||||
by automatically recovering failed Instances. However, it needs to be installed
|
||||
manually with OpenStack-Ansible. No role exists to deploy it as other services are deployed.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The proposed changes would include:
|
||||
|
||||
* Import a proof of concept role for Masakari from
|
||||
https://github.com/NirajSingh90/openstack-ansible-os_masakari to
|
||||
``openstack-ansible-os_masakari``
|
||||
* Follow the usual path described in the developer documentation.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
There are no alternatives.
|
||||
|
||||
Playbook/Role impact
|
||||
--------------------
|
||||
|
||||
This is a new feature added into OpenStack-Ansible. No role currently exists. Therefore,
|
||||
new role, `openstack-ansible-os_masakari` needs to be written from scratch.
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
No upgrade impact since this would be the first implementation of the proposed change.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
No security impact.
|
||||
|
||||
Performance impact
|
||||
------------------
|
||||
|
||||
No performance impact.
|
||||
|
||||
End user impact
|
||||
---------------
|
||||
|
||||
End user will be able to use masakari as a service within OpenStack-Ansible.
|
||||
|
||||
Deployer impact
|
||||
---------------
|
||||
|
||||
Deployers will need to enable Masakari deployments if they choose to use this.
|
||||
Masakari will not be deployed by default.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
No impact.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
By employing a combination of Corosync and Pacemaker, OpenStack Masakari creates a
|
||||
cluster of servers, detecting and reporting failure of hosts in the cluster.
|
||||
So masakari is dependent on Corosync and Pacemaker.
|
||||
|
||||
We will reuse an external role for corosync and pacemaker to not re-invent the wheel,
|
||||
like the one found in https://github.com/leucos/ansible-pacemaker-corosync .
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Niraj Singh (IRC: niraj_singh)
|
||||
|
||||
Work items
|
||||
----------
|
||||
|
||||
Masakari is not available as a service for OpenStack-Ansible. No role already exists.
|
||||
A new role will be developed from scratch in compliance with the standards set by the
|
||||
community. It will be added under https://github.com/openstack/openstack-ansible-os_masakari
|
||||
|
||||
Note: Masakari role will install below services:
|
||||
maskari-api
|
||||
masakari-engine
|
||||
masakari-processmonitor
|
||||
masakari-hostmonitor
|
||||
masakari-instancemonitor
|
||||
|
||||
masakari-processmonitor, masakari-hostmonitor and masakari-instancemonitor will be
|
||||
installed only on nova-compute nodes
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Tests will be developed to ensure that deployment of Masakari works. Masakari
|
||||
doesn't have tempest tests therefore we will start by testing the API responses
|
||||
codes. Masakari-monitor and Masakari-engine services tests will be added in
|
||||
future using third party CI tests.
|
||||
|
||||
Documentation impact
|
||||
====================
|
||||
|
||||
As this would be new feature added to OpenStack-Ansible, it needs to be
|
||||
documented, explaining all the configuration parameters.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
Masakari Overview
|
||||
|
||||
* https://wiki.openstack.org/wiki/Masakari
|
||||
|
||||
Masakari developer/operator documentation
|
||||
|
||||
* https://docs.openstack.org/masakari/latest
|
Loading…
Reference in New Issue