diff options
author | Tim Rozet <trozet@redhat.com> | 2017-01-25 15:09:32 -0500 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2017-03-16 16:13:10 -0400 |
commit | 0cec9b6f4936a056573a69257095fd56b69a816f (patch) | |
tree | 5addedcae5a92e647bb5403d93345558261a6d66 /manifests/profile/base/neutron/plugins | |
parent | 4c07c75d5b77fd146ada9c464769822a828b4601 (diff) |
Enables OpenDaylight Clustering in HA deployments
Previously ODL was restricted to only running on the first node in an
tripleO HA deployment. This patches enables clustering for ODL and
allows multiple ODL instances (minimum 3 for HA).
Partially-implements: blueprint opendaylight-ha
Change-Id: Ic9a955a1c2afc040b2f9c6fb86573c04a60f9f31
Signed-off-by: Tim Rozet <trozet@redhat.com>
Diffstat (limited to 'manifests/profile/base/neutron/plugins')
-rw-r--r-- | manifests/profile/base/neutron/plugins/ml2/opendaylight.pp | 9 | ||||
-rw-r--r-- | manifests/profile/base/neutron/plugins/ovs/opendaylight.pp | 14 |
2 files changed, 15 insertions, 8 deletions
diff --git a/manifests/profile/base/neutron/plugins/ml2/opendaylight.pp b/manifests/profile/base/neutron/plugins/ml2/opendaylight.pp index c120931..2618d4f 100644 --- a/manifests/profile/base/neutron/plugins/ml2/opendaylight.pp +++ b/manifests/profile/base/neutron/plugins/ml2/opendaylight.pp @@ -30,6 +30,10 @@ # (Optional) Password to configure for OpenDaylight # Defaults to 'admin' # +# [*odl_url_ip*] +# (Optional) Virtual IP address for ODL Api Service +# Defaults to hiera('opendaylight_api_vip') +# # [*conn_proto*] # (Optional) Protocol to use to for ODL REST access # Defaults to hiera('opendaylight::nb_connection_protocol') @@ -43,14 +47,13 @@ class tripleo::profile::base::neutron::plugins::ml2::opendaylight ( $odl_port = hiera('opendaylight::odl_rest_port'), $odl_username = hiera('opendaylight::username'), $odl_password = hiera('opendaylight::password'), + $odl_url_ip = hiera('opendaylight_api_vip'), $conn_proto = hiera('opendaylight::nb_connection_protocol'), $step = hiera('step'), ) { if $step >= 4 { - $odl_url_ip = hiera('opendaylight_api_vip') - - if ! $odl_url_ip { fail('OpenDaylight Controller IP/VIP is Empty') } + if ! $odl_url_ip { fail('OpenDaylight API VIP is Empty') } class { '::neutron::plugins::ml2::opendaylight': odl_username => $odl_username, diff --git a/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp b/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp index 91c5168..4da8df9 100644 --- a/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp +++ b/manifests/profile/base/neutron/plugins/ovs/opendaylight.pp @@ -30,6 +30,10 @@ # (Optional) List of OpenStack Controller IPs for ODL API # Defaults to hiera('opendaylight_api_node_ips') # +# [*odl_url_ip*] +# (Optional) Virtual IP address for ODL Api Service +# Defaults to hiera('opendaylight_api_vip') +# # [*conn_proto*] # (Optional) Protocol to use to for ODL REST access # Defaults to hiera('opendaylight::nb_connection_protocol') @@ -43,25 +47,25 @@ class tripleo::profile::base::neutron::plugins::ovs::opendaylight ( $odl_port = hiera('opendaylight::odl_rest_port'), $odl_check_url = hiera('opendaylight_check_url'), $odl_api_ips = hiera('opendaylight_api_node_ips'), + $odl_url_ip = hiera('opendaylight_api_vip'), $conn_proto = hiera('opendaylight::nb_connection_protocol'), $step = hiera('step'), ) { if $step >= 4 { - $opendaylight_controller_ip = $odl_api_ips[0] - $odl_url_ip = hiera('opendaylight_api_vip') - - if ! $opendaylight_controller_ip { fail('OpenDaylight Controller IP is Empty') } + if empty($odl_api_ips) { fail('No IPs assigned to OpenDaylight Api Service') } if ! $odl_url_ip { fail('OpenDaylight API VIP is Empty') } # Build URL to check if ODL is up before connecting OVS $opendaylight_url = "${conn_proto}://${odl_url_ip}:${odl_port}/${odl_check_url}" + $odl_ovsdb_str = join(regsubst($odl_api_ips, '.+', 'tcp:\0:6640'), ' ') + class { '::neutron::plugins::ovs::opendaylight': tunnel_ip => hiera('neutron::agents::ml2::ovs::local_ip'), odl_check_url => $opendaylight_url, - odl_ovsdb_iface => "tcp:${opendaylight_controller_ip}:6640", + odl_ovsdb_iface => $odl_ovsdb_str, } } } |