Merge "Support Manila network plugin model"
This commit is contained in:
@@ -627,6 +627,30 @@ Manila generic driver configuration
|
||||
**CONFIG_MANILA_SERVICE_INSTANCE_PASSWORD**
|
||||
Password to service instance user.
|
||||
|
||||
Manila Network configuration
|
||||
----------------------------
|
||||
|
||||
**CONFIG_MANILA_NETWORK_TYPE**
|
||||
Type of networking that the backend will use. A more detailed description of each option is available in the Manila docs. Defaults to 'neutron'. ['neutron', 'nova-network', 'standalone']
|
||||
|
||||
Manila Standalone network configuration
|
||||
---------------------------------------
|
||||
|
||||
**CONFIG_MANILA_NETWORK_STANDALONE_GATEWAY**
|
||||
Gateway IPv4 address that should be used. Required. Defaults to ''.
|
||||
|
||||
**CONFIG_MANILA_NETWORK_STANDALONE_NETMASK**
|
||||
Network mask that will be used. Can be either decimal like '24' or binary like '255.255.255.0'. Required. Defaults to ''.
|
||||
|
||||
**CONFIG_MANILA_NETWORK_STANDALONE_SEG_ID**
|
||||
Set it if network has segmentation (VLAN, VXLAN, etc). It will be assigned to share-network and share drivers will be able to use this for network interfaces within provisioned share servers. Optional. Example: 1001. Defaults to ''.
|
||||
|
||||
**CONFIG_MANILA_NETWORK_STANDALONE_IP_RANGE**
|
||||
Can be IP address, range of IP addresses or list of addresses or ranges. Contains addresses from IP network that are allowed to be used. If empty, then will be assumed that all host addresses from network can be used. Optional. Examples: 10.0.0.10 or 10.0.0.10-10.0.0.20 or 10.0.0.10-10.0.0.20,10.0.0.30-10.0.0.40,10.0.0.50. Defaults to ''.
|
||||
|
||||
**CONFIG_MANILA_NETWORK_STANDALONE_IP_VERSION**
|
||||
IP version of network. Optional. Defaults to '4'. ['4', '6']
|
||||
|
||||
Ironic Options
|
||||
--------------
|
||||
|
||||
|
||||
@@ -294,7 +294,83 @@ def initConfig(controller):
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
]
|
||||
],
|
||||
|
||||
"MANILANETWORK": [
|
||||
{"CMD_OPTION": "manila-network-type",
|
||||
"PROMPT": ("Enter a network type"),
|
||||
"OPTION_LIST": ['neutron', 'nova-network', 'standalone'],
|
||||
"VALIDATORS": [validators.validate_options],
|
||||
"DEFAULT_VALUE": "neutron",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_TYPE",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
],
|
||||
|
||||
"MANILANETWORKSTANDALONE": [
|
||||
{"CMD_OPTION": "standalone_network_plugin_gateway",
|
||||
"PROMPT": ("Enter a plugin gateway"),
|
||||
"OPTION_LIST": [],
|
||||
"VALIDATORS": [validators.validate_not_empty],
|
||||
"DEFAULT_VALUE": "",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_STANDALONE_GATEWAY",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
|
||||
{"CMD_OPTION": "standalone_network_plugin_mask",
|
||||
"PROMPT": ("Enter a network mask"),
|
||||
"OPTION_LIST": [],
|
||||
"VALIDATORS": [validators.validate_not_empty],
|
||||
"DEFAULT_VALUE": "",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_STANDALONE_NETMASK",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
|
||||
{"CMD_OPTION": "standalone_network_plugin_segmentation_id",
|
||||
"PROMPT": ("Enter a segmentation ID"),
|
||||
"OPTION_LIST": [],
|
||||
"VALIDATORS": [],
|
||||
"DEFAULT_VALUE": "",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_STANDALONE_SEG_ID",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
|
||||
{"CMD_OPTION": "standalone_network_plugin_ip_range",
|
||||
"PROMPT": ("Enter a network mask"),
|
||||
"OPTION_LIST": [],
|
||||
"VALIDATORS": [],
|
||||
"DEFAULT_VALUE": "",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_STANDALONE_IP_RANGE",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
|
||||
{"CMD_OPTION": "standalone_network_plugin_ip_version",
|
||||
"PROMPT": ("Enter an IP version"),
|
||||
"OPTION_LIST": ['4', '6'],
|
||||
"VALIDATORS": [validators.validate_options],
|
||||
"DEFAULT_VALUE": "4",
|
||||
"MASK_INPUT": False,
|
||||
"LOOSE_VALIDATION": False,
|
||||
"CONF_NAME": "CONFIG_MANILA_NETWORK_STANDALONE_IP_VERSION",
|
||||
"USE_DEFAULT": False,
|
||||
"NEED_CONFIRM": False,
|
||||
"CONDITION": False},
|
||||
],
|
||||
}
|
||||
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
|
||||
conf_groups = [
|
||||
@@ -332,6 +408,20 @@ def initConfig(controller):
|
||||
"PRE_CONDITION_MATCH": True,
|
||||
"POST_CONDITION": False,
|
||||
"POST_CONDITION_MATCH": True},
|
||||
|
||||
{"GROUP_NAME": "MANILANETWORK",
|
||||
"DESCRIPTION": "Manila general network configuration",
|
||||
"PRE_CONDITION": "CONFIG_MANILA_INSTALL",
|
||||
"PRE_CONDITION_MATCH": "y",
|
||||
"POST_CONDITION": False,
|
||||
"POST_CONDITION_MATCH": True},
|
||||
|
||||
{"GROUP_NAME": "MANILANETWORKSTANDALONE",
|
||||
"DESCRIPTION": "Manila standalone network configuration",
|
||||
"PRE_CONDITION": check_network_standalone_options,
|
||||
"PRE_CONDITION_MATCH": True,
|
||||
"POST_CONDITION": False,
|
||||
"POST_CONDITION_MATCH": True},
|
||||
]
|
||||
for group in conf_groups:
|
||||
params = conf_params[group["GROUP_NAME"]]
|
||||
@@ -381,6 +471,11 @@ def check_generic_options(config):
|
||||
'generic' in config['CONFIG_MANILA_BACKEND'])
|
||||
|
||||
|
||||
def check_network_standalone_options(config):
|
||||
return (config['CONFIG_MANILA_INSTALL'] == 'y' and
|
||||
config['CONFIG_MANILA_NETWORK_TYPE'] == 'standalone')
|
||||
|
||||
|
||||
# -------------------------- step functions --------------------------
|
||||
|
||||
def create_keystone_manifest(config, messages):
|
||||
@@ -409,6 +504,7 @@ def create_manifest(config, messages):
|
||||
manifestdata = getManifestTemplate(get_mq(config, "manila"))
|
||||
manifestfile = "%s_manila.pp" % config['CONFIG_STORAGE_HOST']
|
||||
manifestdata += getManifestTemplate("manila.pp")
|
||||
manifestdata += getManifestTemplate("manila_network.pp")
|
||||
|
||||
backends = config['CONFIG_MANILA_BACKEND']
|
||||
for backend in backends:
|
||||
|
||||
@@ -19,11 +19,6 @@ class { '::manila::api':
|
||||
keystone_auth_host => hiera('CONFIG_KEYSTONE_HOST_URL'),
|
||||
}
|
||||
|
||||
class { '::manila::network::neutron':
|
||||
neutron_admin_password => hiera('CONFIG_NEUTRON_KS_PW'),
|
||||
neutron_admin_tenant_name => 'services',
|
||||
}
|
||||
|
||||
class { '::manila::scheduler':
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ manila::service_instance{ 'generic':
|
||||
service_instance_password => hiera('CONFIG_MANILA_SERVICE_INSTANCE_PASSWORD'),
|
||||
}
|
||||
|
||||
packstack::manila::network{ 'generic': }
|
||||
|
||||
class { '::manila::compute::nova':
|
||||
nova_admin_password => hiera('CONFIG_NOVA_KS_PW'),
|
||||
nova_admin_tenant_name => 'services',
|
||||
|
||||
@@ -12,3 +12,5 @@ manila::backend::netapp{ 'netapp':
|
||||
netapp_root_volume_aggregate => hiera('CONFIG_MANILA_NETAPP_ROOT_VOLUME_AGGREGATE', undef),
|
||||
netapp_root_volume_name => hiera('CONFIG_MANILA_NETAPP_ROOT_VOLUME_NAME', undef),
|
||||
}
|
||||
|
||||
packstack::manila::network{ 'netapp': }
|
||||
|
||||
26
packstack/puppet/templates/manila_network.pp
Normal file
26
packstack/puppet/templates/manila_network.pp
Normal file
@@ -0,0 +1,26 @@
|
||||
$manila_network_type = hiera('CONFIG_MANILA_NETWORK_TYPE')
|
||||
|
||||
define packstack::manila::network ($backend_name = $name) {
|
||||
|
||||
if ($::manila_network_type == 'neutron'){
|
||||
class { '::manila::network::neutron':
|
||||
neutron_admin_password => hiera('CONFIG_NEUTRON_KS_PW'),
|
||||
neutron_admin_tenant_name => 'services',
|
||||
}
|
||||
}
|
||||
elsif ($::manila_network_type == 'nova-network'){
|
||||
manila::network::nova_network{ $backend_name: }
|
||||
}
|
||||
elsif ($::manila_network_type == 'standalone'){
|
||||
manila::network::standalone{ $backend_name:
|
||||
standalone_network_plugin_gateway => hiera('CONFIG_MANILA_NETWORK_STANDALONE_GATEWAY'),
|
||||
standalone_network_plugin_mask => hiera('CONFIG_MANILA_NETWORK_STANDALONE_NETMASK'),
|
||||
standalone_network_plugin_segmentation_id => hiera('CONFIG_MANILA_NETWORK_STANDALONE_SEG_ID'),
|
||||
standalone_network_plugin_allowed_ip_ranges => hiera('CONFIG_MANILA_NETWORK_STANDALONE_IP_RANGE'),
|
||||
standalone_network_plugin_ip_version => hiera('CONFIG_MANILA_NETWORK_STANDALONE_IP_VERSION'),
|
||||
}
|
||||
}
|
||||
else {
|
||||
fail("The value ${::manila_network_type} is not a valid value for the Manila network type.")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user