Skip to content

Commit

Permalink
Closes-Bug: #1566558 - Support for External Openstack Provisioning
Browse files Browse the repository at this point in the history
With this check-in and SM changes, User can provision A node with only openstack node
Also a cluster can be provisioned without the openstack node and made to use an external openstack

The sample configs will be added as comments on the bug id

Change-Id: Iab34d6042fcee10bcba2a6e3d7948679cf2c076a
  • Loading branch information
nitishkrishna committed May 2, 2016
1 parent 9eb07ff commit a29f403
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
$contrail_rabbit_servers = $::contrail::params::contrail_rabbit_servers,
$openstack_rabbit_servers = $::contrail::params::openstack_rabbit_servers,
$sriov = $::contrail::params::sriov,
$nova_rabbit_hosts = $::contrail::params::nova_rabbit_hosts,
) {
$config_ip_to_use = $::contrail::params::config_ip_to_use
$keystone_ip_to_use = $::contrail::params::keystone_ip_to_use
Expand Down Expand Up @@ -194,6 +195,8 @@

if ($openstack_manage_amqp) {
$nova_compute_rabbit_hosts = $openstack_rabbit_servers
} elsif ($nova_rabbit_hosts){
$nova_compute_rabbit_hosts = $nova_rabbit_hosts
} else {
$nova_compute_rabbit_hosts = $contrail_rabbit_servers
}
Expand All @@ -209,6 +212,10 @@
'compute/compute_driver'=> { value => "libvirt.LibvirtDriver" },
'DEFAULT/rabbit_hosts' => {value => "${nova_compute_rabbit_hosts}"},
}
if ($keystone_ip) {
$vnc_base_url_port = '5999'
nova_config { 'DEFAULT/novncproxy_base_url': value => "http://${keystone_ip}:${vnc_base_url_port}/vnc_auto.html" }
}
create_resources(nova_config, $nova_params, {} )

# Update modprobe.conf
Expand Down
12 changes: 12 additions & 0 deletions contrail/environment/modules/contrail/manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,14 @@
# User provided port for amqp service
# (optional) - Defaults to ''.
#
# [*nova_rabbit_hosts*]
# AMQP IP list to use for Nova when using an external openstack
# (optional) - Defaults to undef
#
# [*neutron_ip_to_use*]
# Neutron IP to use for Nova when using an external openstack
# (optional) - Defaults to undef
#
class contrail (
$host_ip = undef,
$uuid = undef,
Expand Down Expand Up @@ -618,6 +626,8 @@
$vmware_password = '',
$vmware_vswitch = '',
$mysql_root_password = 'c0ntrail123',
$nova_rabbit_hosts = undef,
$neutron_ip_to_use = undef,
$openstack_mgmt_ip_list = undef,
$encap_priority = 'VXLAN,MPLSoUDP,MPLSoGRE',
$router_asn = 64512,
Expand Down Expand Up @@ -775,6 +785,8 @@
openstack_manage_amqp => hiera(openstack::openstack_manage_amqp, hiera(contrail::params::openstack_manage_amqp, $openstack_manage_amqp)),
mysql_root_password => hiera(openstack::mysql::root_password, hiera(contrail::params::mysql_root_password, $mysql_root_password)),
metadata_secret => hiera(openstack::metadata_secret, hiera(contrail::params::metadata_secret, $metadata_secret)),
nova_rabbit_hosts => hiera(openstack::nova::rabbit_hosts, hiera(contrail::params::nova_rabbit_hosts, $nova_rabbit_hosts)),
neutron_ip_to_use => hiera(openstack::nova::neutron_ip_to_use, hiera(contrail::params::neutron_ip_to_use, $neutron_ip_to_use)),
enable_ceilometer => hiera(openstack::enable_ceilometer, hiera(contrail::params::enable_ceilometer, $enable_ceilometer)),
contrail_amqp_ip_list => hiera(openstack::contrail_amqp_ip_list, hiera(contrail::params::contrail_amqp_ip_list, $contrail_amqp_ip_list)),
contrail_amqp_port => hiera(openstack::contrail_amqp_port, hiera(contrail::params::contrail_amqp_port, $contrail_amqp_port)),
Expand Down
22 changes: 21 additions & 1 deletion contrail/environment/modules/contrail/manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,14 @@
# User provided port for amqp service
# (optional) - Defaults to ''.
#
# [*nova_rabbit_hosts*]
# AMQP IP list to use for Nova when using an external openstack
# (optional) - Defaults to undef
#
# [*neutron_ip_to_use*]
# Neutron IP to use for Nova when using an external openstack
# (optional) - Defaults to undef
#
class contrail::params (
$host_ip,
$uuid,
Expand Down Expand Up @@ -617,6 +625,8 @@
$vmware_password,
$vmware_vswitch,
$mysql_root_password,
$nova_rabbit_hosts,
$neutron_ip_to_use,
$openstack_mgmt_ip_list,
$encap_priority,
$router_asn,
Expand Down Expand Up @@ -733,16 +743,22 @@
$vip_to_use = $contrail_internal_vip
$config_ip_to_use = $contrail_internal_vip
$collector_ip_to_use = $contrail_internal_vip
$contrail_controller_address_api = $contrail_internal_vip
$contrail_controller_address_management = $contrail_internal_vip
$rest_api_port_to_use = '9081'
} elsif $internal_vip != '' {
$vip_to_use = $internal_vip
$config_ip_to_use = $internal_vip
$collector_ip_to_use = $internal_vip
$contrail_controller_address_api = $::openstack::config::controller_address_api
$contrail_controller_address_management = $::openstack::config::controller_address_management
$rest_api_port_to_use = '9081'
} else {
$vip_to_use = ''
$config_ip_to_use = $config_ip_list[0]
$collector_ip_to_use = $collector_ip_list[0]
$contrail_controller_address_api = $::contrail::params::config_ip_list[0]
$contrail_controller_address_management = $::contrail::params::config_ip_list[0]
$rest_api_port_to_use = '8081'
}

Expand Down Expand Up @@ -820,6 +836,10 @@
$multi_tenancy_options = ""
}

$contrail_neutron_server = pick($::contrail::params::neutron_ip_to_use, $config_ip_to_use)
$contrail_neutron_public_address = pick($::contrail::params::neutron_ip_to_use, $contrail_controller_address_api)
$contrail_neutron_admin_address = pick($::contrail::params::neutron_ip_to_use, $contrail_controller_address_management)
$contrail_neutron_internal_address = pick($::contrail::params::neutron_ip_to_use, $contrail_controller_address_management)
notify { "host_role = $host_roles and contrail_roles = $contrail_roles":; }
$contrail_roles_present_hash = delete_values($contrail_roles, false)
$contrail_roles_present_array = keys($contrail_roles_present_hash)
Expand All @@ -834,7 +854,7 @@
if ($num_role_to_delete) {
$is_there_roles_to_delete = true
} else {
$is_there_roles_to_delete = false
$is_there_roles_to_delete = false
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
$is_there_roles_to_delete = $::contrail::params::is_there_roles_to_delete,
$host_roles = $::contrail::params::host_roles,
$package_sku = $::contrail::params::package_sku,
$openstack_manage_amqp = $::contrail::params::openstack_manage_amqp
$openstack_manage_amqp = $::contrail::params::openstack_manage_amqp,
$neutron_ip_to_use = $::contrail::params::neutron_ip_to_use
) {
if ($enable_module and 'openstack' in $host_roles and $is_there_roles_to_delete == false) {
contrail::lib::report_status { 'openstack_started': state => 'openstack_started' } ->
Expand Down Expand Up @@ -79,6 +80,11 @@
contain ::contrail::profile::neutron_db_sync
Class['::openstack::profile::provision']->Service['glance-api']
Package['contrail-openstack'] -> Exec['exec_start_supervisor_openstack']
if ($neutron_ip_to_use) {
$neutron_params = {'DEFAULT/bind_host' => { value => "${neutron_ip_to_use}" }}
create_resources(neutron_config, $neutron_params, {} )
Class['::contrail::profile::neutron_db_sync']->Neutron_config['DEFAULT/bind_host']->Package['contrail-openstack']
}
if ($enable_ceilometer) {
Class['::contrail::profile::openstack::heat'] ->
class {'::contrail::profile::openstack::ceilometer' : } ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
$internal_vip = $::contrail::params::internal_vip
$contrail_internal_vip = $::contrail::params::contrail_internal_vip

$contrail_neutron_server = $::contrail::params::contrail_neutron_server
$openstack_rabbit_servers = $::contrail::params::openstack_rabbit_servers
$contrail_neutron_server = $::contrail::params::config_ip_to_use

$openstack_ip_list = $::contrail::params::openstack_ip_list

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,6 @@

$internal_vip = $::contrail::params::internal_vip
$contrail_internal_vip = $::contrail::params::contrail_internal_vip

if ($contrail_internal_vip != "" and $contrail_internal_vip != undef) {
$contrail_controller_address_api = $contrail_internal_vip
$contrail_controller_address_management = $contrail_internal_vip
} elsif ($internal_vip != "" and $internal_vip != undef) {
$contrail_controller_address_api = $::openstack::config::controller_address_api
$contrail_controller_address_management = $::openstack::config::controller_address_management
} else {
$contrail_controller_address_api = $::contrail::params::config_ip_list[0]
$contrail_controller_address_management = $::contrail::params::config_ip_list[0]
}
$tenants = $::openstack::config::keystone_tenants
$users = $::openstack::config::keystone_users
class { 'keystone::endpoint':
Expand Down Expand Up @@ -47,9 +36,9 @@
}
class { '::neutron::keystone::auth':
password => $::openstack::config::neutron_password,
public_address => $contrail_controller_address_api,
admin_address => $contrail_controller_address_management,
internal_address => $contrail_controller_address_management,
public_address => $::contrail::params::contrail_neutron_public_address,
admin_address => $::contrail::params::contrail_neutron_admin_address,
internal_address => $::contrail::params::contrail_neutron_internal_address,
region => $::openstack::config::region,
}
create_resources('openstack::resources::tenant', $tenants)
Expand Down

0 comments on commit a29f403

Please sign in to comment.