Browse Source

Allow ovn_db_host to be of type array

On an OVN clustered database environment, there is no OVN VIP as all
OVN databases are active. Neutron has to be configured to point to all
OVN database servers in the cluster.

Co-Authored-By: Michele Baldessari <michele@acksyn.org>
Change-Id: Ib8624f0c2e87de18a990060c3cb939c13ec3a6f2
changes/66/778066/4
Carlos Goncalves 5 months ago
parent
commit
0b51d8258c
  1. 12
      manifests/profile/base/neutron/agents/ovn.pp
  2. 12
      manifests/profile/base/neutron/ovn_metadata.pp
  3. 14
      manifests/profile/base/neutron/plugins/ml2/ovn.pp

12
manifests/profile/base/neutron/agents/ovn.pp

@ -17,7 +17,9 @@
# OVN Neutron agent profile for tripleo
#
# [*ovn_db_host*]
# (Optional) The IP-Address where OVN DBs are listening.
# (Optional) The IP-Address where OVN DBs are listening. If passed a list it
# will construct a comma separated string like
# protocol:ip1:port,protocol:ip2:port.
# Defaults to hiera('ovn_dbs_vip')
#
# [*ovn_sbdb_port*]
@ -51,8 +53,14 @@ class tripleo::profile::base::neutron::agents::ovn (
$ovn_chassis_mac_map = hiera('ovn_chassis_mac_map', undef),
) {
if $step >= 4 {
if is_string($ovn_db_host) {
$ovn_remote_real = join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_sbdb_port}"], ':')
} elsif is_array($ovn_db_host) {
$ovn_remote_real = join($ovn_db_host.map |$i| { "${protocol}:${normalize_ip_for_uri($i)}:${ovn_sbdb_port}" }, ',')
}
class { 'ovn::controller':
ovn_remote => join([$protocol, normalize_ip_for_uri($ovn_db_host), "${ovn_sbdb_port}"], ':'),
ovn_remote => $ovn_remote_real,
enable_ovn_match_northd => true,
ovn_chassis_mac_map => $ovn_chassis_mac_map,
}

12
manifests/profile/base/neutron/ovn_metadata.pp

@ -19,7 +19,8 @@
# === Parameters
#
# [*ovn_db_host*]
# The IP-Address where OVN DBs are listening.
# The IP-Address where OVN DBs are listening. If passed a list it will construct
# a comma separated string like protocol:ip1:port,protocol:ip2:port.
# Defaults to hiera('ovn_dbs_vip')
#
# [*ovn_sb_port*]
@ -65,8 +66,15 @@ class tripleo::profile::base::neutron::ovn_metadata (
) {
if $step >= 4 {
include tripleo::profile::base::neutron
if is_string($ovn_db_host) {
$ovn_sb_connection_real = join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_sb_port}"], ':')
} elsif is_array($ovn_db_host) {
$ovn_sb_connection_real = join($ovn_db_host.map |$i| { "${protocol}:${normalize_ip_for_uri($i)}:${ovn_sb_port}" }, ',')
}
class { 'neutron::agents::ovn_metadata':
ovn_sb_connection => join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_sb_port}"], ':'),
ovn_sb_connection => $ovn_sb_connection_real,
ovn_sb_private_key => $ovn_sb_private_key,
ovn_sb_certificate => $ovn_sb_certificate,
ovn_sb_ca_cert => $ovn_sb_ca_cert,

14
manifests/profile/base/neutron/plugins/ml2/ovn.pp

@ -17,7 +17,8 @@
# OVN Neutron ML2 profile for tripleo
#
# [*ovn_db_host*]
# The IP-Address where OVN DBs are listening.
# The IP-Address where OVN DBs are listening. If passed a list it will construct
# a comma separated string like protocol:ip1:port,protocol:ip2:port.
# Defaults to hiera('ovn_dbs_vip')
#
# [*ovn_nb_port*]
@ -79,9 +80,16 @@ class tripleo::profile::base::neutron::plugins::ml2::ovn (
$step = Integer(hiera('step'))
) {
if $step >= 4 {
if is_string($ovn_db_host) {
$ovn_nb_connection_real = join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_nb_port}"], ':')
$ovn_sb_connection_real = join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_sb_port}"], ':')
} elsif is_array($ovn_db_host) {
$ovn_nb_connection_real = join($ovn_db_host.map |$i| { "${protocol}:${normalize_ip_for_uri($i)}:${ovn_nb_port}" }, ',')
$ovn_sb_connection_real = join($ovn_db_host.map |$i| { "${protocol}:${normalize_ip_for_uri($i)}:${ovn_sb_port}" }, ',')
}
class { 'neutron::plugins::ml2::ovn':
ovn_nb_connection => join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_nb_port}"], ':'),
ovn_sb_connection => join(["${protocol}", normalize_ip_for_uri($ovn_db_host), "${ovn_sb_port}"], ':'),
ovn_nb_connection => $ovn_nb_connection_real,
ovn_sb_connection => $ovn_sb_connection_real,
ovn_nb_private_key => $ovn_nb_private_key,
ovn_nb_certificate => $ovn_nb_certificate,
ovn_nb_ca_cert => $ovn_nb_ca_cert,

Loading…
Cancel
Save