Merge pull request #65 from fcharlier/fc/network_improvements
Improve various network modes
This commit is contained in:
commit
40ae499194
|
@ -1,8 +1,5 @@
|
|||
class nova::compute::libvirt (
|
||||
$libvirt_type = 'kvm',
|
||||
$flat_network_bridge = 'br100',
|
||||
$flat_network_bridge_ip,
|
||||
$flat_network_bridge_netmask
|
||||
$libvirt_type = 'kvm'
|
||||
) inherits nova::compute{
|
||||
|
||||
include nova::params
|
||||
|
@ -25,9 +22,4 @@ class nova::compute::libvirt (
|
|||
|
||||
nova_config { 'libvirt_type': value => $libvirt_type }
|
||||
nova_config { 'connection_type': value => 'libvirt' }
|
||||
|
||||
nova::network::bridge { $flat_network_bridge:
|
||||
ip => $flat_network_bridge_ip,
|
||||
netmask => $flat_network_bridge_netmask,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
class nova::compute::multi_host(
|
||||
$enabled = false
|
||||
) inherits nova::compute {
|
||||
|
||||
Class['nova::compute'] { enabled => $enabled }
|
||||
|
||||
nova_config { 'enabled_apis': value => 'metadata' }
|
||||
|
||||
class { 'nova::api': enabled => $enabled }
|
||||
|
||||
case $nova::network_manager {
|
||||
'nova.network.manager.FlatManager': {
|
||||
class { 'nova::network::flat':
|
||||
enabled => $enabled,
|
||||
flat_network_bridge => $nova::flat_network_bridge,
|
||||
flat_network_bridge_ip => $nova::flat_network_bridge_ip,
|
||||
flat_network_bridge_netmask => $nova::flat_network_bridge_netmask,
|
||||
configure_bridge => false,
|
||||
}
|
||||
}
|
||||
'nova.network.manager.FlatDHCPManager': {
|
||||
class { 'nova::network::flatdhcp':
|
||||
enabled => $enabled,
|
||||
flat_interface => $nova::flat_interface,
|
||||
flat_dhcp_start => $nova::flat_dhcp_start,
|
||||
flat_injected => $nova::flat_injected,
|
||||
flat_network_bridge_netmask => $nova::flat_network_bridge_netmask,
|
||||
configure_bridge => false,
|
||||
}
|
||||
}
|
||||
'nova.network.manager.VlanManager': {
|
||||
class { 'nova::network::vlan':
|
||||
enabled => $enabled,
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported network manager: ${nova::network_manager} The supported network managers are nova.network.manager.FlatManager, nova.network.FlatDHCPManager and nova.network.manager.VlanManager")
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,7 +19,15 @@ class nova::controller(
|
|||
$flat_network_bridge_ip = '11.0.0.1',
|
||||
$flat_network_bridge_netmask = '255.255.255.0',
|
||||
|
||||
$flat_interface = undef,
|
||||
$flat_dhcp_start = undef,
|
||||
$flat_injected = undef,
|
||||
|
||||
$vlan_interface = 'eth1',
|
||||
$vlan_start = 1000,
|
||||
|
||||
$network_manager = undef,
|
||||
$multi_host_networking = false,
|
||||
$nova_network = '11.0.0.0/24',
|
||||
$floating_network = '10.128.0.0/24',
|
||||
$available_ips = '256',
|
||||
|
@ -37,27 +45,56 @@ class nova::controller(
|
|||
|
||||
|
||||
class { "nova":
|
||||
verbose => $verbose,
|
||||
sql_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}",
|
||||
image_service => $image_service,
|
||||
glance_api_servers => $glance_api_servers,
|
||||
rabbit_host => $rabbit_host,
|
||||
rabbit_port => $rabbit_port,
|
||||
rabbit_userid => $rabbit_userid,
|
||||
rabbit_password => $rabbit_password,
|
||||
rabbit_virtual_host => $rabbit_virtual_host,
|
||||
lock_path => $lock_path,
|
||||
network_manager => $network_manager,
|
||||
verbose => $verbose,
|
||||
sql_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}",
|
||||
image_service => $image_service,
|
||||
glance_api_servers => $glance_api_servers,
|
||||
rabbit_host => $rabbit_host,
|
||||
rabbit_port => $rabbit_port,
|
||||
rabbit_userid => $rabbit_userid,
|
||||
rabbit_password => $rabbit_password,
|
||||
rabbit_virtual_host => $rabbit_virtual_host,
|
||||
lock_path => $lock_path,
|
||||
network_manager => $network_manager,
|
||||
multi_host_networking => $multi_host_networking,
|
||||
flat_network_bridge => $flat_network_bridge,
|
||||
vlan_interface => $vlan_interface,
|
||||
vlan_start => $vlan_start,
|
||||
}
|
||||
|
||||
class { "nova::api": enabled => true }
|
||||
|
||||
class { "nova::network::flat":
|
||||
enabled => true,
|
||||
flat_network_bridge => $flat_network_bridge,
|
||||
flat_network_bridge_ip => $flat_network_bridge_ip,
|
||||
flat_network_bridge_netmask => $flat_network_bridge_netmask,
|
||||
configure_bridge => false,
|
||||
# in multi_host networking mode nova-network does not run on the controller
|
||||
if !$multi_host_networking {
|
||||
case $network_manager {
|
||||
'nova.network.manager.FlatManager': {
|
||||
class { "nova::network::flat":
|
||||
enabled => true,
|
||||
flat_network_bridge => $flat_network_bridge,
|
||||
flat_network_bridge_ip => $flat_network_bridge_ip,
|
||||
flat_network_bridge_netmask => $flat_network_bridge_netmask,
|
||||
configure_bridge => false,
|
||||
}
|
||||
}
|
||||
'nova.network.manager.FlatDHCPManager': {
|
||||
class { "nova::network::flatdhcp":
|
||||
enabled => true,
|
||||
flat_interface => $flat_interface,
|
||||
flat_dhcp_start => $flat_dhcp_start,
|
||||
flat_injected => $flat_injected,
|
||||
flat_network_bridge_netmask => $flat_network_bridge_netmask,
|
||||
configure_bridge => false,
|
||||
}
|
||||
}
|
||||
'nova.network.manager.VlanManager': {
|
||||
class { "nova::network::vlan":
|
||||
enabled => true,
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported network manager: ${network_manager} The supported network managers are nova.network.manager.FlatManager, nova.network.FlatDHCPManager and nova.network.manager.VlanManager")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class { "nova::objectstore":
|
||||
|
@ -68,10 +105,6 @@ class nova::controller(
|
|||
enabled => true,
|
||||
}
|
||||
|
||||
class { "nova::volume":
|
||||
enabled => true,
|
||||
}
|
||||
|
||||
class { "nova::scheduler": enabled => true }
|
||||
|
||||
nova::manage::admin { $admin_user: }
|
||||
|
|
|
@ -14,7 +14,10 @@ class nova(
|
|||
$rabbit_userid='guest',
|
||||
$rabbit_virtual_host='/',
|
||||
$network_manager = 'nova.network.manager.FlatManager',
|
||||
multi_host_networking = false,
|
||||
$flat_network_bridge = 'br100',
|
||||
$vlan_interface = 'eth1',
|
||||
$vlan_start = 1000,
|
||||
$service_down_time = 60,
|
||||
$logdir = '/var/log/nova',
|
||||
$state_path = '/var/lib/nova',
|
||||
|
@ -139,6 +142,7 @@ class nova(
|
|||
# config b/c they have to be set by both compute
|
||||
# as well as controller.
|
||||
'network_manager': value => $network_manager;
|
||||
'multi_host': value => $multi_host_networking;
|
||||
'root_helper': value => $root_helper;
|
||||
'auth_strategy': value => $auth_strategy;
|
||||
}
|
||||
|
@ -167,6 +171,13 @@ class nova(
|
|||
}
|
||||
}
|
||||
|
||||
if $network_manager == 'nova.network.manager.VlanManager' {
|
||||
nova_config {
|
||||
'vlan_interface': value => $vlan_interface;
|
||||
'vlan_start': value => $vlan_start;
|
||||
}
|
||||
}
|
||||
|
||||
if $image_service == 'nova.image.glance.GlanceImageService' {
|
||||
nova_config {
|
||||
'glance_api_servers': value => $glance_api_servers;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#vlan.pp
|
||||
class nova::network::vlan (
|
||||
$enabled = true
|
||||
) {
|
||||
class { 'nova::network':
|
||||
enabled => $enabled,
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'nova::compute::multi_host' do
|
||||
|
||||
let :pre_condition do
|
||||
'class { "nova": network_manager => "nova.network.manager.VlanManager" }'
|
||||
end
|
||||
|
||||
describe 'on debian platforms' do
|
||||
let :facts do
|
||||
{ :osfamily => 'Debian' }
|
||||
end
|
||||
it { should include_class('nova::api') }
|
||||
it { should contain_nova_config('enabled_apis').with_value('metadata') }
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue