stx-puppet/puppet-manifests/src/modules/platform/manifests/smapi.pp

77 lines
2.0 KiB
Puppet

class platform::smapi::params (
$auth_username = undef,
$keystone_auth_url = undef,
$keystone_username = undef,
$keystone_password = undef,
$public_url = undef,
$admin_url = undef,
$bind_ip = undef,
$port = undef,
$region = undef,
) {}
class platform::smapi::haproxy
inherits ::platform::smapi::params {
include ::platform::params
include ::platform::haproxy::params
platform::haproxy::proxy { 'sm-api-internal':
server_name => 's-smapi-internal',
public_ip_address => $::platform::haproxy::params::private_ip_address,
public_port => $port,
public_api => false,
private_ip_address => $bind_ip,
private_port => $port,
}
platform::haproxy::proxy { 'sm-api-public':
server_name => 's-smapi-public',
public_port => $port,
private_port => $port,
}
# Configure rules for DC https enabled admin endpoint.
if ($::platform::params::distributed_cloud_role == 'systemcontroller' or
$::platform::params::distributed_cloud_role == 'subcloud') {
platform::haproxy::proxy { 'sm-api-admin':
https_ep_type => 'admin',
server_name => 's-smapi-admin',
public_ip_address => $::platform::haproxy::params::private_ip_address,
public_port => $port + 1,
private_port => $port,
}
}
}
class platform::smapi::common
inherits ::platform::smapi::params {
if ($::platform::params::init_keystone) {
include ::smapi::keystone::auth
}
include ::platform::params
$bind_host_name = $::platform::params::hostname
file { '/etc/sm-api/sm-api.conf':
ensure => 'present',
content => template('platform/sm-api.conf.erb'),
owner => 'root',
group => 'root',
mode => '0400',
}
}
class platform::smapi {
include ::platform::smapi::common
include ::platform::smapi::haproxy
}
class platform::smapi::rehome {
include ::platform::smapi::common
File['/etc/sm-api/sm-api.conf']
~> service { 'sm-api.service':
ensure => 'running',
enable => true,
}
}