summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-16 08:22:42 +0000
committerGerrit Code Review <review@openstack.org>2015-04-16 08:22:42 +0000
commit49c1b3a1d4db826f3fc21ef90f82c584937cefc2 (patch)
tree191ac3a83a7dd6ff46c0de412260e649384bc08f
parentbdaeca208cdb879a6875c74a6324af677da95449 (diff)
parent5963c9a58aeba728eb067295520685a87713fca1 (diff)
Merge "Perform basic setup of pacemaker cluster on controllers"
-rw-r--r--controller.yaml3
-rw-r--r--overcloud-without-mergepy.yaml6
-rw-r--r--puppet/controller-puppet.yaml8
-rw-r--r--puppet/hieradata/controller.yaml4
-rw-r--r--puppet/manifests/overcloud_controller.pp17
5 files changed, 38 insertions, 0 deletions
diff --git a/controller.yaml b/controller.yaml
index 9c0fa0cd..4a21bac7 100644
--- a/controller.yaml
+++ b/controller.yaml
@@ -59,6 +59,9 @@ parameters:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
type: string
+ CorosyncAuthKey:
+ description: Auth encryption key for corosync
+ type: string
Debug:
default: ''
description: Set to True to enable debugging on all services.
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index d8c84bc0..f61536ca 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -516,6 +516,11 @@ resources:
HeatAuthEncryptionKey:
type: OS::Heat::RandomString
+ CorosyncAuthKey:
+ type: OS::Heat::RandomString
+ properties:
+ length: 128
+
Controller:
type: OS::Heat::ResourceGroup
properties:
@@ -535,6 +540,7 @@ resources:
CloudName: {get_param: CloudName}
ControlVirtualInterface: {get_param: ControlVirtualInterface}
ControllerExtraConfig: {get_param: controllerExtraConfig}
+ CorosyncAuthKey: {get_resource: CorosyncAuthKey}
Debug: {get_param: Debug}
EnableGalera: {get_param: EnableGalera}
ExtraConfig: {get_param: ExtraConfig}
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index f9f40a52..c3efc82e 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -59,6 +59,9 @@ parameters:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
type: string
+ CorosyncAuthKey:
+ description: Auth encryption key for corosync
+ type: string
Debug:
default: ''
description: Set to True to enable debugging on all services.
@@ -433,6 +436,7 @@ resources:
bootstack_nodeid: {get_attr: [Controller, name]}
controller_host: {get_attr: [Controller, networks, ctlplane, 0]}
controller_virtual_ip: {get_param: VirtualIP}
+ corosync_auth_key: {get_param: CorosyncAuthKey}
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
heat.watch_server_url:
list_join:
@@ -622,6 +626,10 @@ resources:
bootstack_nodeid: {get_input: bootstack_nodeid}
controller_host: {get_input: controller_host} #local-ipv4
+ # Pacemaker
+ corosync::authkey: {get_input: corosync_auth_key}
+ corosync::bind_address: {get_input: controller_host}
+
# Swift
swift::proxy::proxy_local_net_ip: {get_input: controller_host}
swift::proxy::authtoken::auth_uri: {get_input: keystone_auth_uri}
diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml
index 523e9dbe..11ec5e27 100644
--- a/puppet/hieradata/controller.yaml
+++ b/puppet/hieradata/controller.yaml
@@ -72,6 +72,10 @@ heat::engine::heat_stack_user_role: ''
heat::engine::configure_delegated_roles: false
heat::engine::trusts_delegated_roles: []
+# pacemaker
+corosync::authkey_source: 'string'
+corosync::multicast_address: broadcast
+
mysql::server::manage_config_file: true
tripleo::loadbalancer::keystone_admin: true
diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp
index bc4a25bb..aa053bd8 100644
--- a/puppet/manifests/overcloud_controller.pp
+++ b/puppet/manifests/overcloud_controller.pp
@@ -31,6 +31,23 @@ if hiera('step') >= 1 {
controller_hosts => $controller_node_ips,
}
+ class { '::corosync':
+ quorum_members => $controller_node_ips,
+ }
+ corosync::service { 'pacemaker':
+ version => '0',
+ }
+ service { 'pacemaker':
+ ensure => running,
+ require => Service['corosync'],
+ }
+ cs_property { 'stonith-enabled':
+ value => 'false',
+ }
+ cs_property { 'no-quorum-policy':
+ value => 'ignore',
+ }
+
}
if hiera('step') >= 2 {