diff --git a/docs/packstack.rst b/docs/packstack.rst index b7f9fe496..358b41e17 100644 --- a/docs/packstack.rst +++ b/docs/packstack.rst @@ -418,6 +418,9 @@ Neutron Config Parameters **CONFIG_NEUTRON_METADATA_PW** A comma separated list of IP addresses on which to install Neutron metadata agent. +**CONFIG_NEUTRON_FWAAS** + Whether to configure neutron Firewall as a Service. + **CONFIG_NEUTRON_LB_TENANT_NETWORK_TYPE** The type of network to allocate for tenant networks (eg. vlan, local, gre). diff --git a/packstack/plugins/neutron_350.py b/packstack/plugins/neutron_350.py index 747cb5bc8..c11f5892e 100644 --- a/packstack/plugins/neutron_350.py +++ b/packstack/plugins/neutron_350.py @@ -125,6 +125,19 @@ def initConfig(controller): "USE_DEFAULT": False, "NEED_CONFIRM": False, "CONDITION": False}, + + {"CMD_OPTION": "neutron-fwaas", + "USAGE": ("Whether to configure neutron Firewall as a Service"), + "PROMPT": "Would you like to configure neutron FWaaS?", + "OPTION_LIST": ["y", "n"], + "VALIDATORS": [validators.validate_options], + "DEFAULT_VALUE": "n", + "MASK_INPUT": False, + "LOOSE_VALIDATION": True, + "CONF_NAME": "CONFIG_NEUTRON_FWAAS", + "USE_DEFAULT": False, + "NEED_CONFIRM": False, + "CONDITION": False}, ], "NEUTRON_LB_PLUGIN": [ @@ -703,10 +716,17 @@ def create_manifests(config, messages): service_plugins.append( 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin' ) + if config['CONFIG_NEUTRON_METERING_AGENT_INSTALL'] == 'y': service_plugins.append( 'neutron.services.metering.metering_plugin.MeteringPlugin' ) + + if config['CONFIG_NEUTRON_FWAAS']: + service_plugins.append( + 'neutron.services.firewall.fwaas_plugin.FirewallPlugin' + ) + config['SERVICE_PLUGINS'] = (str(service_plugins) if service_plugins else 'undef') @@ -794,6 +814,11 @@ def create_l3_manifests(config, messages): manifestdata = getManifestTemplate('neutron_ovs_bridge.pp') appendManifestFile(manifestfile, manifestdata + '\n') + if config['CONFIG_NEUTRON_FWAAS']: + manifestfile = "%s_neutron_fwaas.pp" % (host,) + manifestdata = getManifestTemplate("neutron_fwaas.pp") + appendManifestFile(manifestfile, manifestdata + '\n') + def create_dhcp_manifests(config, messages): global network_hosts diff --git a/packstack/puppet/templates/neutron_fwaas.pp b/packstack/puppet/templates/neutron_fwaas.pp new file mode 100644 index 000000000..fcdc71c88 --- /dev/null +++ b/packstack/puppet/templates/neutron_fwaas.pp @@ -0,0 +1,3 @@ +class { 'neutron::services::fwaas': + enabled => true, +}