aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilien Macchi <emilien@redhat.com>2016-01-13 13:04:22 -0500
committerGiulio Fidente <gfidente@redhat.com>2016-03-05 03:23:04 +0100
commit664df3372d9b922c08a1e893ee49632613cbcc6b (patch)
tree0745a8ef289742a7b41275f06ccd1cb47df6314c
parent7981f69c034c5d08abade7f62161aeec65045814 (diff)
Allow to enable IPv6 on Corosync
To enable IPv6 in Corosync, you'll need to set the --ipv6 parameter when building the cluster. To do so, we need to specify this parameter in puppet configuration when running ::pacemaker::corosync class. So we have now a new parameter: CorosyncIPv6 which is a boolean, False by default. If set to True, it will pass right options to enable IPv6 when building the Pacemaker cluster. Change-Id: I485f1399964ddd7a201ed19ec6580b8a136b3acd
-rw-r--r--environments/network-isolation-v6.yaml2
-rw-r--r--overcloud.yaml5
-rw-r--r--puppet/controller.yaml6
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp11
4 files changed, 22 insertions, 2 deletions
diff --git a/environments/network-isolation-v6.yaml b/environments/network-isolation-v6.yaml
index 8a3d806e..d1d0818e 100644
--- a/environments/network-isolation-v6.yaml
+++ b/environments/network-isolation-v6.yaml
@@ -43,6 +43,8 @@ resource_registry:
OS::TripleO::BlockStorage::Ports::StorageMgmtPort: ../network/ports/storage_mgmt_v6.yaml
parameter_defaults:
+ # Enable IPv6 for Corosync. This is required when Corosync is using an IPv6 IP in the cluster.
+ CorosyncIPv6: True
# Enable IPv6 for MongoDB. This is required when MongoDB is using an IPv6 IP.
MongoDbIPv6: True
# Enable various IPv6 features in Nova.
diff --git a/overcloud.yaml b/overcloud.yaml
index c91d2e11..0f33665e 100644
--- a/overcloud.yaml
+++ b/overcloud.yaml
@@ -77,6 +77,10 @@ parameters:
default: []
description: Should be used for arbitrary ips.
type: json
+ CorosyncIPv6:
+ default: false
+ description: Enable IPv6 in Corosync
+ type: boolean
Debug:
default: ''
description: Set to True to enable debugging on all services.
@@ -906,6 +910,7 @@ resources:
CloudDomain: {get_param: CloudDomain}
ControlVirtualInterface: {get_param: ControlVirtualInterface}
ControllerExtraConfig: {get_param: controllerExtraConfig}
+ CorosyncIPv6: {get_param: CorosyncIPv6}
Debug: {get_param: Debug}
EnableFencing: {get_param: EnableFencing}
ManageFirewall: {get_param: ManageFirewall}
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index 733a9d72..6b121470 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -115,6 +115,10 @@ parameters:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
type: string
+ CorosyncIPv6:
+ default: false
+ description: Enable IPv6 in Corosync
+ type: boolean
Debug:
default: ''
description: Set to True to enable debugging on all services.
@@ -1158,6 +1162,7 @@ resources:
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
nova_enable_db_purge: {get_param: NovaEnableDBPurge}
nova_ipv6: {get_param: NovaIPv6}
+ corosync_ipv6: {get_param: CorosyncIPv6}
nova_password: {get_param: NovaPassword}
nova_dsn:
list_join:
@@ -1304,6 +1309,7 @@ resources:
enable_fencing: {get_input: enable_fencing}
enable_load_balancer: {get_input: enable_load_balancer}
hacluster_pwd: {get_input: pcsd_password}
+ corosync_ipv6: {get_input: corosync_ipv6}
tripleo::fencing::config: {get_input: fencing_config}
# Swift
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index fb36893d..1a13167b 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -62,6 +62,12 @@ if hiera('step') >= 1 {
}
$pacemaker_cluster_members = downcase(regsubst(hiera('controller_node_names'), ',', ' ', 'G'))
+ $corosync_ipv6 = str2bool(hiera('corosync_ipv6', false))
+ if $corosync_ipv6 {
+ $cluster_setup_extras = { '--ipv6' => '' }
+ } else {
+ $cluster_setup_extras = {}
+ }
user { 'hacluster':
ensure => present,
} ->
@@ -69,8 +75,9 @@ if hiera('step') >= 1 {
hacluster_pwd => hiera('hacluster_pwd'),
} ->
class { '::pacemaker::corosync':
- cluster_members => $pacemaker_cluster_members,
- setup_cluster => $pacemaker_master,
+ cluster_members => $pacemaker_cluster_members,
+ setup_cluster => $pacemaker_master,
+ cluster_setup_extras => $cluster_setup_extras,
}
class { '::pacemaker::stonith':
disable => !$enable_fencing,