Fix demo bridge setup
For cases where no network host is the same host as controller host bridge<->subnet binding fails because there is no br-ex on controller. Change-Id: Ie0761af0d9e91c5e17b3c8ecd09d1d7a0c2a0ed0
This commit is contained in:
committed by
Lukas Bezdicka
parent
3015bff80d
commit
38e23465a7
@@ -958,7 +958,7 @@ Provisioning tempest config
|
|||||||
Provisioning all-in-one ovs bridge config
|
Provisioning all-in-one ovs bridge config
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
**CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE**
|
**CONFIG_PROVISION_OVS_BRIDGE**
|
||||||
Specify 'y' to configure the Open vSwitch external bridge for an all-in-one deployment (the L3 external bridge acts as the gateway for virtual machines). ['y', 'n']
|
Specify 'y' to configure the Open vSwitch external bridge for an all-in-one deployment (the L3 external bridge acts as the gateway for virtual machines). ['y', 'n']
|
||||||
|
|
||||||
Ceilometer Config parameters
|
Ceilometer Config parameters
|
||||||
|
|||||||
@@ -753,12 +753,6 @@ def single_step_aio_install(options, logFile):
|
|||||||
if not options.novanetwork_privif:
|
if not options.novanetwork_privif:
|
||||||
options.novanetwork_privif = ''
|
options.novanetwork_privif = ''
|
||||||
|
|
||||||
# If we are doing an all-in-one install, do demo provisioning
|
|
||||||
# unless specifically told not to
|
|
||||||
if (options.os_neutron_install != "n" and
|
|
||||||
not options.provision_all_in_one_ovs_bridge):
|
|
||||||
options.provision_all_in_one_ovs_bridge = "y"
|
|
||||||
|
|
||||||
single_step_install(options, logFile)
|
single_step_install(options, logFile)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,9 +54,3 @@ def create_manifest(config, messages):
|
|||||||
manifestfile = "%s_postscript.pp" % hostname
|
manifestfile = "%s_postscript.pp" % hostname
|
||||||
manifestdata = getManifestTemplate("postscript")
|
manifestdata = getManifestTemplate("postscript")
|
||||||
appendManifestFile(manifestfile, manifestdata, 'postscript')
|
appendManifestFile(manifestfile, manifestdata, 'postscript')
|
||||||
# TO-DO: remove this temporary fix for nova-network/neutron
|
|
||||||
# nondeterministic behavior
|
|
||||||
provision = (
|
|
||||||
config.get("CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE") not in
|
|
||||||
set(['false', 'n', None])
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -204,18 +204,19 @@ def initConfig(controller):
|
|||||||
"CONDITION": False},
|
"CONDITION": False},
|
||||||
],
|
],
|
||||||
|
|
||||||
"PROVISION_ALL_IN_ONE_OVS_BRIDGE": [
|
"PROVISION_OVS_BRIDGE": [
|
||||||
{"CMD_OPTION": "provision-all-in-one-ovs-bridge",
|
{"CMD_OPTION": "provision-ovs-bridge",
|
||||||
"PROMPT": "Would you like to configure the external ovs bridge",
|
"PROMPT": "Would you like to configure the external ovs bridge",
|
||||||
"OPTION_LIST": ["y", "n"],
|
"OPTION_LIST": ["y", "n"],
|
||||||
"VALIDATORS": [validators.validate_options],
|
"VALIDATORS": [validators.validate_options],
|
||||||
"DEFAULT_VALUE": "n",
|
"DEFAULT_VALUE": "y",
|
||||||
"MASK_INPUT": False,
|
"MASK_INPUT": False,
|
||||||
"LOOSE_VALIDATION": True,
|
"LOOSE_VALIDATION": True,
|
||||||
"CONF_NAME": "CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE",
|
"CONF_NAME": "CONFIG_PROVISION_OVS_BRIDGE",
|
||||||
"USE_DEFAULT": False,
|
"USE_DEFAULT": False,
|
||||||
"NEED_CONFIRM": False,
|
"NEED_CONFIRM": False,
|
||||||
"CONDITION": False},
|
"CONDITION": False,
|
||||||
|
"DEPRECATES": ['CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE']},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
|
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
|
||||||
@@ -251,7 +252,7 @@ def initConfig(controller):
|
|||||||
"POST_CONDITION": False,
|
"POST_CONDITION": False,
|
||||||
"POST_CONDITION_MATCH": True},
|
"POST_CONDITION_MATCH": True},
|
||||||
|
|
||||||
{"GROUP_NAME": "PROVISION_ALL_IN_ONE_OVS_BRIDGE",
|
{"GROUP_NAME": "PROVISION_OVS_BRIDGE",
|
||||||
"DESCRIPTION": "Provisioning all-in-one ovs bridge config",
|
"DESCRIPTION": "Provisioning all-in-one ovs bridge config",
|
||||||
"PRE_CONDITION": allow_all_in_one_ovs_bridge,
|
"PRE_CONDITION": allow_all_in_one_ovs_bridge,
|
||||||
"PRE_CONDITION_MATCH": True,
|
"PRE_CONDITION_MATCH": True,
|
||||||
@@ -269,7 +270,7 @@ def initConfig(controller):
|
|||||||
controller.getParamByName(x)
|
controller.getParamByName(x)
|
||||||
for x in ['CONFIG_PROVISION_TEMPEST_REPO_URI',
|
for x in ['CONFIG_PROVISION_TEMPEST_REPO_URI',
|
||||||
'CONFIG_PROVISION_TEMPEST_REPO_REVISION',
|
'CONFIG_PROVISION_TEMPEST_REPO_REVISION',
|
||||||
'CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE']
|
'CONFIG_PROVISION_OVS_BRIDGE']
|
||||||
]
|
]
|
||||||
for param in params:
|
for param in params:
|
||||||
value = controller.CONF.get(param.CONF_NAME, param.DEFAULT_VALUE)
|
value = controller.CONF.get(param.CONF_NAME, param.DEFAULT_VALUE)
|
||||||
@@ -296,13 +297,20 @@ def initSequences(controller):
|
|||||||
{'title': 'Adding Provisioning Tempest manifest entries',
|
{'title': 'Adding Provisioning Tempest manifest entries',
|
||||||
'functions': [create_tempest_manifest]}
|
'functions': [create_tempest_manifest]}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (config['CONFIG_PROVISION_TEMPEST'] == "y" or
|
||||||
|
config['CONFIG_PROVISION_DEMO'] == "y"):
|
||||||
|
provision_steps.append(
|
||||||
|
{'title': 'Adding Provisioning Demo bridge manifest entries',
|
||||||
|
'functions': [create_bridge_manifest]}
|
||||||
|
)
|
||||||
provision_steps.append(
|
provision_steps.append(
|
||||||
{'title': 'Adding Provisioning Glance manifest entries',
|
{'title': 'Adding Provisioning Glance manifest entries',
|
||||||
'functions': [create_storage_manifest]}
|
'functions': [create_storage_manifest]},
|
||||||
)
|
)
|
||||||
|
|
||||||
marshall_conf_bool(config, 'CONFIG_PROVISION_TEMPEST')
|
marshall_conf_bool(config, 'CONFIG_PROVISION_TEMPEST')
|
||||||
marshall_conf_bool(config, 'CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE')
|
marshall_conf_bool(config, 'CONFIG_PROVISION_OVS_BRIDGE')
|
||||||
|
|
||||||
controller.addSequence("Provisioning for Demo and Testing Usage",
|
controller.addSequence("Provisioning for Demo and Testing Usage",
|
||||||
[], [], provision_steps)
|
[], [], provision_steps)
|
||||||
@@ -353,6 +361,14 @@ def create_storage_manifest(config, messages):
|
|||||||
appendManifestFile(manifest_file, manifest_data)
|
appendManifestFile(manifest_file, manifest_data)
|
||||||
|
|
||||||
|
|
||||||
|
def create_bridge_manifest(config, messages):
|
||||||
|
using_neutron(config)
|
||||||
|
for host in utils.split_hosts(config['CONFIG_NETWORK_HOSTS']):
|
||||||
|
manifest_file = '{}_provision_demo_bridge.pp'.format(host)
|
||||||
|
manifest_data = getManifestTemplate("provision_demo_bridge")
|
||||||
|
appendManifestFile(manifest_file, manifest_data, 'demo_bridge')
|
||||||
|
|
||||||
|
|
||||||
def create_tempest_manifest(config, messages):
|
def create_tempest_manifest(config, messages):
|
||||||
using_neutron(config)
|
using_neutron(config)
|
||||||
manifest_file = ('%s_provision_tempest.pp' %
|
manifest_file = ('%s_provision_tempest.pp' %
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
$private_subnet_name = 'private_subnet'
|
$private_subnet_name = 'private_subnet'
|
||||||
$fixed_range = '10.0.0.0/24'
|
$fixed_range = '10.0.0.0/24'
|
||||||
$router_name = 'router1'
|
$router_name = 'router1'
|
||||||
$setup_ovs_bridge = hiera('CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE')
|
|
||||||
$public_bridge_name = hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE')
|
|
||||||
$provision_neutron_avail = hiera('PROVISION_NEUTRON_AVAILABLE')
|
$provision_neutron_avail = hiera('PROVISION_NEUTRON_AVAILABLE')
|
||||||
|
|
||||||
## Users
|
## Users
|
||||||
@@ -79,36 +77,4 @@
|
|||||||
neutron_router_interface { "${router_name}:${private_subnet_name}":
|
neutron_router_interface { "${router_name}:${private_subnet_name}":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
}
|
}
|
||||||
|
|
||||||
if $setup_ovs_bridge {
|
|
||||||
neutron_l3_ovs_bridge { $public_bridge_name:
|
|
||||||
ensure => present,
|
|
||||||
subnet_name => $public_subnet_name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if $setup_ovs_bridge {
|
|
||||||
firewall { '000 nat':
|
|
||||||
chain => 'POSTROUTING',
|
|
||||||
jump => 'MASQUERADE',
|
|
||||||
source => hiera('CONFIG_PROVISION_DEMO_FLOATRANGE'),
|
|
||||||
outiface => $::gateway_device,
|
|
||||||
table => 'nat',
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall { '000 forward out':
|
|
||||||
chain => 'FORWARD',
|
|
||||||
action => 'accept',
|
|
||||||
outiface => $public_bridge_name,
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall { '000 forward in':
|
|
||||||
chain => 'FORWARD',
|
|
||||||
action => 'accept',
|
|
||||||
iniface => $public_bridge_name,
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
44
packstack/puppet/templates/provision_demo_bridge.pp
Normal file
44
packstack/puppet/templates/provision_demo_bridge.pp
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
$setup_ovs_bridge = hiera('CONFIG_PROVISION_OVS_BRIDGE')
|
||||||
|
$provision_neutron_avail = hiera('PROVISION_NEUTRON_AVAILABLE')
|
||||||
|
$public_bridge_name = hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE')
|
||||||
|
|
||||||
|
neutron_config {
|
||||||
|
'keystone_authtoken/identity_uri': value => hiera('CONFIG_KEYSTONE_ADMIN_URL');
|
||||||
|
'keystone_authtoken/auth_uri': value => hiera('CONFIG_KEYSTONE_PUBLIC_URL');
|
||||||
|
'keystone_authtoken/admin_tenant_name': value => 'services';
|
||||||
|
'keystone_authtoken/admin_user': value => 'neutron';
|
||||||
|
'keystone_authtoken/admin_password': value => hiera('CONFIG_NEUTRON_KS_PW');
|
||||||
|
}
|
||||||
|
|
||||||
|
if $provision_neutron_avail and $setup_ovs_bridge {
|
||||||
|
Neutron_config<||> -> Neutron_l3_ovs_bridge['demo_bridge']
|
||||||
|
neutron_l3_ovs_bridge { 'demo_bridge':
|
||||||
|
name => $public_bridge_name,
|
||||||
|
ensure => present,
|
||||||
|
subnet_name => 'public_subnet',
|
||||||
|
}
|
||||||
|
|
||||||
|
firewall { '000 nat':
|
||||||
|
chain => 'POSTROUTING',
|
||||||
|
jump => 'MASQUERADE',
|
||||||
|
source => hiera('CONFIG_PROVISION_DEMO_FLOATRANGE'),
|
||||||
|
outiface => $::gateway_device,
|
||||||
|
table => 'nat',
|
||||||
|
proto => 'all',
|
||||||
|
}
|
||||||
|
|
||||||
|
firewall { '000 forward out':
|
||||||
|
chain => 'FORWARD',
|
||||||
|
action => 'accept',
|
||||||
|
outiface => $public_bridge_name,
|
||||||
|
proto => 'all',
|
||||||
|
}
|
||||||
|
|
||||||
|
firewall { '000 forward in':
|
||||||
|
chain => 'FORWARD',
|
||||||
|
action => 'accept',
|
||||||
|
iniface => $public_bridge_name,
|
||||||
|
proto => 'all',
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,8 +33,6 @@ if $provision_tempest_user != '' {
|
|||||||
$private_subnet_name = 'private_subnet'
|
$private_subnet_name = 'private_subnet'
|
||||||
$fixed_range = '10.0.0.0/24'
|
$fixed_range = '10.0.0.0/24'
|
||||||
$router_name = 'router1'
|
$router_name = 'router1'
|
||||||
$setup_ovs_bridge = hiera('CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE')
|
|
||||||
$public_bridge_name = hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE')
|
|
||||||
|
|
||||||
## Tempest
|
## Tempest
|
||||||
$configure_tempest = hiera('CONFIG_PROVISION_TEMPEST')
|
$configure_tempest = hiera('CONFIG_PROVISION_TEMPEST')
|
||||||
@@ -149,13 +147,6 @@ if $provision_tempest_user != '' {
|
|||||||
neutron_router_interface { "${router_name}:${private_subnet_name}":
|
neutron_router_interface { "${router_name}:${private_subnet_name}":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
}
|
}
|
||||||
|
|
||||||
if $setup_ovs_bridge {
|
|
||||||
neutron_l3_ovs_bridge { $public_bridge_name:
|
|
||||||
ensure => present,
|
|
||||||
subnet_name => $public_subnet_name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
## Tempest
|
## Tempest
|
||||||
@@ -193,31 +184,6 @@ if $provision_tempest_user != '' {
|
|||||||
require => $tempest_requires,
|
require => $tempest_requires,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if hiera('CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE') {
|
|
||||||
firewall { '000 nat':
|
|
||||||
chain => 'POSTROUTING',
|
|
||||||
jump => 'MASQUERADE',
|
|
||||||
source => hiera('CONFIG_PROVISION_TEMPEST_FLOATRANGE'),
|
|
||||||
outiface => $::gateway_device,
|
|
||||||
table => 'nat',
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall { '000 forward out':
|
|
||||||
chain => 'FORWARD',
|
|
||||||
action => 'accept',
|
|
||||||
outiface => hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE'),
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall { '000 forward in':
|
|
||||||
chain => 'FORWARD',
|
|
||||||
action => 'accept',
|
|
||||||
iniface => hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE'),
|
|
||||||
proto => 'all',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
## Standalone Tempest installation
|
## Standalone Tempest installation
|
||||||
class { '::tempest':
|
class { '::tempest':
|
||||||
|
|||||||
Reference in New Issue
Block a user