fuel-plugin-nsxv/deployment_scripts/puppet/modules/nsxv/manifests/init.pp

57 lines
1.5 KiB
Puppet

class nsxv (
$nsxv_config_dir = '/etc/neutron/plugins/vmware',
$neutron_plugin_name = 'python-vmware-nsx',
$lbaas_plugin_name = 'python-neutron-lbaas',
$plugin_name = 'nsxv'
) {
$neutron_config = hiera_hash('neutron_config')
$settings = hiera($plugin_name)
# Do not remove unused variables: template nsx.ini.erb refers to them
$nova_metadata_ips = hiera('public_vip')
$nova_metadata_port = '8775'
$metadata_shared_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
$nsxv_config_dirs = [ '/etc/neutron', '/etc/neutron/plugins', '/etc/neutron/plugins/vmware' ]
$cluster_moid = get_vcenter_cluster_id($settings['nsxv_datacenter_moid'])
if ! $settings['nsxv_insecure'] {
$ca_certificate_content = $settings['nsxv_ca_file']['content']
$ca_filename = $settings['nsxv_ca_file']['name']
$ca_file = "${nsxv_config_dir}/${ca_filename}"
file { $ca_file:
ensure => present,
content => $ca_certificate_content,
require => File[$nsxv_config_dirs],
}
}
package { $neutron_plugin_name:
ensure => latest,
}
package { $lbaas_plugin_name:
ensure => latest,
}
package { 'tcl-testvm':
ensure => latest,
}
file { $nsxv_config_dirs:
ensure => directory
}
file { "${nsxv_config_dir}/nsx.ini":
ensure => file,
content => template("${module_name}/nsx.ini.erb"),
require => File[$nsxv_config_dirs],
}
file { '/etc/neutron/plugin.ini':
ensure => link,
target => "${nsxv_config_dir}/nsx.ini",
replace => true,
require => File[$nsxv_config_dirs]
}
}