63 lines
1.7 KiB
Puppet
63 lines
1.7 KiB
Puppet
# ovn controller
|
|
# == Class: ovn::controller
|
|
#
|
|
# installs ovn and starts the ovn-controller service
|
|
#
|
|
# === Parameters:
|
|
#
|
|
# [*ovn_remote*]
|
|
# URL of the remote ovsdb-server that manages ovn-nb and ovn-sb dbs
|
|
#
|
|
# [*ovn_encap_type*]
|
|
# (Optional) The encapsulation type to be used
|
|
# Defaults to 'geneve'
|
|
#
|
|
# [*ovn_encap_ip*]
|
|
# IP address of the hypervisor(in which this module is installed) to which
|
|
# the other controllers would use to create a tunnel to this controller
|
|
#
|
|
class ovn::controller(
|
|
$ovn_remote = undef,
|
|
$ovn_encap_type = 'geneve',
|
|
$ovn_encap_ip = undef
|
|
) {
|
|
include ::ovn::params
|
|
include ::vswitch::ovs
|
|
|
|
#validate_string($ovn_remote)
|
|
#validate_ip_address($ovn_encap_ip)
|
|
|
|
service { $::ovn::params::ovn_controller_service_name:
|
|
ensure => true,
|
|
name => $::ovn::params::ovn_controller_service_name,
|
|
enable => true,
|
|
require => [Vs_config['external_ids:ovn-remote'],
|
|
Vs_config['external_ids:ovn-encap-type'],
|
|
Vs_config['external_ids:ovn-encap-ip']]
|
|
}
|
|
|
|
package { $::ovn::params::ovn_package_name:
|
|
ensure => present,
|
|
name => $::ovn::params::ovn_package_name,
|
|
before => Service['controller']
|
|
}
|
|
|
|
vs_config { 'external_ids:ovn-remote':
|
|
ensure => present,
|
|
value => $ovn_remote,
|
|
require => Service['openvswitch'],
|
|
}
|
|
|
|
vs_config { 'external_ids:ovn-encap-type':
|
|
ensure => present,
|
|
value => $ovn_encap_type,
|
|
require => Service['openvswitch'],
|
|
}
|
|
|
|
vs_config { 'external_ids:ovn-encap-ip':
|
|
ensure => present,
|
|
value => $ovn_encap_ip,
|
|
require => Service['openvswitch'],
|
|
}
|
|
}
|