Update Neutron Configuration for Liberty
This patch includes the updates to the configuration files for Neutron for the Liberty release. Files Removed: - rootwrap.d/nec-plugin.filters - rootwrap.d/ryu-plugin.filters Variables removed due to upstream deprecation: - neutron_l3_router_delete_namespaces - neutron_dhcp_delete_namespaces Defaults changed to match new upstream defaults: - neutron_driver_network_scheduler - neutron_driver_quota Upgrade Notes: - The LinuxBridge configuration has been seperated out from plugins/ml2/ml2_conf.ini to plugins/ml2/linuxbridge_agent.ini - prevent_arp_spoofing is now set to the upstream default, which is True. DocImpact UpgradeImpact Closes-Bug: #1482756 Implements: blueprint liberty-release Change-Id: I879fd37db2e699bc3d48bcdd65ec7888b0f3f1a9
This commit is contained in:
@@ -102,11 +102,11 @@ neutron_services:
|
|||||||
neutron-linuxbridge-agent:
|
neutron-linuxbridge-agent:
|
||||||
service_name: neutron-linuxbridge-agent
|
service_name: neutron-linuxbridge-agent
|
||||||
service_en: True
|
service_en: True
|
||||||
service_conf: plugins/ml2/ml2_conf.ini
|
service_conf: plugins/ml2/linuxbridge_agent.ini
|
||||||
service_group: neutron_linuxbridge_agent
|
service_group: neutron_linuxbridge_agent
|
||||||
service_rootwrap: rootwrap.d/linuxbridge-plugin.filters
|
service_rootwrap: rootwrap.d/linuxbridge-plugin.filters
|
||||||
config_options: --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
|
config_options: --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/plugins/ml2/linuxbridge_agent.ini
|
||||||
config_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
|
config_overrides: "{{ neutron_linuxbridge_agent_ini_overrides }}"
|
||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
neutron-metadata-agent:
|
neutron-metadata-agent:
|
||||||
service_name: neutron-metadata-agent
|
service_name: neutron-metadata-agent
|
||||||
@@ -140,14 +140,14 @@ neutron_services:
|
|||||||
config_options: --config-file /etc/neutron/neutron.conf --config-file "/etc/neutron/{{ neutron_plugins[neutron_plugin_type].plugin_ini }}"
|
config_options: --config-file /etc/neutron/neutron.conf --config-file "/etc/neutron/{{ neutron_plugins[neutron_plugin_type].plugin_ini }}"
|
||||||
|
|
||||||
## Drivers
|
## Drivers
|
||||||
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.ChanceScheduler
|
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
|
||||||
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
|
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
|
||||||
neutron_driver_loadbalancer_pool_scheduler: neutron.services.loadbalancer.agent_scheduler.ChanceScheduler
|
neutron_driver_loadbalancer_pool_scheduler: neutron.services.loadbalancer.agent_scheduler.ChanceScheduler
|
||||||
neutron_driver_interface: neutron.agent.linux.interface.BridgeInterfaceDriver
|
neutron_driver_interface: neutron.agent.linux.interface.BridgeInterfaceDriver
|
||||||
neutron_driver_metering: neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver
|
neutron_driver_metering: neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver
|
||||||
neutron_driver_dhcp: neutron.agent.linux.dhcp.Dnsmasq
|
neutron_driver_dhcp: neutron.agent.linux.dhcp.Dnsmasq
|
||||||
neutron_driver_notification: neutron.openstack.common.notifier.rpc_notifier
|
neutron_driver_notification: neutron.openstack.common.notifier.rpc_notifier
|
||||||
neutron_driver_quota: neutron.db.quota_db.DbQuotaDriver
|
neutron_driver_quota: neutron.db.quota.driver.DbQuotaDriver
|
||||||
neutron_driver_firewall: neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
neutron_driver_firewall: neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||||
|
|
||||||
## Quotas
|
## Quotas
|
||||||
@@ -218,9 +218,6 @@ neutron_agent_polling_interval: 5
|
|||||||
neutron_report_interval: "{{ neutron_agent_down_time | int / 2 | int }}"
|
neutron_report_interval: "{{ neutron_agent_down_time | int / 2 | int }}"
|
||||||
neutron_network_device_mtu: 1450
|
neutron_network_device_mtu: 1450
|
||||||
|
|
||||||
# L3 configuration options
|
|
||||||
neutron_l3_router_delete_namespaces: True
|
|
||||||
|
|
||||||
# L3HA configuration options.
|
# L3HA configuration options.
|
||||||
neutron_ha_vrrp_advert_int: 2
|
neutron_ha_vrrp_advert_int: 2
|
||||||
neutron_ha_vrrp_auth_password: None
|
neutron_ha_vrrp_auth_password: None
|
||||||
@@ -274,7 +271,6 @@ neutron_vxlan_group: ""
|
|||||||
neutron_vxlan_enabled: true
|
neutron_vxlan_enabled: true
|
||||||
|
|
||||||
neutron_dhcp_domain: openstacklocal
|
neutron_dhcp_domain: openstacklocal
|
||||||
neutron_dhcp_delete_namespaces: True
|
|
||||||
# Comma-separated list of DNS servers which will be used by dnsmasq as forwarders.
|
# Comma-separated list of DNS servers which will be used by dnsmasq as forwarders.
|
||||||
neutron_dnsmasq_dns_servers: ""
|
neutron_dnsmasq_dns_servers: ""
|
||||||
# Limit number of leases to prevent a denial-of-service.
|
# Limit number of leases to prevent a denial-of-service.
|
||||||
@@ -350,3 +346,4 @@ neutron_dnsmasq_neutron_conf_overrides: {}
|
|||||||
neutron_l3_agent_ini_overrides: {}
|
neutron_l3_agent_ini_overrides: {}
|
||||||
neutron_metadata_agent_ini_overrides: {}
|
neutron_metadata_agent_ini_overrides: {}
|
||||||
neutron_metering_agent_ini_overrides: {}
|
neutron_metering_agent_ini_overrides: {}
|
||||||
|
neutron_linuxbridge_agent_ini_overrides: {}
|
||||||
|
|||||||
@@ -10,5 +10,9 @@
|
|||||||
|
|
||||||
# This is needed because we should ping
|
# This is needed because we should ping
|
||||||
# from inside a namespace which requires root
|
# from inside a namespace which requires root
|
||||||
|
# _alt variants allow to match -c and -w in any order
|
||||||
|
# (used by NeutronDebugAgent.ping_all)
|
||||||
ping: RegExpFilter, ping, root, ping, -w, \d+, -c, \d+, [0-9\.]+
|
ping: RegExpFilter, ping, root, ping, -w, \d+, -c, \d+, [0-9\.]+
|
||||||
|
ping_alt: RegExpFilter, ping, root, ping, -c, \d+, -w, \d+, [0-9\.]+
|
||||||
ping6: RegExpFilter, ping6, root, ping6, -w, \d+, -c, \d+, [0-9A-Fa-f:]+
|
ping6: RegExpFilter, ping6, root, ping6, -w, \d+, -c, \d+, [0-9A-Fa-f:]+
|
||||||
|
ping6_alt: RegExpFilter, ping6, root, ping6, -c, \d+, -w, \d+, [0-9A-Fa-f:]+
|
||||||
@@ -23,10 +23,6 @@ dhcp_release: CommandFilter, dhcp_release, root
|
|||||||
|
|
||||||
# metadata proxy
|
# metadata proxy
|
||||||
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
|
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
|
||||||
# If installed from source (say, by devstack), the prefix will be
|
|
||||||
# /usr/local instead of /usr/bin.
|
|
||||||
|
|
||||||
metadata_proxy_local: CommandFilter, {{ neutron_bin }}/neutron-ns-metadata-proxy, root
|
|
||||||
# RHEL invocation of the metadata proxy will report /usr/bin/python
|
# RHEL invocation of the metadata proxy will report /usr/bin/python
|
||||||
kill_metadata: KillFilter, root, python, -9
|
kill_metadata: KillFilter, root, python, -9
|
||||||
kill_metadata7: KillFilter, root, python2.7, -9
|
kill_metadata7: KillFilter, root, python2.7, -9
|
||||||
16
files/rootwrap.d/dibbler.filters
Normal file
16
files/rootwrap.d/dibbler.filters
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# neutron-rootwrap command filters for nodes on which neutron is
|
||||||
|
# expected to control network
|
||||||
|
#
|
||||||
|
# This file should be owned by (and only-writeable by) the root user
|
||||||
|
|
||||||
|
# format seems to be
|
||||||
|
# cmd-name: filter-name, raw-command, user, args
|
||||||
|
|
||||||
|
[Filters]
|
||||||
|
|
||||||
|
# Filters for the dibbler-based reference implementation of the pluggable
|
||||||
|
# Prefix Delegation driver. Other implementations using an alternative agent
|
||||||
|
# should include a similar filter in this folder.
|
||||||
|
|
||||||
|
# prefix_delegation_agent
|
||||||
|
dibbler-client: CommandFilter, dibbler-client, root
|
||||||
@@ -8,5 +8,4 @@
|
|||||||
|
|
||||||
[Filters]
|
[Filters]
|
||||||
|
|
||||||
# nec_neutron_agent
|
ebtables: CommandFilter, ebtables, root
|
||||||
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
|
||||||
@@ -18,10 +18,6 @@ radvd: CommandFilter, radvd, root
|
|||||||
|
|
||||||
# metadata proxy
|
# metadata proxy
|
||||||
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
|
metadata_proxy: CommandFilter, neutron-ns-metadata-proxy, root
|
||||||
# If installed from source (say, by devstack), the prefix will be
|
|
||||||
# /usr/local instead of /usr/bin.
|
|
||||||
|
|
||||||
metadata_proxy_local: CommandFilter, {{ neutron_bin }}/neutron-ns-metadata-proxy, root
|
|
||||||
# RHEL invocation of the metadata proxy will report /usr/bin/python
|
# RHEL invocation of the metadata proxy will report /usr/bin/python
|
||||||
kill_metadata: KillFilter, root, python, -9
|
kill_metadata: KillFilter, root, python, -9
|
||||||
kill_metadata7: KillFilter, root, python2.7, -9
|
kill_metadata7: KillFilter, root, python2.7, -9
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
# unclear whether both variants are necessary, but I'm transliterating
|
# unclear whether both variants are necessary, but I'm transliterating
|
||||||
# from the old mechanism
|
# from the old mechanism
|
||||||
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
||||||
|
# NOTE(yamamoto): of_interface=native doesn't use ovs-ofctl
|
||||||
ovs-ofctl: CommandFilter, ovs-ofctl, root
|
ovs-ofctl: CommandFilter, ovs-ofctl, root
|
||||||
kill_ovsdb_client: KillFilter, root, /usr/bin/ovsdb-client, -9
|
kill_ovsdb_client: KillFilter, root, /usr/bin/ovsdb-client, -9
|
||||||
ovsdb-client: CommandFilter, ovsdb-client, root
|
ovsdb-client: CommandFilter, ovsdb-client, root
|
||||||
17
files/rootwrap.d/vpnaas.filters
Normal file
17
files/rootwrap.d/vpnaas.filters
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# neutron-rootwrap command filters for nodes on which neutron is
|
||||||
|
# expected to control network
|
||||||
|
#
|
||||||
|
# This file should be owned by (and only-writeable by) the root user
|
||||||
|
|
||||||
|
# format seems to be
|
||||||
|
# cmd-name: filter-name, raw-command, user, args
|
||||||
|
|
||||||
|
[Filters]
|
||||||
|
|
||||||
|
ip: IpFilter, ip, root
|
||||||
|
ip_exec: IpNetnsExecFilter, ip, root
|
||||||
|
ipsec: CommandFilter, ipsec, root
|
||||||
|
strongswan: CommandFilter, strongswan, root
|
||||||
|
neutron_netns_wrapper: CommandFilter, neutron-vpn-netns-wrapper, root
|
||||||
|
neutron_netns_wrapper_local: CommandFilter, /usr/local/bin/neutron-vpn-netns-wrapper, root
|
||||||
|
chown: RegExpFilter, chown, root, chown, --from=.*, root.root, .*/ipsec.secrets
|
||||||
@@ -79,34 +79,34 @@
|
|||||||
when:
|
when:
|
||||||
- item.value.service_en | bool
|
- item.value.service_en | bool
|
||||||
- item.value.service_conf is defined
|
- item.value.service_conf is defined
|
||||||
- inventory_hostname in groups['neutron_agents_container']
|
- (inventory_hostname in groups['neutron_agents_container'] or
|
||||||
|
inventory_hostname in groups['neutron_linuxbridge_agent'])
|
||||||
tags:
|
tags:
|
||||||
- neutron-config
|
- neutron-config
|
||||||
|
|
||||||
- name: Drop neutron Configs
|
- name: Drop neutron Configs
|
||||||
template:
|
copy:
|
||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ item.dest }}"
|
dest: "{{ item.dest }}"
|
||||||
owner: "{{ neutron_system_user_name }}"
|
owner: "{{ neutron_system_user_name }}"
|
||||||
group: "{{ neutron_system_group_name }}"
|
group: "{{ neutron_system_group_name }}"
|
||||||
with_items:
|
with_items:
|
||||||
- { src: "rootwrap.d/debug.filters.j2", dest: "/etc/neutron/rootwrap.d/debug.filters" }
|
- { src: "rootwrap.d/debug.filters", dest: "/etc/neutron/rootwrap.d/debug.filters" }
|
||||||
- { src: "rootwrap.d/ipset-firewall.filters.j2", dest: "/etc/neutron/rootwrap.d/ipset-firewall.filters" }
|
- { src: "rootwrap.d/dibbler.filters", dest: "/etc/neutron/rootwrap.d/dibbler.filters" }
|
||||||
- { src: "rootwrap.d/iptables-firewall.filters.j2", dest: "/etc/neutron/rootwrap.d/iptables-firewall.filters" }
|
- { src: "rootwrap.d/ipset-firewall.filters", dest: "/etc/neutron/rootwrap.d/ipset-firewall.filters" }
|
||||||
- { src: "rootwrap.d/nec-plugin.filters.j2", dest: "/etc/neutron/rootwrap.d/nec-plugin.filters" }
|
- { src: "rootwrap.d/iptables-firewall.filters", dest: "/etc/neutron/rootwrap.d/iptables-firewall.filters" }
|
||||||
- { src: "rootwrap.d/openvswitch-plugin.filters.j2", dest: "/etc/neutron/rootwrap.d/openvswitch-plugin.filters" }
|
- { src: "rootwrap.d/openvswitch-plugin.filters", dest: "/etc/neutron/rootwrap.d/openvswitch-plugin.filters" }
|
||||||
- { src: "rootwrap.d/ryu-plugin.filters.j2", dest: "/etc/neutron/rootwrap.d/ryu-plugin.filters" }
|
- { src: "rootwrap.d/lbaas-haproxy.filters", dest: "/etc/neutron/rootwrap.d/lbaas-haproxy.filters" }
|
||||||
- { src: "rootwrap.d/lbaas-haproxy.filters.j2", dest: "/etc/neutron/rootwrap.d/lbaas-haproxy.filters" }
|
- { src: "rootwrap.d/vpnaas.filters", dest: "/etc/neutron/rootwrap.d/vpnaas.filters" }
|
||||||
- { src: "rootwrap.d/vpnaas.filters.j2", dest: "/etc/neutron/rootwrap.d/vpnaas.filters" }
|
- { src: "rootwrap.d/ebtables.filters", dest: "/etc/neutron/rootwrap.d/ebtables.filters" }
|
||||||
- { src: "rootwrap.d/ebtables.filters.j2", dest: "/etc/neutron/rootwrap.d/ebtables.filters" }
|
|
||||||
notify:
|
notify:
|
||||||
- Restart neutron services
|
- Restart neutron services
|
||||||
tags:
|
tags:
|
||||||
- neutron-config
|
- neutron-config
|
||||||
|
|
||||||
- name: Drop neutron agent filters
|
- name: Drop neutron agent filters
|
||||||
template:
|
copy:
|
||||||
src: "{{ item.value.service_rootwrap }}.j2"
|
src: "{{ item.value.service_rootwrap }}"
|
||||||
dest: "/etc/neutron/{{ item.value.service_rootwrap }}"
|
dest: "/etc/neutron/{{ item.value.service_rootwrap }}"
|
||||||
owner: "{{ neutron_system_user_name }}"
|
owner: "{{ neutron_system_user_name }}"
|
||||||
group: "{{ neutron_system_group_name }}"
|
group: "{{ neutron_system_group_name }}"
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ noauth = request_id catch_errors extensions neutronapiapp_v2_0
|
|||||||
keystone = request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0
|
keystone = request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0
|
||||||
|
|
||||||
[filter:request_id]
|
[filter:request_id]
|
||||||
paste.filter_factory = oslo.middleware:RequestId.factory
|
paste.filter_factory = oslo_middleware:RequestId.factory
|
||||||
|
|
||||||
[filter:catch_errors]
|
[filter:catch_errors]
|
||||||
paste.filter_factory = oslo.middleware:CatchErrors.factory
|
paste.filter_factory = oslo_middleware:CatchErrors.factory
|
||||||
|
|
||||||
[filter:keystonecontext]
|
[filter:keystonecontext]
|
||||||
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
||||||
|
|||||||
@@ -24,7 +24,3 @@ dnsmasq_lease_max = {{ neutron_dnsmasq_lease_max }}
|
|||||||
|
|
||||||
# Metadata
|
# Metadata
|
||||||
enable_isolated_metadata = True
|
enable_isolated_metadata = True
|
||||||
|
|
||||||
# Delete defunct namespaces
|
|
||||||
dhcp_delete_namespaces = {{ neutron_dhcp_delete_namespaces }}
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,9 @@
|
|||||||
verbose = {{ verbose }}
|
verbose = {{ verbose }}
|
||||||
debug = {{ debug }}
|
debug = {{ debug }}
|
||||||
|
|
||||||
handle_internal_only_routers = True
|
# While this option is deprecated in Liberty, if we remove it then it takes
|
||||||
|
# a default value of 'br-ex', which we do not want. We therefore leave it
|
||||||
|
# in place for now and can remove it in Mitaka.
|
||||||
external_network_bridge = {{ neutron_external_network_bridge }}
|
external_network_bridge = {{ neutron_external_network_bridge }}
|
||||||
gateway_external_network_id = {{ neutron_gateway_external_network_id }}
|
gateway_external_network_id = {{ neutron_gateway_external_network_id }}
|
||||||
|
|
||||||
@@ -36,6 +38,3 @@ send_arp_for_ha = 3
|
|||||||
|
|
||||||
# Metadata
|
# Metadata
|
||||||
enable_metadata_proxy = True
|
enable_metadata_proxy = True
|
||||||
|
|
||||||
# Delete defunct namespaces
|
|
||||||
router_delete_namespaces = {{ neutron_l3_router_delete_namespaces }}
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
verbose = {{ verbose }}
|
verbose = {{ verbose }}
|
||||||
debug = {{ debug }}
|
debug = {{ debug }}
|
||||||
fatal_deprecations = {{ neutron_fatal_deprecations }}
|
fatal_deprecations = {{ neutron_fatal_deprecations }}
|
||||||
use_syslog = False
|
|
||||||
log_file = /var/log/neutron/neutron.log
|
log_file = /var/log/neutron/neutron.log
|
||||||
|
|
||||||
{% if inventory_hostname in groups['neutron_server'] %}
|
{% if inventory_hostname in groups['neutron_server'] %}
|
||||||
@@ -69,7 +68,7 @@ nova_url = {{ nova_service_adminurl|replace('/%(tenant_id)s', '') }}
|
|||||||
|
|
||||||
## Rpc all
|
## Rpc all
|
||||||
rpc_backend = {{ neutron_rpc_backend }}
|
rpc_backend = {{ neutron_rpc_backend }}
|
||||||
rpc_thread_pool_size = {{ neutron_rpc_thread_pool_size }}
|
executor__thread_pool_size = {{ neutron_rpc_thread_pool_size }}
|
||||||
rpc_conn_pool_size = {{ neutron_rpc_conn_pool_size }}
|
rpc_conn_pool_size = {{ neutron_rpc_conn_pool_size }}
|
||||||
rpc_response_timeout = {{ neutron_rpc_response_timeout }}
|
rpc_response_timeout = {{ neutron_rpc_response_timeout }}
|
||||||
|
|
||||||
|
|||||||
32
templates/plugins/ml2/linuxbridge_agent.ini.j2
Normal file
32
templates/plugins/ml2/linuxbridge_agent.ini.j2
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
# Linux bridge agent physical interface mappings
|
||||||
|
[linux_bridge]
|
||||||
|
|
||||||
|
{% if neutron_provider_networks.network_mappings is defined %}
|
||||||
|
physical_interface_mappings = {{ neutron_provider_networks.network_mappings }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Linux bridge agent VXLAN networks
|
||||||
|
[vxlan]
|
||||||
|
|
||||||
|
{% if neutron_vxlan_enabled | bool %}
|
||||||
|
enable_vxlan = True
|
||||||
|
vxlan_group = {{ neutron_vxlan_group }}
|
||||||
|
# VXLAN local tunnel endpoint
|
||||||
|
local_ip = {{ neutron_local_ip }}
|
||||||
|
l2_population = {{ neutron_l2_population }}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
# Disable VXLAN for deployments with only flat or VLAN networks
|
||||||
|
enable_vxlan = False
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Agent
|
||||||
|
[agent]
|
||||||
|
|
||||||
|
# Security groups
|
||||||
|
[securitygroup]
|
||||||
|
firewall_driver = {{ neutron_driver_firewall }}
|
||||||
|
enable_security_group = True
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
# {{ ansible_managed }}
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
{% if inventory_hostname in groups['neutron_server'] %}
|
|
||||||
|
|
||||||
# ML2 general
|
# ML2 general
|
||||||
[ml2]
|
[ml2]
|
||||||
type_drivers = {{ neutron_ml2_drivers_type }}
|
type_drivers = {{ neutron_ml2_drivers_type }}
|
||||||
tenant_network_types = {{ neutron_provider_networks.network_types }}
|
tenant_network_types = {{ neutron_provider_networks.network_types }}
|
||||||
mechanism_drivers = {{ neutron_ml2_mechanism_drivers }}
|
mechanism_drivers = {{ neutron_ml2_mechanism_drivers }}
|
||||||
|
extension_drivers = port_security
|
||||||
path_mtu = 0
|
path_mtu = 0
|
||||||
segment_mtu = 0
|
segment_mtu = 0
|
||||||
|
|
||||||
@@ -33,53 +32,9 @@ network_vlan_ranges = {{ neutron_provider_networks.network_vlan_ranges }}
|
|||||||
vxlan_group = {{ neutron_vxlan_group }}
|
vxlan_group = {{ neutron_vxlan_group }}
|
||||||
vni_ranges = {{ neutron_provider_networks.network_vxlan_ranges }}
|
vni_ranges = {{ neutron_provider_networks.network_vxlan_ranges }}
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if inventory_hostname in groups['neutron_linuxbridge_agent'] %}
|
|
||||||
|
|
||||||
# Linux bridge agent VXLAN networks
|
|
||||||
[vxlan]
|
|
||||||
|
|
||||||
{% if neutron_vxlan_enabled | bool %}
|
|
||||||
|
|
||||||
enable_vxlan = True
|
|
||||||
vxlan_group = {{ neutron_vxlan_group }}
|
|
||||||
|
|
||||||
# VXLAN local tunnel endpoint
|
|
||||||
local_ip = {{ neutron_local_ip }}
|
|
||||||
|
|
||||||
l2_population = {{ neutron_l2_population }}
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
# Disable VXLAN for deployments with only flat or VLAN networks
|
|
||||||
enable_vxlan = False
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if neutron_provider_networks.network_mappings is defined %}
|
|
||||||
|
|
||||||
# Linux bridge agent physical interface mappings
|
|
||||||
[linux_bridge]
|
|
||||||
physical_interface_mappings = {{ neutron_provider_networks.network_mappings }}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
# Agent
|
|
||||||
[agent]
|
|
||||||
# TODO: Allow this to be the default of True once the upstream issue
|
|
||||||
# with access through floating IP's is fixed (odyssey4me re: liberty-2)
|
|
||||||
prevent_arp_spoofing = False
|
|
||||||
|
|
||||||
# L2 population
|
|
||||||
[l2pop]
|
|
||||||
agent_boot_time = 180
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
# Security groups
|
# Security groups
|
||||||
[securitygroup]
|
[securitygroup]
|
||||||
enable_security_group = True
|
enable_security_group = True
|
||||||
enable_ipset = True
|
enable_ipset = True
|
||||||
firewall_driver = {{ neutron_driver_firewall }}
|
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
{
|
{
|
||||||
"context_is_admin": "role:admin",
|
"context_is_admin": "role:admin",
|
||||||
"admin_or_owner": "rule:context_is_admin or tenant_id:%(tenant_id)s",
|
"owner": "tenant_id:%(tenant_id)s",
|
||||||
|
"admin_or_owner": "rule:context_is_admin or rule:owner",
|
||||||
"context_is_advsvc": "role:advsvc",
|
"context_is_advsvc": "role:advsvc",
|
||||||
"admin_or_network_owner": "rule:context_is_admin or tenant_id:%(network:tenant_id)s",
|
"admin_or_network_owner": "rule:context_is_admin or tenant_id:%(network:tenant_id)s",
|
||||||
|
"admin_owner_or_network_owner": "rule:admin_or_network_owner or rule:owner",
|
||||||
"admin_only": "rule:context_is_admin",
|
"admin_only": "rule:context_is_admin",
|
||||||
"regular_user": "",
|
"regular_user": "",
|
||||||
"shared": "field:networks:shared=True",
|
"shared": "field:networks:shared=True",
|
||||||
"shared_firewalls": "field:firewalls:shared=True",
|
"shared_firewalls": "field:firewalls:shared=True",
|
||||||
"shared_firewall_policies": "field:firewall_policies:shared=True",
|
"shared_firewall_policies": "field:firewall_policies:shared=True",
|
||||||
"shared_subnetpools": "field:subnetpools:shared=True",
|
"shared_subnetpools": "field:subnetpools:shared=True",
|
||||||
|
"shared_address_scopes": "field:address_scopes:shared=True",
|
||||||
"external": "field:networks:router:external=True",
|
"external": "field:networks:router:external=True",
|
||||||
"default": "rule:admin_or_owner",
|
"default": "rule:admin_or_owner",
|
||||||
|
|
||||||
@@ -23,6 +26,13 @@
|
|||||||
"update_subnetpool": "rule:admin_or_owner",
|
"update_subnetpool": "rule:admin_or_owner",
|
||||||
"delete_subnetpool": "rule:admin_or_owner",
|
"delete_subnetpool": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"create_address_scope": "",
|
||||||
|
"create_address_scope:shared": "rule:admin_only",
|
||||||
|
"get_address_scope": "rule:admin_or_owner or rule:shared_address_scopes",
|
||||||
|
"update_address_scope": "rule:admin_or_owner",
|
||||||
|
"update_address_scope:shared": "rule:admin_only",
|
||||||
|
"delete_address_scope": "rule:admin_or_owner",
|
||||||
|
|
||||||
"create_network": "",
|
"create_network": "",
|
||||||
"get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc",
|
"get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc",
|
||||||
"get_network:router:external": "rule:regular_user",
|
"get_network:router:external": "rule:regular_user",
|
||||||
@@ -46,27 +56,32 @@
|
|||||||
"update_network:router:external": "rule:admin_only",
|
"update_network:router:external": "rule:admin_only",
|
||||||
"delete_network": "rule:admin_or_owner",
|
"delete_network": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"network_device": "field:port:device_owner=~^network:",
|
||||||
"create_port": "",
|
"create_port": "",
|
||||||
|
"create_port:device_owner": "not rule:network_device or rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"create_port:mac_address": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"create_port:mac_address": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"create_port:fixed_ips": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"create_port:fixed_ips": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"create_port:port_security_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"create_port:port_security_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"create_port:binding:host_id": "rule:admin_only",
|
"create_port:binding:host_id": "rule:admin_only",
|
||||||
"create_port:binding:profile": "rule:admin_only",
|
"create_port:binding:profile": "rule:admin_only",
|
||||||
"create_port:mac_learning_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"create_port:mac_learning_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"get_port": "rule:admin_or_owner or rule:context_is_advsvc",
|
"create_port:allowed_address_pairs": "rule:admin_or_network_owner",
|
||||||
|
"get_port": "rule:admin_owner_or_network_owner or rule:context_is_advsvc",
|
||||||
"get_port:queue_id": "rule:admin_only",
|
"get_port:queue_id": "rule:admin_only",
|
||||||
"get_port:binding:vif_type": "rule:admin_only",
|
"get_port:binding:vif_type": "rule:admin_only",
|
||||||
"get_port:binding:vif_details": "rule:admin_only",
|
"get_port:binding:vif_details": "rule:admin_only",
|
||||||
"get_port:binding:host_id": "rule:admin_only",
|
"get_port:binding:host_id": "rule:admin_only",
|
||||||
"get_port:binding:profile": "rule:admin_only",
|
"get_port:binding:profile": "rule:admin_only",
|
||||||
"update_port": "rule:admin_or_owner or rule:context_is_advsvc",
|
"update_port": "rule:admin_or_owner or rule:context_is_advsvc",
|
||||||
|
"update_port:device_owner": "not rule:network_device or rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"update_port:mac_address": "rule:admin_only or rule:context_is_advsvc",
|
"update_port:mac_address": "rule:admin_only or rule:context_is_advsvc",
|
||||||
"update_port:fixed_ips": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"update_port:fixed_ips": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"update_port:port_security_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"update_port:port_security_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"update_port:binding:host_id": "rule:admin_only",
|
"update_port:binding:host_id": "rule:admin_only",
|
||||||
"update_port:binding:profile": "rule:admin_only",
|
"update_port:binding:profile": "rule:admin_only",
|
||||||
"update_port:mac_learning_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
"update_port:mac_learning_enabled": "rule:admin_or_network_owner or rule:context_is_advsvc",
|
||||||
"delete_port": "rule:admin_or_owner or rule:context_is_advsvc",
|
"update_port:allowed_address_pairs": "rule:admin_or_network_owner",
|
||||||
|
"delete_port": "rule:admin_owner_or_network_owner or rule:context_is_advsvc",
|
||||||
|
|
||||||
"get_router:ha": "rule:admin_only",
|
"get_router:ha": "rule:admin_only",
|
||||||
"create_router": "rule:regular_user",
|
"create_router": "rule:regular_user",
|
||||||
@@ -100,6 +115,9 @@
|
|||||||
"update_firewall_policy": "rule:admin_or_owner",
|
"update_firewall_policy": "rule:admin_or_owner",
|
||||||
"delete_firewall_policy": "rule:admin_or_owner",
|
"delete_firewall_policy": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"insert_rule": "rule:admin_or_owner",
|
||||||
|
"remove_rule": "rule:admin_or_owner",
|
||||||
|
|
||||||
"create_firewall_rule": "",
|
"create_firewall_rule": "",
|
||||||
"get_firewall_rule": "rule:admin_or_owner or rule:shared_firewalls",
|
"get_firewall_rule": "rule:admin_or_owner or rule:shared_firewalls",
|
||||||
"update_firewall_rule": "rule:admin_or_owner",
|
"update_firewall_rule": "rule:admin_or_owner",
|
||||||
@@ -150,5 +168,34 @@
|
|||||||
|
|
||||||
"get_service_provider": "rule:regular_user",
|
"get_service_provider": "rule:regular_user",
|
||||||
"get_lsn": "rule:admin_only",
|
"get_lsn": "rule:admin_only",
|
||||||
"create_lsn": "rule:admin_only"
|
"create_lsn": "rule:admin_only",
|
||||||
|
|
||||||
|
"create_flavor": "rule:admin_only",
|
||||||
|
"update_flavor": "rule:admin_only",
|
||||||
|
"delete_flavor": "rule:admin_only",
|
||||||
|
"get_flavors": "rule:regular_user",
|
||||||
|
"get_flavor": "rule:regular_user",
|
||||||
|
"create_service_profile": "rule:admin_only",
|
||||||
|
"update_service_profile": "rule:admin_only",
|
||||||
|
"delete_service_profile": "rule:admin_only",
|
||||||
|
"get_service_profiles": "rule:admin_only",
|
||||||
|
"get_service_profile": "rule:admin_only",
|
||||||
|
|
||||||
|
"get_policy": "rule:regular_user",
|
||||||
|
"create_policy": "rule:admin_only",
|
||||||
|
"update_policy": "rule:admin_only",
|
||||||
|
"delete_policy": "rule:admin_only",
|
||||||
|
"get_policy_bandwidth_limit_rule": "rule:regular_user",
|
||||||
|
"create_policy_bandwidth_limit_rule": "rule:admin_only",
|
||||||
|
"delete_policy_bandwidth_limit_rule": "rule:admin_only",
|
||||||
|
"update_policy_bandwidth_limit_rule": "rule:admin_only",
|
||||||
|
"get_rule_type": "rule:regular_user",
|
||||||
|
|
||||||
|
"restrict_wildcard": "(not field:rbac_policy:target_tenant=*) or rule:admin_only",
|
||||||
|
"create_rbac_policy": "",
|
||||||
|
"create_rbac_policy:target_tenant": "rule:restrict_wildcard",
|
||||||
|
"update_rbac_policy": "rule:admin_or_owner",
|
||||||
|
"update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner",
|
||||||
|
"get_rbac_policy": "rule:admin_or_owner",
|
||||||
|
"delete_rbac_policy": "rule:admin_or_owner"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
# neutron-rootwrap command filters for nodes on which neutron is
|
|
||||||
# expected to control network
|
|
||||||
#
|
|
||||||
# This file should be owned by (and only-writeable by) the root user
|
|
||||||
|
|
||||||
# format seems to be
|
|
||||||
# cmd-name: filter-name, raw-command, user, args
|
|
||||||
|
|
||||||
[Filters]
|
|
||||||
|
|
||||||
# neutron/agent/linux/ebtables_driver.py
|
|
||||||
ebtables: CommandFilter, ebtables, root
|
|
||||||
ebtablesEnv: EnvFilter, ebtables, root, EBTABLES_ATOMIC_FILE=
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# neutron-rootwrap command filters for nodes on which neutron is
|
|
||||||
# expected to control network
|
|
||||||
#
|
|
||||||
# This file should be owned by (and only-writeable by) the root user
|
|
||||||
|
|
||||||
# format seems to be
|
|
||||||
# cmd-name: filter-name, raw-command, user, args
|
|
||||||
|
|
||||||
[Filters]
|
|
||||||
|
|
||||||
# ryu-agent
|
|
||||||
# unclear whether both variants are necessary, but I'm transliterating
|
|
||||||
# from the old mechanism
|
|
||||||
|
|
||||||
# neutron/plugins/ryu/agent/ryu_neutron_agent.py:
|
|
||||||
# "ovs-vsctl", "--timeout=2", ...
|
|
||||||
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
|
||||||
|
|
||||||
# neutron/plugins/ryu/agent/ryu_neutron_agent.py:
|
|
||||||
# "xe", "vif-param-get", ...
|
|
||||||
xe: CommandFilter, xe, root
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# neutron-rootwrap command filters for nodes on which neutron is
|
|
||||||
# expected to control network
|
|
||||||
#
|
|
||||||
# This file should be owned by (and only-writeable by) the root user
|
|
||||||
|
|
||||||
# format seems to be
|
|
||||||
# cmd-name: filter-name, raw-command, user, args
|
|
||||||
|
|
||||||
[Filters]
|
|
||||||
|
|
||||||
ip: IpFilter, ip, root
|
|
||||||
ip_exec: IpNetnsExecFilter, ip, root
|
|
||||||
openswan: CommandFilter, ipsec, root
|
|
||||||
Reference in New Issue
Block a user