Apply plugin best practices

* shared variables moved in class nsxv :: params
* from the module nsxv removed classes that do not use templates or
  external files(from directory "files" module)
* hiera calls from classes replaced to parameterized classes
* fix keystone auth url and neutron url for compute-vmware role
* more "cosmetic" fixes

Change-Id: I24da204d8f433439cc6f60501d479c84cd3c21c3
This commit is contained in:
Artem Savinov 2016-03-31 14:40:57 +03:00
parent 2e90bf82f2
commit b92706a012
17 changed files with 151 additions and 140 deletions

View File

@ -1,3 +1,40 @@
notice('fuel-plugin-nsxv: compute_vmware_nova_config.pp')
class { '::nsxv::compute_vmware_nova_config': }
include ::nova::params
include ::nsxv::params
$neutron_config = hiera_hash('neutron_config')
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
$nova_parameters = {
'neutron/service_metadata_proxy' => { value => 'True' },
'neutron/metadata_proxy_shared_secret' => { value => $neutron_metadata_proxy_secret }
}
$management_vip = hiera('management_vip')
$service_endpoint = hiera('service_endpoint', $management_vip)
$ssl_hash = hiera_hash('use_ssl', {})
$neutron_username = pick($neutron_config['keystone']['admin_user'], 'neutron')
$neutron_password = $neutron_config['keystone']['admin_password']
$neutron_tenant_name = pick($neutron_config['keystone']['admin_tenant'], 'services')
$region = hiera('region', 'RegionOne')
$admin_identity_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
$admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip])
$neutron_internal_protocol = get_ssl_property($ssl_hash, {}, 'neutron', 'internal', 'protocol', 'http')
$neutron_endpoint = get_ssl_property($ssl_hash, {}, 'neutron', 'internal', 'hostname', [hiera('neutron_endpoint', ''), $management_vip])
$auth_api_version = 'v3'
$admin_identity_uri = "${admin_identity_protocol}://${admin_identity_address}:35357"
$neutron_auth_url = "${admin_identity_uri}/${auth_api_version}"
$neutron_url = "${neutron_internal_protocol}://${neutron_endpoint}:9696"
class {'nova::network::neutron':
neutron_password => $neutron_password,
neutron_project_name => $neutron_tenant_name,
neutron_region_name => $region,
neutron_username => $neutron_username,
neutron_auth_url => $neutron_auth_url,
neutron_url => $neutron_url,
neutron_ovs_bridge => '',
neutron_url_timeout => $::nsxv::params::neutron_url_timeout,
}
create_resources(nova_config, $nova_parameters)

View File

@ -0,0 +1,7 @@
notice('fuel-plugin-nsxv: haproxy-neutron-config.pp')
include openstack::ha::haproxy_restart
class { '::nsxv::haproxy_neutron_config':
notify => Exec['haproxy-restart'],
}

View File

@ -1,9 +1,9 @@
notice('fuel-plugin-nsxv: haproxy-nova-metadata-config.pp')
include openstack::ha::haproxy_restart
include ::openstack::ha::haproxy_restart
include ::nsxv::params
$plugin_name = 'NAME'
$settings = hiera($plugin_name)
$settings = hiera($::nsxv::params::plugin_name)
if $settings['nsxv_metadata_listen_mgmt'] {
$metadata_listen_ip = hiera('management_vip')
@ -12,6 +12,6 @@ if $settings['nsxv_metadata_listen_mgmt'] {
}
class { 'nsxv::haproxy_nova_metadata_config':
metadata_listen_ip => $metadata_listen_ip,
notify => Exec['haproxy-restart'],
metadata_listen => "${metadata_listen_ip}:${::nsxv::params::nova_metadata_port}",
notify => Exec['haproxy-restart'],
}

View File

@ -1,5 +1,7 @@
notice('fuel-plugin-nsxv: hiera-override.pp')
include ::nsxv::params
class { '::nsxv::hiera_override':
plugin_name => 'NAME',
plugin_name => $::nsxv::params::plugin_name,
}

View File

@ -1,7 +0,0 @@
notice('fuel-plugin-nsxv: neutron-haproxy-config.pp')
include openstack::ha::haproxy_restart
class { '::nsxv::neutron_haproxy_config':
notify => Exec['haproxy-restart'],
}

View File

@ -1,14 +1,13 @@
notice('fuel-plugin-nsxv: neutron-network-create.pp')
$plugin_name = 'NAME'
include ::nsxv::params
$access_hash = hiera_hash('access',{})
$controller_node = hiera('service_endpoint')
$neutron_config = hiera_hash('neutron_config')
$floating_net = try_get_value($neutron_config, 'default_floating_net', 'net04_ext')
$internal_net = try_get_value($neutron_config, 'default_private_net', 'net04')
$os_tenant_name = $access_hash['tenant']
$settings = hiera($plugin_name)
$os_tenant_name = try_get_value($access_hash, 'tenant', 'admin')
$settings = hiera($::nsxv::params::plugin_name)
if !empty($settings['nsxv_floating_ip_range']) and !empty($settings['nsxv_floating_net_cidr']) {
$floating_ip_range = split($settings['nsxv_floating_ip_range'], '-')

View File

@ -1,7 +1,8 @@
notice('fuel-plugin-nsxv: nsxv-config.pp')
$plugin_name = 'NAME'
$settings = hiera($plugin_name)
include ::nsxv::params
$settings = hiera($::nsxv::params::plugin_name)
$neutron_config = hiera_hash('neutron_config')
$metadata_shared_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
@ -25,6 +26,8 @@ if $settings['nsxv_mgt_reserve_ip'] {
class { '::nsxv':
metadata_shared_secret => $metadata_shared_secret,
nova_metadata_port => $::nsxv::params::nova_metadata_port,
neutron_url_timeout => $::nsxv::params::neutron_url_timeout,
settings => $settings,
nova_metadata_ips => $nova_metadata_ips,
mgt_ip => $mgt_ip,

View File

@ -1,11 +1,8 @@
#!/bin/bash
metadata_listen_ip="$1"
metadata_listen_port='8775'
metadata_listen="$metadata_listen_ip:$metadata_listen_port"
novaHaproxyConf="$(find /etc/haproxy/conf.d -name '*nova-metadata-api*')"
tempFile="$(mktemp)"
awk -v metadata_listen="$metadata_listen" '
awk -v metadata_listen="$1" '
BEGIN {
ipListen=0
}

View File

@ -1,35 +0,0 @@
class nsxv::compute_vmware_nova_config (
$neutron_url_timeout = '600',
) {
include ::nova::params
$neutron_config = hiera_hash('neutron_config')
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
$nova_parameters = {
'neutron/service_metadata_proxy' => { value => 'True' },
'neutron/metadata_proxy_shared_secret' => { value => $neutron_metadata_proxy_secret }
}
$management_vip = hiera('management_vip')
$service_endpoint = hiera('service_endpoint')
$neutron_endpoint = hiera('neutron_endpoint', $management_vip)
$neutron_admin_username = pick($neutron_config['keystone']['admin_user'], 'neutron')
$neutron_admin_password = $neutron_config['keystone']['admin_password']
$neutron_admin_tenant_name = pick($neutron_config['keystone']['admin_tenant'], 'services')
$neutron_admin_auth_url = "http://${service_endpoint}:35357/v2.0"
$neutron_url = "http://${neutron_endpoint}:9696"
$region = hiera('region', 'RegionOne')
class {'nova::network::neutron':
neutron_password => $neutron_admin_password,
neutron_project_name => $neutron_admin_tenant_name,
neutron_region_name => $region,
neutron_username => $neutron_admin_username,
neutron_auth_url => $neutron_admin_auth_url,
neutron_url => $neutron_url,
neutron_ovs_bridge => '',
neutron_url_timeout => $neutron_url_timeout,
}
create_resources(nova_config, $nova_parameters)
}

View File

@ -0,0 +1,14 @@
class nsxv::haproxy_neutron_config {
file { '/tmp/haproxy-neutron-config.sh':
ensure => file,
mode => '0755',
source => "puppet:///modules/${module_name}/haproxy-neutron-config.sh",
replace => true,
}
exec { 'neutron active/backup mode':
command => '/tmp/haproxy-neutron-config.sh',
logoutput => on_failure,
provider => 'shell',
require => File['/tmp/haproxy-neutron-config.sh'],
}
}

View File

@ -1,16 +1,16 @@
class nsxv::haproxy_nova_metadata_config (
$metadata_listen_ip,
$metadata_listen,
) {
file { '/tmp/nova-haproxy-config.sh':
file { '/tmp/haproxy-nova-metadata-config.sh':
ensure => file,
mode => '0755',
source => "puppet:///modules/${module_name}/nova-haproxy-config.sh",
source => "puppet:///modules/${module_name}/haproxy-nova-metadata-config.sh",
replace => true,
}
exec { 'set nova metadata listen ip':
command => "/tmp/nova-haproxy-config.sh ${metadata_listen_ip}",
command => "/tmp/haproxy-nova-metadata-config.sh ${metadata_listen}",
logoutput => on_failure,
provider => 'shell',
require => File['/tmp/nova-haproxy-config.sh'],
require => File['/tmp/haproxy-nova-metadata-config.sh'],
}
}

View File

@ -5,13 +5,14 @@ class nsxv (
$nsx_plugin_name = 'python-vmware-nsx',
$lbaas_plugin_name = 'python-neutron-lbaas',
$neutron_url_timeout = '600',
$nova_metadata_port = '8775',
$metadata_shared_secret,
$settings,
$nova_metadata_ips,
$nova_metadata_port,
$mgt_ip,
$mgt_netmask,
$mgt_gateway,
$neutron_url_timeout,
) {
$cluster_moid = get_vcenter_cluster_id($settings['nsxv_datacenter_moid'])

View File

@ -1,14 +0,0 @@
class nsxv::neutron_haproxy_config {
file { '/tmp/neutron-haproxy-config.sh':
ensure => file,
mode => '0755',
source => "puppet:///modules/${module_name}/neutron-haproxy-config.sh",
replace => true,
}
exec { 'neutron active/backup mode':
command => '/tmp/neutron-haproxy-config.sh',
logoutput => on_failure,
provider => 'shell',
require => File['/tmp/neutron-haproxy-config.sh'],
}
}

View File

@ -0,0 +1,6 @@
class nsxv::params {
# timout in seconds
$neutron_url_timeout = '600'
$plugin_name = 'nsxv'
$nova_metadata_port = '8775'
}

View File

@ -29,7 +29,7 @@
puppet_manifest: puppet/manifests/compute-vmware-nova-config.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 300
- id: openstack-haproxy-nova-metadata
- id: openstack-haproxy-nova-nsxv
version: 2.0.0
type: puppet
groups: [primary-controller,controller]
@ -39,6 +39,16 @@
puppet_manifest: puppet/manifests/haproxy-nova-metadata-config.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 120
- id: openstack-haproxy-neutron-nsxv
version: 2.0.0
type: puppet
groups: [primary-controller, controller]
required_for: [openstack-haproxy]
requires: [openstack-haproxy-neutron]
parameters:
puppet_manifest: puppet/manifests/haproxy-neutron-config.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 120
- id: nsxv-install
version: 2.0.0
type: puppet
@ -49,16 +59,62 @@
puppet_manifest: puppet/manifests/nsxv-config.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 300
- id: openstack-haproxy-neutron-nsxv
- id: openstack-network-neutron-policy
version: 2.0.0
type: puppet
groups: [primary-controller, controller]
required_for: [openstack-haproxy]
requires: [openstack-haproxy-neutron]
groups: [primary-controller,controller]
required_for: [openstack-network-neutron-start,primary-openstack-network-neutron-start]
requires: [openstack-network-server-config]
parameters:
puppet_manifest: puppet/manifests/neutron-haproxy-config.pp
puppet_manifest: puppet/manifests/neutron-server-policy.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 300
- id: openstack-network-neutron-start
version: 2.0.0
refresh_on: [neutron_config]
type: puppet
groups: [controller]
required_for: [openstack-network-end]
requires: [openstack-network-neutron-policy,nsxv-install]
cross-depends:
- name: primary-openstack-network-neutron-start
parameters:
puppet_manifest: puppet/manifests/neutron-server-start.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1800
- id: primary-openstack-network-neutron-start
version: 2.0.0
refresh_on: [neutron_config]
type: puppet
groups: [primary-controller]
required_for: [openstack-network-networks-nsxv]
requires: [openstack-network-neutron-policy,nsxv-install]
parameters:
puppet_manifest: puppet/manifests/neutron-server-start.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1800
- id: openstack-network-networks-nsxv
version: 2.0.0
type: puppet
groups: [primary-controller]
required_for: [openstack-network-routers]
requires: [primary-openstack-network-neutron-start]
parameters:
puppet_manifest: puppet/manifests/neutron-network-create.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 600
- id: horizon-enable-lbaas
version: 2.0.0
type: puppet
groups: [primary-controller,controller]
required_for: [deploy_end]
requires: [horizon]
parameters:
puppet_manifest: puppet/manifests/horizon-enable-lbaas.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 120
# skipped tasks
- id: primary-openstack-network-plugins-l2
version: 2.0.0
type: skipped
@ -86,60 +142,6 @@
- id: openstack-network-agents-metadata
version: 2.0.0
type: skipped
- id: openstack-network-neutron-policy
version: 2.0.0
type: puppet
groups: [primary-controller,controller]
required_for: [openstack-network-neutron-start,primary-openstack-network-neutron-start]
requires: [openstack-network-server-config]
parameters:
puppet_manifest: puppet/manifests/neutron-server-policy.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 300
- id: openstack-network-neutron-start
version: 2.0.0
refresh_on: [neutron_config]
type: puppet
groups: [controller]
required_for: [openstack-network-end]
requires: [openstack-network-neutron-policy]
cross-depends:
- name: primary-openstack-network-neutron-start
parameters:
puppet_manifest: puppet/manifests/neutron-server-start.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1800
- id: primary-openstack-network-neutron-start
version: 2.0.0
refresh_on: [neutron_config]
type: puppet
groups: [primary-controller]
required_for: [openstack-network-networks-nsxv]
requires: [openstack-network-neutron-policy]
parameters:
puppet_manifest: puppet/manifests/neutron-server-start.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1800
- id: openstack-network-networks-nsxv
version: 2.0.0
type: puppet
groups: [primary-controller]
required_for: [openstack-network-end,openstack-network-routers]
requires: [primary-openstack-network-neutron-start]
parameters:
puppet_manifest: puppet/manifests/neutron-network-create.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 600
- id: horizon-enable-lbaas
version: 2.0.0
type: puppet
groups: [primary-controller,controller]
required_for: [deploy_end]
requires: [horizon]
parameters:
puppet_manifest: puppet/manifests/horizon-enable-lbaas.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 120
# post deployment tasks
- id: add-public-key-to-controller

View File

@ -11,7 +11,6 @@ PLUGIN_MOD_DIR="$ROOT/deployment_scripts/puppet/modules/upstream"
version=$(sed -rn 's/^version:\s*([0-9.])/\1/p' $ROOT/metadata.yaml)
name=$(sed -rn 's/^name:\s*(.*)/\1/p' $ROOT/metadata.yaml)
sed -i "s/'NAME'/'$name'/" $ROOT/deployment_scripts/puppet/manifests/*.pp
sed -i "s/'NAME'/'$name'/" $ROOT/deployment_scripts/puppet/modules/nsxv/files/reconf_neutron_with_new_compute.sh
## Download upstream puppet modules that are not in fuel-library/