Multiple fixes.

Split configuration into pieces.
Add more options.
Change " to '
This commit is contained in:
Endre Karlson 2012-10-21 00:34:24 +02:00
parent 4c5ffaa4f2
commit c7469b63d5
7 changed files with 199 additions and 164 deletions

@ -1,26 +1,31 @@
class quantum::agents::dhcp (
$state_path = "/var/lib/quantum",
$interface_driver = "quantum.agent.linux.interface.OVSInterfaceDriver",
$dhcp_driver = "quantum.agent.linux.dhcp.Dnsmasq",
$use_namespaces = "False",
$root_helper = "sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf",
$debug = 'False'
) inherits quantum {
$package_ensure = true,
$enabled = true,
$debug = 'False',
$state_path = '/var/lib/quantum',
$resync_interval = 30,
$interface_driver = 'quantum.agent.linux.interface.OVSInterfaceDriver',
$dhcp_driver = 'quantum.agent.linux.dhcp.Dnsmasq',
$use_namespaces = 'False',
$root_helper = 'sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf'
) {
include 'quantum::params'
Package['quantum'] -> Package["quantum-dhcp-agent"]
Package["quantum-dhcp-agent"] -> Quantum_dhcp_agent_config<||>
Package["quantum-dhcp-agent"] -> Quantum_config<||>
Quantum_config<||> ~> Service["quantum-dhcp-service"]
Quantum_dhcp_agent_config<||> ~> Service["quantum-dhcp-service"]
Package['quantum'] -> Package['quantum-dhcp-agent']
Package['quantum-dhcp-agent'] -> Quantum_dhcp_agent_config<||>
Package['quantum-dhcp-agent'] -> Quantum_config<||>
Quantum_config<||> ~> Service['quantum-dhcp-service']
Quantum_dhcp_agent_config<||> ~> Service['quantum-dhcp-service']
quantum_dhcp_agent_config {
"DEFAULT/debug": value => $debug;
"DEFAULT/state_path": value => $state_path;
"DEFAULT/interface_driver": value => $interface_driver;
"DEFAULT/dhcp_driver": value => $dhcp_driver;
"DEFAULT/use_namespaces": value => $use_namespaces;
"DEFAULT/root_helper": value => $root_helper;
'DEFAULT/debug': value => $debug;
'DEFAULT/state_path': value => $state_path;
'DEFAULT/resync_interval': value => $resync_interval;
'DEFAULT/interface_driver': value => $interface_driver;
'DEFAULT/dhcp_driver': value => $dhcp_driver;
'DEFAULT/use_namespaces': value => $use_namespaces;
'DEFAULT/root_helper': value => $root_helper;
}
package { 'quantum-dhcp-agent':

@ -1,33 +1,48 @@
class quantum::agents::l3 (
$interface_driver = "quantum.agent.linux.interface.OVSInterfaceDriver",
$use_namespaces = "False",
$router_id = "7e5c2aca-bbac-44dd-814d-f2ea9a4003e4",
$gateway_external_net_id = "3f8699d7-f221-421a-acf5-e41e88cfd54f",
$metadata_ip = "169.254.169.254",
$external_network_bridge = "br-ex",
$root_helper = "sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf",
$debug = 'False'
) inherits quantum {
$package_ensure = true,
$enabled = true,
$debug = 'False',
$interface_driver = 'quantum.agent.linux.interface.OVSInterfaceDriver',
$auth_url = 'http://localhost:5000',
$auth_region = 'RegionOne',
$auth_tenant = 'service',
$auth_user = 'quantum',
$auth_password = 'password',
$root_helper = 'sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf',
$use_namespaces = 'False',
$router_id = '7e5c2aca-bbac-44dd-814d-f2ea9a4003e4',
$gateway_external_net_id = '3f8699d7-f221-421a-acf5-e41e88cfd54f',
$handle_internal_only_routers = 'True',
$external_network_bridge = 'br-ex',
$metadata_ip = '169.254.169.254',
$metadata_port = 8775,
$polling_interval = 3
) {
include 'quantum::params'
Package['quantum'] -> Package['quantum-l3-agent']
Package["quantum-l3-agent"] -> Quantum_l3_agent_config<||>
Quantum_config<||> ~> Service["quantum-l3-service"]
Quantum_l3_agent_config<||> ~> Service["quantum-l3-service"]
Package['quantum-l3-agent'] -> Quantum_l3_agent_config<||>
Quantum_config<||> ~> Service['quantum-l3-service']
Quantum_l3_agent_config<||> ~> Service['quantum-l3-service']
quantum_l3_agent_config {
"DEFAULT/debug": value => $log_debug;
"DEFAULT/auth_host": value => $auth_host;
"DEFAULT/auth_port": value => $auth_port;
"DEFAULT/auth_uri": value => $auth_uri;
"DEFAULT/admin_tenant_name": value => $keystone_tenant;
"DEFAULT/admin_user": value => $keystone_user;
"DEFAULT/admin_password": value => $keystone_password;
"DEFAULT/use_namespaces": value => $use_namespaces;
"DEFAULT/router_id": value => $router_id;
"DEFAULT/gateway_external_net_id": value => $gateway_external_net_id;
"DEFAULT/metadata_ip": value => $metadata_ip;
"DEFAULT/external_network_bridge": value => $external_network_bridge;
"DEFAULT/root_helper": value => $root_helper;
'DEFAULT/debug': value => $debug;
'DEFAULT/interface_driver': value => $interface_driver;
'DEFAULT/auth_url': value => $auth_url;
'DEFAULT/auth_region': value => $auth_region;
'DEFAULT/auth_tenant': value => $auth_tenant;
'DEFAULT/auth_user': value => $auth_user;
'DEFAULT/auth_password': value => $auth_password;
'DEFAULT/root_helper': value => $root_helper;
'DEFAULT/use_namespaces': value => $use_namespaces;
'DEFAULT/router_id': value => $router_id;
'DEFAULT/gateway_external_net_id': value => $gateway_external_net_id;
'DEFAULT/handle_internal_only_routers': value => $handle_internal_only_routers;
'DEFAULT/external_network_bridge': value => $external_network_bridge;
'DEFAULT/metadata_ip': value => $metadata_ip;
'DEFAULT/metadata_port': value => $metadata_port;
'DEFAULT/polling_interval': value => $polling_interval;
}
package { 'quantum-l3':

@ -1,25 +1,29 @@
class quantum::agents::ovs (
$package_ensure = true,
$enabled = true,
$bridge_uplinks = ['br-virtual:eth1'],
$bridge_mappings = ['default:br-virtual'],
$network_vlan_ranges = "default:1000:2000",
$integration_bridge = "br-int",
$network_vlan_ranges = 'default:1000:2000',
$integration_bridge = 'br-int',
$enable_tunneling = true
) inherits quantum::plugins::ovs {
Package['quantum'] -> Package['quantum-plugin-ovs-agent']
Package["quantum-plugin-ovs-agent"] -> Quantum_plugin_ovs<||>
) {
include 'quantun::params'
require 'vswitch::ovs'
Package['quantum'] -> Package['quantum-plugin-ovs-agent']
Package['quantum-plugin-ovs-agent'] -> Quantum_plugin_ovs<||>
vs_bridge {$integration_bridge:
external_ids => "bridge-id=$ingration_bridge",
external_ids => 'bridge-id=$ingration_bridge',
ensure => present,
require => Service['quantum-plugin-ovs-service'],
}
if $enable_tunneling {
vs_bridge {$tunnel_bridge:
external_ids => "bridge-id=$tunnel_bridge",
external_ids => 'bridge-id=$tunnel_bridge',
ensure => present,
require => Service['quantum-plugin-ovs-service'],
}
@ -32,21 +36,21 @@ class quantum::agents::ovs (
require => Service['quantum-plugin-ovs-service'],
}
package { "quantum-plugin-ovs-agent":
package { 'quantum-plugin-ovs-agent':
name => $::quantum::params::ovs_agent_package,
ensure => $package_ensure,
}
if $enabled {
$service_ensure = "running"
$service_ensure = 'running'
} else {
$service_ensure = "stopped"
$service_ensure = 'stopped'
}
service { 'quantum-plugin-ovs-service':
name => $::quantum::params::ovs_agent_service,
enable => $enable,
ensure => $service_ensure,
require => [Package["quantum-plugin-ovs-agent"]]
require => [Package['quantum-plugin-ovs-agent']]
}
}

@ -1,8 +1,10 @@
class glance::client (
$ensure = present
class quantum::client (
$package_ensure = present
) {
package { "python-quantumclient":
name => $::glance::params::client_package_name,
ensure => $ensure
include 'quantum::params'
package { 'python-quantumclient':
name => $::quantum::params::client_package_name,
ensure => $package_ensure
}
}

@ -1,75 +1,59 @@
class quantum (
$rabbit_password,
$verbose = "False",
$debug = "False",
$package_ensure = true,
$bind_host = "0.0.0.0",
$bind_port = "9696",
$sql_connection = "sqlite:///var/lib/quantum/quantum.sqlite",
$rabbit_host = "localhost",
$rabbit_port = "5672",
$rabbit_user = "guest",
$rabbit_virtual_host = "/",
$control_exchange = "quantum",
$core_plugin = "quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2",
$verbose = 'False',
$debug = 'False',
$bind_host = '0.0.0.0',
$bind_port = '9696',
$core_plugin = 'quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2',
$api_paste = '/etc/quantum/api-paste.ini',
$auth_strategy = 'keystone',
$base_mac = 'fa:16:3e:00:00:00',
$mac_generation_retries = 16,
$dhcp_lease_duration = 120,
$auth_strategy = 'keystone',
$enabled = true,
$package_ensure = 'present'
$allow_bulk = 'True',
$allow_overlapping_ips = 'False',
$control_exchange = 'quantum',
$rabbit_host = 'localhost',
$rabbit_port = '5672',
$rabbit_user = 'guest',
$rabbit_password = 'guest',
$rabbit_virtual_host = '/'
) {
include quantum::params
validate_re($sql_connection, '(sqlite|mysql|posgres):\/\/(\S+:\S+@\S+\/\S+)?')
include 'quantum::params'
Package['quantum'] -> Quantum_config<||>
if ($sql_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) {
ensure_resource( 'package', 'python-mysqldb', {'ensure' => 'present'})
} elsif ($sql_connection =~ /postgresql:\/\/\S+:\S+@\S+\/\S+/) {
ensure_resource( 'package', 'python-psycopg2', {'ensure' => 'present'})
} elsif($sql_connection =~ /sqlite:\/\//) {
ensure_resource( 'package', 'python-pysqlite2', {'ensure' => 'present'})
} else {
fail("Invalid db connection ${sql_connection}")
}
file {"/etc/quantum":
file {'/etc/quantum':
ensure => directory,
owner => "quantum",
group => "root",
owner => 'quantum',
group => 'root',
mode => 770,
require => Package["quantum"]
require => Package['quantum']
}
package {"quantum":
package {'quantum':
name => $::quantum::params::package_name,
ensure => $package_ensure
}
quantum_config {
"DEFAULT/verbose": value => $verbose;
"DEFAULT/debug": value => $debug;
"DEFAULT/bind_host": value => $bind_host;
"DEFAULT/bind_port": value => $bind_port;
"DEFAULT/sql_connection": value => $sql_connection;
"DEFAULT/auth_strategy": value => $auth_strategy;
"DEFAULT/rabbit_host": value => $rabbit_host;
"DEFAULT/rabbit_port": value => $rabbit_port;
"DEFAULT/rabbit_userid": value => $rabbit_user;
"DEFAULT/rabbit_password": value => $rabbit_password;
"DEFAULT/rabbit_virtual_host": value => $rabbit_virtual_host;
"DEFAULT/control_exchange": value => $control_exchange;
"DEFAULT/core_plugin": value => $core_plugin;
"DEFAULT/mac_generation_retries": value => $mac_generation_retries;
"DEFAULT/dhcp_lease_duration": value => $dhcp_lease_duration;
'DEFAULT/verbose': value => $verbose;
'DEFAULT/debug': value => $debug;
'DEFAULT/bind_host': value => $bind_host;
'DEFAULT/bind_port': value => $bind_port;
'DEFAULT/auth_strategy': value => $auth_strategy;
'DEFAULT/core_plugin': value => $core_plugin;
'DEFAULT/base_mac': value => $base_mac;
'DEFAULT/mac_generation_retries': value => $mac_generation_retries;
'DEFAULT/dhcp_lease_duration': value => $dhcp_lease_duration;
'DEFAULT/allow_bulk': value => $allow_bulk;
'DEFAULT/allow_overlapping_ips': value => $allow_overlapping_ips;
'DEFAULT/control_exchange': value => $control_exchange;
'DEFAULT/rabbit_host': value => $rabbit_host;
'DEFAULT/rabbit_port': value => $rabbit_port;
'DEFAULT/rabbit_userid': value => $rabbit_user;
'DEFAULT/rabbit_password': value => $rabbit_password;
'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
}
}

@ -1,15 +1,24 @@
class quantum::plugins::ovs (
$package_ensure = true,
$sql_connection = 'sqlite:////var/lib/quantum/ovs.sqlite',
$sql_max_retries = 10,
$reconnect_interval = 2,
$bridge_uplinks = ['br-virtual:eth1'],
$bridge_mappings = ['default:br-virtual'],
$tenant_network_type = "vlan",
$network_vlan_ranges = "default:1000:2000",
$integration_bridge = "br-int",
$tenant_network_type = 'vlan',
$network_vlan_ranges = 'default:1000:2000',
$integration_bridge = 'br-int',
$enable_tunneling = true,
$tunnel_bridge = "br-tun",
$tunnel_id_ranges = "1:1000",
$local_ip = "10.0.0.1",
) inherits quantum {
$tunnel_bridge = 'br-tun',
$tunnel_id_ranges = '1:1000',
$local_ip = '10.0.0.1',
$polling_interval = 2,
$root_helper = 'sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf'
) {
include 'quantum::params'
require 'vswitch::ovs'
@ -18,31 +27,43 @@ class quantum::plugins::ovs (
Quantum_plugin_ovs<||> ~> Service<| title == 'quantum-server' |>
Package['quantum-plugin-ovs'] -> Service<| title == 'quantum-server' |>
package { "quantum-plugin-ovs":
validate_re($sql_connection, '(sqlite|mysql|posgres):\/\/(\S+:\S+@\S+\/\S+)?')
if ($sql_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) {
ensure_resource( 'package', 'python-mysqldb', {'ensure' => 'present'})
} elsif ($sql_connection =~ /postgresql:\/\/\S+:\S+@\S+\/\S+/) {
ensure_resource( 'package', 'python-psycopg2', {'ensure' => 'present'})
} elsif($sql_connection =~ /sqlite:\/\//) {
ensure_resource( 'package', 'python-pysqlite2', {'ensure' => 'present'})
} else {
fail('Invalid db connection ${sql_connection}')
}
package { 'quantum-plugin-ovs':
name => $::quantum::params::ovs_server_package,
ensure => $package_ensure,
}
$br_map_str = join($bridge_mappings, ",")
# DOCS say this is required? I am a little confused?
quantum_plugin_ovs {
'DATABASE/sql_connection': value => $sql_connection;
}
$br_map_str = join($bridge_mappings, ',')
quantum_plugin_ovs {
"OVS/integration_bridge": value => $integration_bridge;
"OVS/network_vlan_ranges": value => $network_vlan_ranges;
"OVS/tenant_network_type": value => $tenant_network_type;
"OVS/bridge_mappings": value => $br_map_str;
'DATABASE/sql_connection': value => $sql_connection;
'DATABASE/sql_max_retries': value => $sql_max_retries;
'DATABASE/sql_connection': value => $sql_connection;
'OVS/integration_bridge': value => $integration_bridge;
'OVS/network_vlan_ranges': value => $network_vlan_ranges;
'OVS/tenant_network_type': value => $tenant_network_type;
'OVS/bridge_mappings': value => $br_map_str;
'AGENT/polling_interval': value => $polling_interval;
'AGENT/root_helper': value => $root_helper;
}
if ($tenant_network_type == "gre") and ($enable_tunneling) {
if ($tenant_network_type == 'gre') and ($enable_tunneling) {
quantum_plugin_ovs {
"OVS/enable_tunneling": value => 'True';
"OVS/tunnel_bridge": value => $tunnel_bridge;
"OVS/tunnel_id_ranges": value => $tunnel_id_ranges;
"OVS/local_ip": value => $local_ip;
'OVS/enable_tunneling': value => 'True';
'OVS/tunnel_bridge': value => $tunnel_bridge;
'OVS/tunnel_id_ranges': value => $tunnel_id_ranges;
'OVS/local_ip': value => $local_ip;
}
}
}

@ -1,46 +1,50 @@
class quantum::server (
$keystone_password,
$log_file = "/var/log/quantum/server.log",
$auth_type = "keystone",
$auth_host = "localhost",
$auth_port = "35357",
# $auth_uri = "http://localhost:5000",
$keystone_tenant = "services",
$keystone_user = "quantum",
$package_ensure = 'present'
) inherits quantum {
$package_ensure = true,
$enabled = true,
$log_file = '/var/log/quantum/server.log',
$auth_type = 'keystone',
$auth_host = 'localhost',
$auth_port = '35357',
$auth_url = 'http://localhost:5000',
$auth_tenant = 'services',
$auth_user = 'quantum',
$auth_password = 'password',
) {
include 'quantum::params'
require 'keystone::python'
Package["quantum-server"] -> Quantum_api_config<||>
Package["quantum-server"] -> Quantum_config<||>
Quantum_config<||> ~> Service["quantum-server"]
Quantum_api_config<||> ~> Service["quantum-server"]
Package['quantum-server'] -> Quantum_api_config<||>
Package['quantum-server'] -> Quantum_config<||>
Quantum_config<||> ~> Service['quantum-server']
Quantum_api_config<||> ~> Service['quantum-server']
quantum_config {
"DEFAULT/log_file": value => $log_file
'DEFAULT/log_file': value => $log_file
}
quantum_api_config {
"filter:authtoken/auth_host": value => $auth_host;
"filter:authtoken/auth_port": value => $auth_port;
"filter:authtoken/auth_uri": value => $auth_uri;
"filter:authtoken/admin_tenant_name": value => $keystone_tenant;
"filter:authtoken/admin_user": value => $keystone_user;
"filter:authtoken/admin_password": value => $keystone_password;
'filter:authtoken/auth_host': value => $auth_host;
'filter:authtoken/auth_port': value => $auth_port;
'filter:authtoken/auth_uri': value => $auth_url;
'filter:authtoken/admin_tenant_name': value => $auth_tenant;
'filter:authtoken/admin_user': value => $auth_user;
'filter:authtoken/admin_password': value => $auth_password;
}
if $enabled {
$service_ensure = "running"
$service_ensure = 'running'
} else {
$service_ensure = "stopped"
$service_ensure = 'stopped'
}
package {"quantum-server":
package {'quantum-server':
name => $::quantum::params::server_package,
ensure => $package_ensure
}
service {"quantum-server":
service {'quantum-server':
name => $::quantum::params::server_service,
ensure => $service_ensure,
enable => $enabled,