Puppet Class: neutron::plugins::midonet
- Defined in:
- manifests/plugins/midonet.pp
Overview
Class: midonet::neutron_plugin
Install and configure Midonet Neutron Plugin. Please note that this manifest does not install the ‘python-neutron-midonet-plugin’ package, it only configures Neutron to do so needed for this deployment. Check out the MidoNet module to do so.
Parameters
- midonet_api_ip
-
IP address of the MidoNet api service
- midonet_api_port
-
IP address of the MidoNet port service. MidoNet runs in a Tomcat, so 8080 is used by default.
- keystone_username
-
Username from which midonet api will authenticate against Keystone (neutron service is desirable and defaulted)
- keystone_password
-
Password from which midonet api will authenticate against Keystone
- keystone_tenant
-
Tenant from which midonet api will authenticate against Keystone (services tenant is desirable and defaulted)
- sync_db
-
Whether ‘midonet-db-manage’ should run to create and/or syncrhonize the database with MidoNet specific tables. Defaults to false
Examples
An example call would be:
class {'neutron:plugins::midonet':
midonet_api_ip => '23.123.5.32',
midonet_api_port => '8080',
keystone_username => 'neutron',
keystone_password => '32kjaxT0k3na',
keystone_tenant => 'services',
sync_db => true
}
You can alternatively use the Hiera’s yaml style:
neutron::plugin::midonet::midonet_api_ip: '23.213.5.32'
neutron::plugin::midonet::port: '8080'
neutron::plugin::midonet::keystone_username: 'neutron'
neutron::plugin::midonet::keystone_password: '32.kjaxT0k3na'
neutron::plugin::midonet::keystone_tenant: 'services'
neutron::plugin::midonet::sync_db: true
Authors
Midonet (MidoNet.org)
Copyright
Copyright © 2015 Midokura SARL, All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'manifests/plugins/midonet.pp', line 68
class neutron::plugins::midonet (
$midonet_api_ip = '127.0.0.1',
$midonet_api_port = '8080',
$keystone_username = 'neutron',
$keystone_password = undef,
$keystone_tenant = 'services',
$sync_db = false
) {
include ::neutron::params
Neutron_plugin_midonet<||> ~> Service['neutron-server']
ensure_resource('file', '/etc/neutron/plugins/midonet', {
ensure => directory,
owner => 'root',
group => 'neutron',
mode => '0640'}
)
# Ensure the neutron package is installed before config is set
# under both RHEL and Ubuntu
if ($::neutron::params::server_package) {
Package['neutron-server'] -> Neutron_plugin_midonet<||>
} else {
Package['neutron'] -> Neutron_plugin_midonet<||>
}
# Although this manifest does not install midonet plugin package because it
# is not available in common distro repos, this statement forces you to
# have an orchestrator/wrapper manifest that does that job.
Package[$::neutron::params::midonet_server_package] -> Neutron_plugin_midonet<||>
neutron_plugin_midonet {
'MIDONET/midonet_uri': value => "http://${midonet_api_ip}:${midonet_api_port}/midonet-api";
'MIDONET/username': value => $keystone_username;
'MIDONET/password': value => $keystone_password, secret =>true;
'MIDONET/project_id': value => $keystone_tenant;
}
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::midonet_config_file}",
require => [ Package['neutron-server'], Package[$::neutron::params::midonet_server_package] ],
notify => Service['neutron-server'],
}
}
# In RH, this link is used to start Neutron process but in Debian, it's used only
# to manage database synchronization.
if defined(File['/etc/neutron/plugin.ini']) {
File <| path == '/etc/neutron/plugin.ini' |> { target => $::neutron::params::midonet_config_file }
}
else {
file {'/etc/neutron/plugin.ini':
ensure => link,
target => $::neutron::params::midonet_config_file,
require => Package[$::neutron::params::midonet_server_package]
}
}
if $sync_db {
Package<| title == $::neutron::params::midonet_server_package |> ~> Exec['midonet-db-sync']
exec { 'midonet-db-sync':
command => 'midonet-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head',
path => '/usr/bin',
before => Service['neutron-server'],
subscribe => Neutron_config['database/connection'],
refreshonly => true
}
}
}
|