Skip to content

Commit

Permalink
Ensure Nova Network-compatible provisioning
Browse files Browse the repository at this point in the history
Change-Id: If5e05b54aa8cff01a6b48ee1c3bcb951758fff95
Closes-Bug: #1242668
  • Loading branch information
marun committed Oct 21, 2013
1 parent d169bfc commit 050fa67
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 44 deletions.
97 changes: 53 additions & 44 deletions manifests/provision.pp
Expand Up @@ -118,53 +118,67 @@
source => $image_source,
}

## Networks
## Neutron

neutron_network { $public_network_name:
ensure => present,
router_external => true,
tenant_name => $admin_tenant_name,
}
neutron_subnet { $public_subnet_name:
ensure => 'present',
cidr => $floating_range,
enable_dhcp => false,
network_name => $public_network_name,
tenant_name => $admin_tenant_name,
}
neutron_network { $private_network_name:
ensure => present,
tenant_name => $tenant_name,
}
neutron_subnet { $private_subnet_name:
ensure => present,
cidr => $fixed_range,
network_name => $private_network_name,
tenant_name => $tenant_name,
}
# Tenant-owned router - assumes network namespace isolation
neutron_router { $router_name:
ensure => present,
tenant_name => $tenant_name,
gateway_network_name => $public_network_name,
# A neutron_router resource must explicitly declare a dependency on
# the first subnet of the gateway network.
require => Neutron_subnet[$public_subnet_name],
}
neutron_router_interface { "${router_name}:${private_subnet_name}":
ensure => present,
}
if $neutron_available {
$neutron_deps = [Neutron_network[$public_network_name]]

if $setup_ovs_bridge {
neutron_l3_ovs_bridge { $public_bridge_name:
neutron_network { $public_network_name:
ensure => present,
router_external => true,
tenant_name => $admin_tenant_name,
}
neutron_subnet { $public_subnet_name:
ensure => 'present',
cidr => $floating_range,
enable_dhcp => false,
network_name => $public_network_name,
tenant_name => $admin_tenant_name,
}
neutron_network { $private_network_name:
ensure => present,
subnet_name => $public_subnet_name,
tenant_name => $tenant_name,
}
neutron_subnet { $private_subnet_name:
ensure => present,
cidr => $fixed_range,
network_name => $private_network_name,
tenant_name => $tenant_name,
}
# Tenant-owned router - assumes network namespace isolation
neutron_router { $router_name:
ensure => present,
tenant_name => $tenant_name,
gateway_network_name => $public_network_name,
# A neutron_router resource must explicitly declare a dependency on
# the first subnet of the gateway network.
require => Neutron_subnet[$public_subnet_name],
}
neutron_router_interface { "${router_name}:${private_subnet_name}":
ensure => present,
}

if $setup_ovs_bridge {
neutron_l3_ovs_bridge { $public_bridge_name:
ensure => present,
subnet_name => $public_subnet_name,
}
}
}
else {
$neutron_deps = []
#TODO(marun): Provision for nova network
}

## Tempest

if $configure_tempest {
$tempest_requires = concat([
Keystone_user[$username],
Keystone_user[$alt_username],
Glance_image[$image_name],
], $neutron_deps)

class { 'tempest':
tempest_repo_uri => $tempest_repo_uri,
tempest_clone_path => $tempest_clone_path,
Expand Down Expand Up @@ -195,12 +209,7 @@
neutron_available => $neutron_available,
nova_available => $nova_available,
swift_available => $swift_available,
require => [
Keystone_user[$username],
Keystone_user[$alt_username],
Glance_image[$image_name],
Neutron_network[$public_network_name],
],
require => $tempest_requires,
}
}

Expand Down
14 changes: 14 additions & 0 deletions spec/classes/openstack_provision_spec.rb
Expand Up @@ -38,4 +38,18 @@

end

describe 'should be possible to provision with neutron disabled' do
let :params do
{
:configure_tempest => true,
:neutron_available => false,
:tempest_repo_revision => 'stable/grizzly'
}
end

it { should contain_class('tempest').with(
:tempest_repo_revision => 'stable/grizzly'
) }
end

end

0 comments on commit 050fa67

Please sign in to comment.