Add quantum to compute, all and controller

These commits add management of quantum to the
openstack compute, controller and all classes.
This commit is contained in:
Dan Bode
2012-10-29 18:28:14 -07:00
parent 69eeea34d3
commit d1054c68dd
3 changed files with 134 additions and 2 deletions

View File

@@ -263,6 +263,53 @@ class openstack::all (
}
} else {
# Set up Quantum
$quantum_sql_connection = "mysql://${quantum_db_user}:${quantum_db_password}@127.0.0.1/${quantum_db_dbname}?charset=utf8"
class { 'quantum':
verbose => $verbose,
debug => $verbose,
rabbit_host => '127.0.0.1',
rabbit_user => $rabbit_user,
rabbit_password => $rabbit_password,
sql_connection => $quantum_sql_connection,
}
class { 'quantum::server':
keystone_password => $quantum_user_password,
}
class { 'quantum::agents::dhcp': }
class { 'nova::compute::quantum': }
nova_config {
'linuxnet_interface_driver': value => 'nova.network.linux_net.LinuxOVSInterfaceDriver';
'linuxnet_ovs_integration_bridge': value => 'br-int';
}
class { 'quantum::plugins::ovs':
sql_connection => $quantum_sql_connection,
tenant_network_type => 'gre',
# I need to know what this does...
local_ip => '10.0.0.1',
}
class { 'quantum::agents::ovs':
bridge_uplinks => ["br-virtual:${private_interface}"],
}
class { 'nova::network::quantum':
#$fixed_range,
quantum_admin_password => $quantum_user_password,
#$use_dhcp = 'True',
#$public_interface = undef,
quantum_connection_host => 'localhost',
quantum_auth_strategy => 'keystone',
quantum_url => "http://127.0.0.1:9696",
quantum_admin_tenant_name => 'services',
#quantum_admin_username => 'quantum',
quantum_admin_auth_url => "http://127.0.0.1:35357/v2.0",
}
}
if $auto_assign_floating_ip {

View File

@@ -25,13 +25,18 @@ class openstack::compute (
# DB
$sql_connection,
# Network
$quantum = true,
$public_interface = undef,
$private_interface = undef,
$fixed_range = undef,
$network_manager = 'nova.network.manager.FlatDHCPManager',
$network_config = {},
$multi_host = false,
# Quantum
$quantum = true,
$quantum_sql_connection = false,
$quantum_host = false,
$quantum_user_password = false,
$keystone_host = false,
# Nova
$purge_nova_config = true,
# Rabbit
@@ -146,7 +151,56 @@ class openstack::compute (
install_service => $enable_network_service,
}
} else {
# TODO install quantum
if ! $quantum_sql_connection {
fail('quantum sql connection must be specified when quantum is installed on compute instances')
}
if ! $quantum_host {
fail('quantum host must be specified when quantum is installed on compute instances')
}
if ! $quantum_user_password {
fail('quantum user password must be set when quantum is configured')
}
if ! $keystone_host {
fail('keystone host must be configured when quantum is installed')
}
class { 'quantum':
verbose => $verbose,
debug => $verbose,
rabbit_host => $rabbit_host,
rabbit_user => $rabbit_user,
rabbit_password => $rabbit_password,
sql_connection => $quantum_sql_connection,
}
class { 'quantum::agents::ovs':
bridge_uplinks => ["br-virtual:${private_interface}"],
}
class { 'quantum::agents::dhcp': }
class { 'nova::compute::quantum': }
# does this have to be installed on the compute node?
# NOTE
class { 'nova::network::quantum':
#$fixed_range,
quantum_admin_password => $quantum_user_password,
#$use_dhcp = 'True',
#$public_interface = undef,
quantum_connection_host => $quantum_host,
#quantum_auth_strategy => 'keystone',
quantum_url => "http://${keystone_host}:9696",
quantum_admin_tenant_name => 'services',
#quantum_admin_username => 'quantum',
quantum_admin_auth_url => "http://${keystone_host}:35357/v2.0"
}
nova_config {
'linuxnet_interface_driver': value => 'nova.network.linux_net.LinuxOVSInterfaceDriver';
'linuxnet_ovs_integration_bridge': value => 'br-int';
}
}
if ($cinder) {

View File

@@ -136,6 +136,37 @@ class openstack::nova::controller (
}
} else {
# Set up Quantum
$quantum_sql_connection = "mysql://${quantum_db_user}:${quantum_db_password}@${db_host}/${quantum_db_dbname}?charset=utf8"
class { 'quantum':
rabbit_user => $rabbit_user,
rabbit_password => $rabbit_password,
sql_connection => $quantum_sql_connection,
verbose => $verbose,
}
class { 'quantum::server':
keystone_password => $quantum_user_password,
}
class { 'quantum::plugins::ovs':
sql_connection => $quantum_sql_connection,
tenant_network_type => 'gre',
# I need to know what this does...
local_ip => '10.0.0.1',
}
class { 'nova::network::quantum':
#$fixed_range,
quantum_admin_password => $quantum_user_password,
#$use_dhcp = 'True',
#$public_interface = undef,
quantum_connection_host => 'localhost',
quantum_auth_strategy => 'keystone',
quantum_url => "http://$keystone_host}:9696",
quantum_admin_tenant_name => 'services',
#quantum_admin_username => 'quantum',
quantum_admin_auth_url => "http://${keystone_host}:35357/v2.0",
}
}
if $auto_assign_floating_ip {