Allow network range for nova networks

This patch adds the option to set an ip range for
instances.

For this patch to work this other patch is needed for
puppet nova https://review.openstack.org/#/c/135123/

Change-Id: I6eabe1268003117c69d77fd8501df2c6d2f8329a
Fixes: rhbz#1127404
This commit is contained in:
Ivan Chavero
2014-12-02 12:48:46 -07:00
committed by Martin Mágr
parent e31cae66e3
commit f91f058d04
2 changed files with 58 additions and 0 deletions

View File

@@ -240,6 +240,20 @@ def initConfig(controller):
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "novanetwork-allowed-range",
"USAGE": "Reserve an IP Address Range for Instances",
"PROMPT": ("Reserve IP Adress Range for Instances"),
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
"DEFAULT_VALUE": "n",
"MASK_INPUT": False,
"LOOSE_VALIDATION": False,
"CONF_NAME": "CONFIG_NOVA_NETWORK_ALLOWED_RANGE",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
],
"NOVA_NETWORK_VLAN": [
@@ -282,6 +296,35 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
],
"NOVA_NETWORK_ALLOWED_IP_RANGE": [
{"CMD_OPTION": "nova-network-allowed-start-ip",
"USAGE": "First IP of the range of allowed addresses",
"PROMPT": ("Start IP"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip],
"DEFAULT_VALUE": "",
"MASK_INPUT": False,
"LOOSE_VALIDATION": True,
"CONF_NAME": "CONFIG_NOVA_NETWORK_ALLOWED_START_IP",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "nova-network-allowed-end-ip",
"USAGE": "Last IP of the range of allowed addresses",
"PROMPT": ("End IP"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip],
"DEFAULT_VALUE": "",
"MASK_INPUT": False,
"LOOSE_VALIDATION": True,
"CONF_NAME": "CONFIG_NOVA_NETWORK_ALLOWED_END_IP",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
],
}
def use_nova_network(config):
@@ -294,6 +337,11 @@ def initConfig(controller):
config['CONFIG_NEUTRON_INSTALL'] != 'y' and
config['CONFIG_NOVA_NETWORK_MANAGER'] == manager)
def use_nova_network_ip_range(config):
return (config['CONFIG_NOVA_INSTALL'] == 'y' and
config['CONFIG_NEUTRON_INSTALL'] != 'y' and
config['CONFIG_NOVA_NETWORK_ALLOWED_RANGE'] == 'y')
nova_groups = [
{"GROUP_NAME": "NOVA",
"DESCRIPTION": "Nova Options",
@@ -315,6 +363,14 @@ def initConfig(controller):
"PRE_CONDITION_MATCH": True,
"POST_CONDITION": False,
"POST_CONDITION_MATCH": True},
{"GROUP_NAME": "NOVA_NETWORK_ALLOWED_IP_RANGE",
"DESCRIPTION": "Nova Network Allowed IP Range ",
"PRE_CONDITION": use_nova_network_ip_range,
"PRE_CONDITION_MATCH": True,
"POST_CONDITION": False,
"POST_CONDITION_MATCH": True},
]
for group in nova_groups:
params = nova_params[group["GROUP_NAME"]]

View File

@@ -45,6 +45,8 @@ class { 'nova::network':
fixed_range => hiera('CONFIG_NOVA_NETWORK_FIXEDRANGE'),
floating_range => hiera('CONFIG_NOVA_NETWORK_FLOATRANGE'),
config_overrides => $overrides,
allowed_start => hiera('CONFIG_NOVA_NETWORK_ALLOWED_START_IP'),
allowed_end => hiera('CONFIG_NOVA_NETWORK_ALLOWED_END_IP'),
}
package { 'dnsmasq':