From 12ff51e5e327a0b6baa26d330f3202cf306c98d5 Mon Sep 17 00:00:00 2001 From: nirajsingh Date: Thu, 22 Mar 2018 12:51:10 +0530 Subject: [PATCH] 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 --- specs/rocky/masakari.rst | 149 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 specs/rocky/masakari.rst diff --git a/specs/rocky/masakari.rst b/specs/rocky/masakari.rst new file mode 100644 index 0000000..7df25aa --- /dev/null +++ b/specs/rocky/masakari.rst @@ -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