Puppet Class: neutron::plugins::opencontrail

Defined in:
manifests/plugins/opencontrail.pp

Overview

This class installs and configures Opencontrail Neutron Plugin.

Parameters

api_server_ip

IP address of the API Server Defaults to $::os_service_default

api_server_port

Port of the API Server. Defaults to $::os_service_default

multi_tenancy

Whether to enable multi-tenancy Default to $::os_service_default

contrail_extensions

Array of OpenContrail extensions to be supported Defaults to $::os_service_default Example:

class {'neutron::plugins::opencontrail' :
  contrail_extensions => ['ipam:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_ipam.NeutronPluginContrailIpam']
}
keystone_auth_url

Url of the keystone auth server Defaults to $::os_service_default

keystone_admin_user

Admin user name Defaults to $::os_service_default

keystone_admin_tenant_name

Admin_tenant_name Defaults to $::os_service_default

keystone_admin_password

Admin password Defaults to $::os_service_default

keystone_admin_token

Admin token Defaults to $::os_service_default

package_ensure

(optional) Ensure state for package. Defaults to ‘present’.

purge_config

(optional) Whether to set only the specified config options in the opencontrail config. Defaults to false.

Parameters:

  • api_server_ip (Any) (defaults to: $::os_service_default)
  • api_server_port (Any) (defaults to: $::os_service_default)
  • multi_tenancy (Any) (defaults to: $::os_service_default)
  • contrail_extensions (Any) (defaults to: $::os_service_default)
  • keystone_auth_url (Any) (defaults to: $::os_service_default)
  • keystone_admin_user (Any) (defaults to: $::os_service_default)
  • keystone_admin_tenant_name (Any) (defaults to: $::os_service_default)
  • keystone_admin_password (Any) (defaults to: $::os_service_default)
  • keystone_admin_token (Any) (defaults to: $::os_service_default)
  • package_ensure (Any) (defaults to: 'present')
  • purge_config (Any) (defaults to: false)


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'manifests/plugins/opencontrail.pp', line 55

class neutron::plugins::opencontrail (
  $api_server_ip              = $::os_service_default,
  $api_server_port            = $::os_service_default,
  $multi_tenancy              = $::os_service_default,
  $contrail_extensions        = $::os_service_default,
  $keystone_auth_url          = $::os_service_default,
  $keystone_admin_user        = $::os_service_default,
  $keystone_admin_tenant_name = $::os_service_default,
  $keystone_admin_password    = $::os_service_default,
  $keystone_admin_token       = $::os_service_default,
  $package_ensure             = 'present',
  $purge_config               = false,
) {

  include neutron::deps
  include neutron::params

  validate_legacy(Array, 'validate_array', $contrail_extensions)

  package { 'neutron-plugin-contrail':
    ensure => $package_ensure,
    name   => $::neutron::params::opencontrail_plugin_package,
    tag    => ['openstack', 'neutron-package'],
  }

  ensure_resource('file', '/etc/neutron/plugins/opencontrail', {
    ensure => directory,
    owner  => 'root',
    group  => $::neutron::params::group,
    mode   => '0640'}
  )

  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::opencontrail_config_file}",
      tag   => 'neutron-file-line',
    }
  }

  if $::osfamily == 'Redhat' {
    file { '/etc/neutron/plugin.ini':
      ensure  => link,
      target  => $::neutron::params::opencontrail_config_file,
      require => Package[$::neutron::params::opencontrail_plugin_package],
      tag     => 'neutron-config-file',
    }
  }

  resources { 'neutron_plugin_opencontrail':
    purge => $purge_config,
  }

  neutron_plugin_opencontrail {
    'APISERVER/api_server_ip':       value => $api_server_ip;
    'APISERVER/api_server_port':     value => $api_server_port;
    'APISERVER/multi_tenancy':       value => $multi_tenancy;
    'APISERVER/contrail_extensions': value => join($contrail_extensions, ',');
    'KEYSTONE/auth_url':             value => $keystone_auth_url;
    'KEYSTONE/admin_user' :          value => $keystone_admin_user;
    'KEYSTONE/admin_tenant_name':    value => $keystone_admin_tenant_name;
    'KEYSTONE/admin_password':       value => $keystone_admin_password, secret =>true;
    'KEYSTONE/admin_token':          value => $keystone_admin_token, secret =>true;
  }

}