Enable Automated Provisioning of Active/Active HA Cloud

Registered by Mark T. Voelker

Customers would like to be able to provision an OpenStack cloud with high availability for all major components and underpinnings. We currently have a manual provisioning process for this (see spec URL) that we are working toward automating.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Essential
Drafter:
None
Direction:
Needs approval
Assignee:
Daneyon Hansen
Definition:
New
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon g.2
Started by
Daneyon Hansen
Completed by
Mark T. Voelker

Related branches

Sprints

Whiteboard

Review of HA Recording:
https://cisco.webex.com/ciscosales/lsr.php?AT=pb&SP=MC&rID=70769247&rKey=decf8b56a37bb3b3

Release Notes:
1. Keystone uses UUID instead of PKI tokens.
2. No support for nova metadata, only config_drive.

Puppet Module Notes
1. Adds HA support to core.pp. Introduces the enable_ha
parameter for enabling the openstack-ha::controller/compute
classes. The enable_ha parameter is only exposed to the site.pp
example file (site.pp.ha.example). (DONE)

2. Adds site.pp.ha.example to serve as an example for users to
deploy COI G.2 HA. At this time, their is significant enough
differences in top-level configuration parameters to introduce a
separate site manifest specifically for HA. (DONE)

3. Add haproxy-nodes.pp that gets imported into the site manifest.
This is where server load-balancing is configured. Users should
not need to configure this file if they use slb01/slb02 for node
names. We may want to look at moving the configuration
parameters from haproxy-nodes.pp to a class within the opentack-ha
module in the future. (DONE)

Working Manifests (merged with the multi-node branch 8/27):
https://github.com/CiscoSystems/grizzly-manifests/tree/multi-node

3. Need to add the following HA modules to module_list (DONE):
  augeas
    git clone https://github.com/CiscoSystems/puppet-augeas.git augeas
  galera
   git clone -b ga-ha-wip https://github.com/CiscoSystems/puppet-galera.git galera
  haproxy
    git clone https://github.com/CiscoSystems/puppet-haproxy.git haproxy
  keepalived
    git clone https://github.com/CiscoSystems/puppet-keepalived.git keepalived
  network
    git clone -b grizzly https://github.com/CiscoSystems/puppet-network.git network
  openstack-ha
    git clone https://github.com/CiscoSystems/puppet-openstack-ha.git openstack-ha

Note: Most, if not all, above-mentioned modules do not have a grizzly branch.

We can remove the following unneeded modules (from old HA model) from module_list (DONE):
  corosync
  drbd

4. The following Stackforge patches are needed (DONE):

https://review.openstack.org/#/c/42185/ < Merged and pulled into CiscoSystems repos
https://review.openstack.org/#/c/43007/ < Merged and pulled into CiscoSystems repos

5. We need to address the following swift bug (NOW FIXED):
  https://bugs.launchpad.net/openstack-cisco/+bug/1207516

Issues:

6. Documentation (In development)
http://docwiki.cisco.com/wiki/OpenStack_Grizzly_Release:_High-Availability_Automated_Deployment_Guide

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.