
This adds defined anchor points for external modules to hook into the software install, config and service dependency chain. This allows external modules to manage software installation (virtualenv, containers, etc) and service management (pacemaker) without needing rely on resources that may change or be renamed. Change-Id: Idb1332dd498bb3065720f2ccaf68e6b0e9fa80c3
111 lines
3.2 KiB
Puppet
111 lines
3.2 KiB
Puppet
#
|
|
# Configure the Nuage plugin for neutron.
|
|
#
|
|
# === Parameters
|
|
#
|
|
# [*nuage_net_partition_name*]
|
|
# (required) The net partition under which the VMs will be
|
|
# seen in the VSD
|
|
#
|
|
# [*nuage_vsd_ip*]
|
|
# (required) IP address of the Virtual Services Directory
|
|
#
|
|
# [*nuage_vsd_username*]
|
|
# (required) Username to be used to log into VSD
|
|
#
|
|
# [*nuage_vsd_password*]
|
|
# (required) Password to be used to log into VSD
|
|
#
|
|
# [*nuage_vsd_organization*]
|
|
# (required) Parameter required to log into VSD
|
|
#
|
|
# [*nuage_base_uri_version*]
|
|
# (required) URI version to be used based on the VSD release
|
|
# For example v3_0
|
|
#
|
|
# [*nuage_cms_id*]
|
|
# (required) CMS ID generated by the VSD
|
|
#
|
|
# [*nuage_auth_resource*]
|
|
# (optional) The auth resource value to be use to connect
|
|
# to VSD. The default is /me
|
|
#
|
|
# [*nuage_server_ssl*]
|
|
# (optional) Flag to determine whether to use ssl connection
|
|
# to connect to VSD. The default is True
|
|
#
|
|
# [*purge_config*]
|
|
# (optional) Whether to set only the specified config options
|
|
# in the nuage config.
|
|
# Defaults to false.
|
|
#
|
|
class neutron::plugins::nuage (
|
|
$nuage_net_partition_name,
|
|
$nuage_vsd_ip,
|
|
$nuage_vsd_username,
|
|
$nuage_vsd_password,
|
|
$nuage_vsd_organization,
|
|
$nuage_base_uri_version,
|
|
$nuage_cms_id,
|
|
$nuage_auth_resource = '/me',
|
|
$nuage_server_ssl = true,
|
|
$purge_config = false,
|
|
) {
|
|
|
|
include ::neutron::deps
|
|
include ::neutron::params
|
|
|
|
file { '/etc/neutron/plugins/nuage':
|
|
ensure => directory,
|
|
tag => 'neutron-config-file',
|
|
}
|
|
|
|
if $::osfamily == 'Debian' {
|
|
file_line { '/etc/default/neutron-server:NEUTRON_PLUGIN_CONFIG':
|
|
path => '/etc/default/neutron-server',
|
|
match => '^NEUTRON_PLUGIN_CONFIG=(.*)$',
|
|
line => "NEUTRON_PLUGIN_CONFIG=${::neutron::params::nuage_config_file}",
|
|
tag => 'neutron-file-line',
|
|
}
|
|
}
|
|
|
|
if $::osfamily == 'Redhat' {
|
|
file { '/etc/neutron/plugin.ini':
|
|
ensure => link,
|
|
require => File['/etc/neutron/plugins/nuage/plugin.ini'],
|
|
target => $::neutron::params::nuage_config_file,
|
|
tag => 'neutron-config-file',
|
|
}
|
|
}
|
|
|
|
file { '/etc/neutron/plugins/nuage/plugin.ini':
|
|
ensure => file,
|
|
owner => 'root',
|
|
group => 'neutron',
|
|
require => File['/etc/neutron/plugins/nuage'],
|
|
mode => '0640',
|
|
tag => 'neutron-config-file',
|
|
}
|
|
|
|
resources { 'neutron_plugin_nuage':
|
|
purge => $purge_config,
|
|
}
|
|
|
|
$nuage_base_uri_base = '/nuage/api'
|
|
neutron_plugin_nuage {
|
|
'RESTPROXY/default_net_partition_name': value => $nuage_net_partition_name;
|
|
'RESTPROXY/server': value => $nuage_vsd_ip;
|
|
'RESTPROXY/serverauth': value => "${nuage_vsd_username}:${nuage_vsd_password}";
|
|
'RESTPROXY/organization': value => $nuage_vsd_organization;
|
|
'RESTPROXY/auth_resource': value => $nuage_auth_resource;
|
|
'RESTPROXY/serverssl': value => $nuage_server_ssl;
|
|
'RESTPROXY/base_uri': value => "${nuage_base_uri_base}/${nuage_base_uri_version}";
|
|
'RESTPROXY/cms_id': value => $nuage_cms_id;
|
|
}
|
|
|
|
if ($::neutron::core_plugin != 'neutron.plugins.nuage.plugin.NuagePlugin') and
|
|
($::neutron::core_plugin != 'nuage') {
|
|
fail('Nuage plugin should be the core_plugin in neutron.conf')
|
|
}
|
|
}
|