RETIRED, Heat templates for deploying OpenStack
Go to file
Michele Baldessari cf465d87b1 Fix race during major-upgrade-pacemaker step
Currently when we call the major-upgrade step we do the following:
"""
...
if [[ -n $(is_bootstrap_node) ]]; then
    check_clean_cluster
fi
...
if [[ -n $(is_bootstrap_node) ]]; then
    migrate_full_to_ng_ha
fi
...
for service in $(services_to_migrate); do
    manage_systemd_service stop "${service%%-clone}"
    ...
done
"""

The problem with the above code is that it is open to the following race
condition:
1. Code gets run first on a non-bootstrap controller node so we start
stopping a bunch of services
2. Pacemaker notices will notice that services are down and will mark
the service as stopped
3. Code gets run on the bootstrap node (controller-0) and the
check_clean_cluster function will fail and exit
4. Eventually also the script on the non-bootstrap controller node will
timeout and exit because the cluster never shut down (it never actually
started the shutdown because we failed at 3)

Let's make sure we first only call the HA NG migration step as a
separate heat step. Only afterwards we start shutting down the systemd
services on all nodes.

We also need to move the STONITH_STATE variable into a file because it
is being used across two different scripts (1 and 2) and we need to
store that state.

Co-Authored-By: Athlan-Guyot Sofer <sathlang@redhat.com>

Closes-Bug: #1640407
Change-Id: Ifb9b9e633fcc77604cca2590071656f4b2275c60
(cherry picked from commit dde12b075f)
2016-11-10 21:41:05 +01:00
deployed-server Make deployed-server OS::Neutron::Port optional 2016-08-07 07:29:06 -04:00
docker Update heat-agents setup files 2016-07-29 14:18:37 +02:00
environments Updated Nuage neutron plugin name 2016-11-04 18:18:25 +00:00
extraconfig Fix race during major-upgrade-pacemaker step 2016-11-10 21:41:05 +01:00
firstboot Add an optional extra node admin ssh key parameter 2016-11-07 15:15:08 +01:00
network Merge "Select per-network hostnames for service_node_names" into stable/newton 2016-10-07 05:43:20 +00:00
puppet Merge "set url_base option in static web middleware" into stable/newton 2016-11-10 18:36:40 +00:00
tools Convert overcloud.yaml to support jinja2 templating 2016-09-09 16:23:47 -04:00
validation-scripts Change ping wait flag 2016-05-09 20:22:52 -04:00
.gitignore Rename overcloud-without-mergepy to overcloud. 2015-12-03 16:01:33 -05:00
.gitreview Update .gitreview for stable/newton 2016-09-29 13:00:01 -04:00
Gemfile Revert "Pin puppetlabs_spec_helper to 1.1.1" 2016-08-24 00:59:38 +00:00
LICENSE Add license file 2014-01-20 11:58:20 +01:00
MANIFEST.in Add release configuration. 2013-10-22 17:49:35 +01:00
README.rst Drop os-apply-config. No longer maintained. 2015-12-03 16:01:41 -05:00
Rakefile Make puppet manifests compliant with Puppet 4.x 2015-11-05 15:52:28 +01:00
all-nodes-validation.yaml network validation to ping test each interface 2015-07-24 16:36:57 -04:00
babel.cfg Add release configuration. 2013-10-22 17:49:35 +01:00
bootstrap-config.yaml Remove NO_SIGNAL from ControllerBootstrapNodeDeployment 2015-06-03 16:30:53 +02:00
capabilities-map.yaml Merge "Update capabilities-map.yaml" 2016-09-21 21:00:21 +00:00
default_passwords.yaml Move MySQL settings out of puppet/controller.yaml 2016-08-23 21:29:02 -04:00
hosts-config.yaml Split out hosts config deployment 2016-10-18 22:37:58 +00:00
j2_excludes.yaml Add generic template for custom roles. 2016-10-06 06:27:48 +00:00
net-config-bond.yaml Add constraint to prohibit balance-tcp from BondInterfaceOvsOptions 2016-08-25 21:57:28 -02:30
net-config-bridge.yaml Add Management Network For System Administration. 2015-12-18 13:05:54 -06:00
net-config-linux-bridge.yaml Adding ManagementIpSubnet to linux bridge net conf 2016-01-05 10:38:15 +00:00
net-config-noop.yaml Add Management Network For System Administration. 2015-12-18 13:05:54 -06:00
net-config-static-bridge-with-external-dhcp.yaml Use already Deployed/Installed servers 2016-07-11 16:20:07 -04:00
net-config-static-bridge.yaml Add missing ManagementIpSubnet 2016-04-12 11:32:09 +00:00
net-config-static.yaml Add net-config-static.yaml 2016-04-12 11:32:32 +00:00
overcloud-resource-registry-puppet.j2.yaml Reload haproxy configuration as a post-deployment step 2016-11-09 18:13:44 +00:00
overcloud.j2.yaml Move per role Services defaults into environment file 2016-11-07 15:10:21 +01:00
requirements.txt Add release configuration. 2013-10-22 17:49:35 +01:00
roles_data.yaml Add SNMP role to the CephStorage nodes 2016-11-08 15:35:26 +01:00
setup.cfg Drop deprecated templates/Makefile/merge.py 2015-11-25 15:00:13 -05:00
setup.py Add release configuration. 2013-10-22 17:49:35 +01:00
test-requirements.txt Add release configuration. 2013-10-22 17:49:35 +01:00
tox.ini Rename tox env to pep8 2016-02-11 12:29:36 -06:00

README.rst

tripleo-heat-templates

Heat templates to deploy OpenStack using OpenStack.

Features

The ability to deploy a multi-node, role based OpenStack deployment using OpenStack Heat. Notable features include:

  • Choice of deployment/configuration tooling: puppet, (soon) docker
  • Role based deployment: roles for the controller, compute, ceph, swift, and cinder storage
  • physical network configuration: support for isolated networks, bonding, and standard ctlplane networking

Directories

A description of the directory layout in TripleO Heat Templates.

  • environments: contains heat environment files that can be used with -e

    on the command like to enable features, etc.

  • extraconfig: templates used to enable 'extra' functionality. Includes

    functionality for distro specific registration and upgrades.

  • firstboot: example first_boot scripts that can be used when initially

    creating instances.

  • network: heat templates to help create isolated networks and ports
  • puppet: templates mostly driven by configuration with puppet. To use these

    templates you can use the overcloud-resource-registry-puppet.yaml.

  • validation-scripts: validation scripts useful to all deployment

    configurations