Move static defaults to vars

Defaults used to contain a lot of variables for internal
purposes, not to be defined by the deployers or our CI
systems.

This doesn't respect the idea of defaults/main.yml and
vars/main.yml explained in the following link [1].

Because this role's variables were in a non-organized
order, a general cleanup was necessary.

The following structure was taken:
- Verbosity Options (only in defaults)
- Packages Options
- Python code details
- Generic neutron config
- Tunable Overrides (only in defaults, sorted alphabetically)
- Quotas
- DB (Galera) integration
- RPC (Rabbitmq) integration
- Identity (Keystone) integration
- Telemetry integration
- Other external roles integrations like Designate
- Plugins Loading
- Plugin x Configuration (ML2, L3, DHCP, Metadata, ...)
- Internals: neutron_services mappings
- Internals: driver mappings
- Internals: convenience vars for py_pkgs

[1]: https://docs.openstack.org/developer/openstack-ansible/
     developer-docs/contribute.html#ansible-style-guide

Change-Id: I431ec3dd834a5624fb1479cc18ece045198431a1
This commit is contained in:
Jean-Philippe Evrard 2017-05-09 11:23:26 +00:00
parent 6dc4ecc354
commit 3ed3dfeb16
2 changed files with 685 additions and 565 deletions

View File

@ -13,467 +13,140 @@
# See the License for the specific language governing permissions and
# limitations under the License.
## Verbosity Options
###
### Verbosity Options
###
debug: False
# Set the package install state for distribution and pip packages
###
### Packages Options
###
# Set the package install state for distribution
# Options are 'present' and 'latest'
neutron_package_state: "latest"
###
### Python code details
###
# Set the package install state for pip_package
# Options are 'present' and 'latest'
neutron_pip_package_state: "latest"
# Source git repo/branch settings
neutron_git_repo: https://git.openstack.org/openstack/neutron
neutron_git_install_branch: master
neutron_fwaas_git_repo: https://git.openstack.org/openstack/neutron-fwaas
neutron_fwaas_git_install_branch: master
neutron_lbaas_git_repo: https://git.openstack.org/openstack/neutron-lbaas
neutron_lbaas_git_install_branch: master
neutron_vpnaas_git_repo: https://git.openstack.org/openstack/neutron-vpnaas
neutron_vpnaas_git_install_branch: master
neutron_dynamic_routing_git_repo: https://git.openstack.org/openstack/neutron-dynamic-routing
neutron_dynamic_routing_git_install_branch: master
calico_git_repo: https://github.com/projectcalico/felix
calico_git_install_branch: master
networking_calico_git_repo: https://git.openstack.org/openstack/networking-calico
networking_calico_git_install_branch: master
dragonflow_git_repo: https://git.openstack.org/openstack/dragonflow
dragonflow_git_install_branch: master
# Developer mode
neutron_developer_mode: false
neutron_developer_constraints:
- "git+{{ neutron_git_repo }}@{{ neutron_git_install_branch }}#egg=neutron"
- "git+{{ neutron_fwaas_git_repo }}@{{ neutron_fwaas_git_install_branch }}#egg=neutron-fwaas"
- "git+{{ neutron_lbaas_git_repo }}@{{ neutron_lbaas_git_install_branch }}#egg=neutron-lbaas"
- "git+{{ neutron_vpnaas_git_repo }}@{{ neutron_vpnaas_git_install_branch }}#egg=neutron-vpnaas"
- "git+{{ neutron_dynamic_routing_git_repo }}@{{ neutron_dynamic_routing_git_install_branch }}#egg=neutron-dynamic-routing"
- "git+{{ calico_git_repo }}@{{ calico_git_install_branch }}#egg=felix"
- "git+{{ networking_calico_git_repo }}@{{ networking_calico_git_install_branch }}#egg=networking-calico"
- "git+{{ dragonflow_git_repo }}@{{ dragonflow_git_install_branch }}#egg=dragonflow"
# Name of the virtual env to deploy into
neutron_venv_tag: untagged
neutron_bin: "/openstack/venvs/neutron-{{ neutron_venv_tag }}/bin"
# venv_download, even when true, will use the fallback method of building the
# venv from scratch if the venv download fails.
neutron_venv_download: "{{ not neutron_developer_mode | bool }}"
neutron_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/neutron.tgz
# Set the lib dir path to that of the local python path where neutron is installed.
neutron_lib_dir: "{{ neutron_bin | dirname }}/lib/python2.7/site-packages/"
# Set the Neutron configuration path
neutron_conf_dir: /etc/neutron
neutron_lock_path: "/var/lock/neutron"
# Enable/Disable designate
neutron_designate_enabled: False
# Notifications topic for designate
neutron_notifications_designate: notifications_designate
# Enable/Disable Ceilometer
neutron_ceilometer_enabled: False
###
### Generic Neutron Config
###
# Fatal Deprecations
neutron_fatal_deprecations: False
## neutron User / Group
neutron_system_user_name: neutron
neutron_system_group_name: neutron
neutron_system_comment: neutron system user
neutron_system_shell: /bin/false
neutron_system_home_folder: "/var/lib/{{ neutron_system_user_name }}"
# If ``neutron_api_workers`` is unset the system will use half the number of available VCPUs to
# compute the number of api workers to use with a default capping value of 16.
# neutron_api_workers: 16
## DB
neutron_galera_user: neutron
neutron_galera_database: neutron
neutron_db_config: "{{ neutron_conf_dir }}/neutron.conf"
neutron_db_plugin: "{{ neutron_conf_dir }}/{{ neutron_plugins[neutron_plugin_type].plugin_ini }}"
neutron_db_max_overflow: 20
neutron_db_pool_size: 120
neutron_db_pool_timeout: 30
## Cap the maximun number of threads / workers when a user value is unspecified.
neutron_api_threads_max: 16
neutron_api_threads: "{{ [[ansible_processor_vcpus|default(2) // 2, 1] | max, neutron_api_threads_max] | min }}"
## RabbitMQ info
neutron_agent_down_time: 120
neutron_agent_polling_interval: 5
neutron_report_interval: "{{ neutron_agent_down_time | int / 2 | int }}"
## Configuration for RPC communications
neutron_rabbitmq_userid: neutron
neutron_rabbitmq_vhost: /neutron
neutron_rabbitmq_port: 5672
neutron_rabbitmq_servers: 127.0.0.1
neutron_rabbitmq_use_ssl: False
neutron_external_network_bridge: ""
## Configuration for notifications communication, i.e. [oslo_messaging_notifications]
neutron_rabbitmq_telemetry_userid: "{{ neutron_rabbitmq_userid }}"
neutron_rabbitmq_telemetry_password: "{{ neutron_rabbitmq_password }}"
neutron_rabbitmq_telemetry_vhost: "{{ neutron_rabbitmq_vhost }}"
neutron_rabbitmq_telemetry_port: "{{ neutron_rabbitmq_port }}"
neutron_rabbitmq_telemetry_servers: "{{ neutron_rabbitmq_servers }}"
neutron_rabbitmq_telemetry_use_ssl: "{{ neutron_rabbitmq_use_ssl }}"
neutron_dns_domain: openstacklocal
## Plugins
neutron_plugin_core: "{{ neutron_plugins[neutron_plugin_type].plugin_core }}"
# Other plugins can be added to the system by simply extending the list `neutron_plugin_base`.
# neutron_plugin_base:
# - router
# - firewall
# - lbaas
# - neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
# - vpnaas
# - metering
# - qos
# - dns
# Deprecated: instead of triggering lbaas through neutron_plugin_core it will be triggered when Octavia is installed, neutron_lbaas_namespace var is set to True, or both:
# - neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2 or lbaasv2
neutron_lbaas_namespace: "{% if 'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2' in neutron_plugin_base %}True{% else %}False{% endif %}"
neutron_lbaas_octavia: False
neutron_lbaasv2: "{% if (neutron_lbaas_namespace|bool) or (neutron_lbaas_octavia | bool) %}True{% else %}False{% endif %}"
# If ``neutron_num_sync_threads`` is unset, the system will use the value of
# neutron_api_threads in templates/dhcp_agent.ini.j2 for num_sync_threads.
# neutron_num_sync_threads: 4
neutron_plugin_base:
- router
- metering
###
### Tunable Overrides (Sorted alphabetically)
###
# Neutron Plugins
# The neutron core plugin (ML2) is defined with neutron_plug in_type,
# you can not load multiple ML2 plugins as core.
# Additional ML2 plugins can be loaded with neutron_plugin_types (as list)
neutron_plugin_type: 'ml2.lxb'
neutron_plugin_types: []
neutron_ml2_mechanism_drivers: >-
{%- set _var = [] -%}
{%- for plugin in [neutron_plugin_type]|union(neutron_plugin_types) -%}
{%- if _var.append(neutron_plugins[plugin].mechanisms) -%}{%- endif -%}
{%- endfor -%}
{%- if neutron_l2_population | bool -%}
{%- if _var.append('l2population') -%}{%- endif -%}
{%- endif -%}
{{ _var | join(',') }}
neutron_plugins:
ml2.lxb:
driver_firewall: iptables
driver_interface: linuxbridge
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "linuxbridge"
l3_agent_mode: "legacy"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.ovs:
driver_firewall: iptables_hybrid
driver_interface: openvswitch
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "openvswitch"
l3_agent_mode: "legacy"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.ovs.dvr:
driver_firewall: iptables_hybrid
driver_interface: openvswitch
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "openvswitch"
l3_agent_mode: "{% if 'nova_compute' in group_names %}dvr{% else %}dvr_snat{% endif %}"
router_distributed: True
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.calico:
drivers_type: "flat, local"
mechanisms: "calico"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.dragonflow:
plugin_core: neutron.plugins.ml2.plugin.Ml2Plugin
plugin_ini: plugins/ml2/ml2_conf.ini
drivers_type: "{{ neutron_ml2_drivers_type }}"
mechanisms: "df"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
l3_agent_mode: "legacy"
driver_interface: "openvswitch"
plumgrid:
plugin_conf_ini_overrides: "{{ neutron_plumgrid_conf_ini_overrides }}"
plugin_core: networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2
plugin_ini: plugins/plumgrid/plumgrid.ini
nuage:
plugin_core: neutron.plugins.nuage.plugin.NuagePlugin
plugin_ini: plugins/nuage/nuage.ini
plugin_conf_ini_overrides: "{{ neutron_nuage_conf_ini_overrides }}"
ml2.sriov:
driver_types: "{{ neutron_ml2_drivers_type }}"
mechanisms: "sriovnicswitch"
plugin_ini: plugins/ml2/sriov_nic_agent.ini
plugin_conf_ini_overrides: "{{ neutron_sriov_nic_agent_ini_overrides }}"
neutron_dhcp_agent_init_overrides: {}
neutron_openvswitch_agent_init_overrides: {}
neutron_linuxbridge_agent_init_overrides: {}
neutron_metadata_agent_init_overrides: {}
neutron_metering_agent_init_overrides: {}
neutron_l3_agent_init_overrides: {}
neutron_lbaas_agent_init_overrides: {}
# These variables facilitate adding config file entries
# for anything supported by the service. See the section
# 'Overriding OpenStack configuration defaults' in the
# 'Advanced configuration' appendix of the Deploy Guide.
neutron_api_paste_ini_overrides: {}
neutron_bgp_dragent_ini_overrides: {}
neutron_bgp_dragent_init_overrides: {}
neutron_vpn_agent_init_overrides: {}
neutron_server_init_overrides: {}
neutron_calico_felix_init_overrides: {}
neutron_calico_dhcp_agent_ini_overrides: {}
neutron_calico_dhcp_agent_init_overrides: {}
neutron_sriov_nic_agent_init_overrides: {}
neutron_calico_felix_ini_overrides: {}
neutron_calico_felix_init_overrides: {}
neutron_dhcp_agent_ini_overrides: {}
neutron_dhcp_agent_init_overrides: {}
neutron_dnsmasq_neutron_conf_overrides: {}
neutron_dragonflow_controller_agent_init_overrides: {}
neutron_dragonflow_ini_overrides: {}
neutron_dragonflow_l3_agent_init_overrides: {}
neutron_dragonflow_pubsub_agent_init_overrides: {}
neutron_l3_agent_ini_overrides: {}
neutron_l3_agent_init_overrides: {}
neutron_lbaas_agent_ini_overrides: {}
neutron_lbaas_agent_init_overrides: {}
neutron_linuxbridge_agent_ini_overrides: {}
neutron_linuxbridge_agent_init_overrides: {}
neutron_metadata_agent_ini_overrides: {}
neutron_metadata_agent_init_overrides: {}
neutron_metering_agent_ini_overrides: {}
neutron_metering_agent_init_overrides: {}
neutron_ml2_conf_ini_overrides: {}
neutron_neutron_conf_overrides: {}
neutron_nuage_conf_ini_overrides: {}
neutron_openvswitch_agent_ini_overrides: {}
neutron_openvswitch_agent_init_overrides: {}
neutron_plumgrid_conf_ini_overrides: {}
neutron_plumlib_ini_overrides: {}
# Provide a list of access controls to update the default policy.json with.
# These changes will be merged
# with the access controls in the default policy.json. E.g.
#neutron_policy_overrides:
# "create_subnet": "rule:admin_or_network_owner"
# "get_subnet": "rule:admin_or_owner or rule:shared"
neutron_policy_overrides: {}
neutron_rootwrap_conf_overrides: {}
neutron_server_init_overrides: {}
neutron_sriov_nic_agent_ini_overrides: {}
neutron_sriov_nic_agent_init_overrides: {}
neutron_vpn_agent_init_overrides: {}
neutron_vpnaas_agent_ini_overrides: {}
neutron_services:
neutron-dhcp-agent:
group: neutron_dhcp_agent
service_name: neutron-dhcp-agent
service_en: "{{ neutron_dhcp | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: dhcp_agent.ini
service_rootwrap: rootwrap.d/dhcp.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dhcp_agent.ini --log-file=/var/log/neutron/neutron-dhcp-agent.log"
config_overrides: "{{ neutron_dhcp_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dhcp_agent_init_overrides }}"
neutron-openvswitch-agent:
group: neutron_openvswitch_agent
service_name: neutron-openvswitch-agent
service_en: "{{ 'ml2.ovs' in neutron_plugin_type }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/openvswitch_agent.ini
service_rootwrap: rootwrap.d/openvswitch-plugin.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/openvswitch_agent.ini --log-file=/var/log/neutron/neutron-openvswitch-agent.log"
config_overrides: "{{ neutron_openvswitch_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_openvswitch_agent_init_overrides }}"
neutron-linuxbridge-agent:
group: neutron_linuxbridge_agent
service_name: neutron-linuxbridge-agent
service_en: "{{ neutron_plugin_type == 'ml2.lxb' }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/linuxbridge_agent.ini
service_rootwrap: rootwrap.d/linuxbridge-plugin.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/linuxbridge_agent.ini --log-file=/var/log/neutron/neutron-linuxbridge-agent.log"
config_overrides: "{{ neutron_linuxbridge_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_linuxbridge_agent_init_overrides }}"
neutron-metadata-agent:
group: neutron_metadata_agent
service_name: neutron-metadata-agent
service_en: "{{ neutron_metadata | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: metadata_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/metadata_agent.ini --log-file=/var/log/neutron/neutron-metadata-agent.log"
config_overrides: "{{ neutron_metadata_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_metadata_agent_init_overrides }}"
neutron-metering-agent:
group: neutron_metering_agent
service_name: neutron-metering-agent
service_en: "{{ neutron_metering | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: metering_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/metering_agent.ini --log-file=/var/log/neutron/neutron-metering-agent.log"
config_overrides: "{{ neutron_metering_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_metering_agent_init_overrides }}"
# Other agents will use neutron_plugins[neutron_plugin_type].driver_interface
# for the interface_driver, but that uses a stevedore alias. Metering agent
# hasn't been updated to use stevedore alises so that fails. To work around
# the problem until metering agent is updated, we should use the full
# module.class path to the interface driver.
# TODO(hughsaunders): switch back to stevedore when
# https://review.openstack.org/#/c/419881/ merges and is backported.
interface_driver: neutron.agent.linux.interface.BridgeInterfaceDriver
neutron-l3-agent:
group: neutron_l3_agent
service_name: neutron-l3-agent
service_en: "{{ neutron_l3 | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: l3_agent.ini
service_rootwrap: rootwrap.d/l3.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/l3_agent.ini --log-file=/var/log/neutron/neutron-l3-agent.log"
config_overrides: "{{ neutron_l3_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_l3_agent_init_overrides }}"
neutron-lbaasv2-agent:
group: neutron_lbaas_agent
service_name: neutron-lbaasv2-agent
service_en: "{{ neutron_lbaas_namespace | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: lbaas_agent.ini
service_rootwrap: rootwrap.d/lbaas-haproxy.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/lbaas_agent.ini --log-file=/var/log/neutron/neutron-lbaasv2-agent.log"
config_overrides: "{{ neutron_lbaas_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_lbaas_agent_init_overrides }}"
neutron-bgp-dragent:
group: neutron_bgp_dragent
service_name: neutron-bgp-dragent
service_en: "{{ neutron_bgp | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: bgp_dragent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/bgp_dragent.ini --log-file=/var/log/neutron/neutron-bgp-dragent.log"
config_overrides: "{{ neutron_bgp_dragent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_bgp_dragent_init_overrides }}"
neutron-vpnaas-agent:
group: neutron_l3_agent
service_name: neutron-vpn-agent
service_en: "{{ neutron_vpnaas | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: vpnaas_agent.ini
service_rootwrap: rootwrap.d/vpnaas.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/vpnaas_agent.ini --log-file=/var/log/neutron/neutron-vpn-agent.log"
config_overrides: "{{ neutron_vpnaas_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_vpn_agent_init_overrides }}"
neutron-server:
group: neutron_server
service_name: neutron-server
service_en: True
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/{{ neutron_plugins[neutron_plugin_type].plugin_ini }} --log-file=/var/log/neutron/neutron-server.log {% if neutron_plugin_type == 'ml2.dragonflow' %}--config-file {{ neutron_conf_dir }}/dragonflow.ini{% endif %}"
init_config_overrides: "{{ neutron_server_init_overrides }}"
calico-felix:
group: neutron_calico_dhcp_agent
system_user: root
system_group: root
service_name: calico-felix
service_en: "{{ neutron_plugin_type == 'ml2.calico' }}"
service_conf_path: /etc/calico
service_conf: felix.cfg
config_options: --config-file /etc/calico/felix.cfg
config_overrides: "{{ neutron_calico_felix_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_calico_felix_init_overrides }}"
calico-dhcp-agent:
group: neutron_calico_dhcp_agent
system_user: root
system_group: root
service_name: calico-dhcp-agent
service_en: "{{ neutron_plugin_type == 'ml2.calico' }}"
service_rootwrap: rootwrap.d/dhcp.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf"
config_overrides: "{{ neutron_calico_dhcp_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_calico_dhcp_agent_init_overrides }}"
neutron-sriov-nic-agent:
group: neutron_sriov_nic_agent
service_name: neutron-sriov-nic-agent
service_en: "{{ 'ml2.sriov' in neutron_plugin_types }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/sriov_nic_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/sriov_nic_agent.ini --log-file=/var/log/neutron/neutron-sriov-nic-agent.log"
config_overrides: "{{ neutron_sriov_nic_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_sriov_nic_agent_init_overrides }}"
dragonflow-controller-agent:
group: dragonflow_controller_agent
system_user: root
system_group: root
service_name: df-local-controller
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' }}"
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dragonflow.ini --log-file=/var/log/dragonflow/df-local-controller.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_controller_agent_init_overrides }}"
dragonflow-l3-agent:
group: dragonflow_l3_agent
system_user: root
system_group: root
service_name: df-l3-agent
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' and neutron_l3 | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: l3_agent.ini
service_rootwrap: rootwrap.d/l3.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/l3_agent.ini --log-file=/var/log/dragonflow/df-l3-agent.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_l3_agent_init_overrides }}"
dragonflow-pubsub-agent:
group: dragonflow_pubsub_agent
service_name: df-publisher-service
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' }}"
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dragonflow.ini --log-file=/var/log/dragonflow/df-publisher-service.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_pubsub_agent_init_overrides }}"
###
### Quotas
###
## Neutron DHCP Agent
neutron_dhcp: "{% if neutron_plugin_type.split('.')[0] == 'ml2' %}True{% else %}False{% endif %}"
## Neutron Metadata Agent
neutron_metadata: "{% if neutron_plugin_type.split('.')[0] == 'ml2' %}True{% else %}False{% endif %}"
## Neutron LBaaS
# See documentation section titled "Configuring the Network Load Balancing
# Service (Optional)" for more details.
# This complex logic activates either Namespace or Octavia or both or none; if
# Octavia is included it will be the default
neutron_lbaasv2_plugin_drivers:
- "{% if neutron_lbaas_namespace | bool %}LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver{% else %}none{% endif %}"
- "{% if neutron_lbaas_octavia | bool %}LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver{% else %}none{% endif %}"
neutron_lbaasv2_service_provider: "{{ neutron_lbaasv2_plugin_drivers | reject('equalto','none') | join(',') }}{% if neutron_lbaasv2 %}:default{% endif %}"
neutron_lbaasv2_device_driver: neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
neutron_octavia_request_poll_timeout: 100
## Neutron L3
## Please add 'router' to the neutron_plugin_base list
#TODO(odyssey4me): Remove the class path from this conditional in the Newton cycle
# Should the neutron-l3-agent service should be enabled on the host
neutron_l3: "{% if 'router' in neutron_plugin_base or 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin' in neutron_plugin_base or 'df-l3' in neutron_plugin_base %}True{% else %}False{% endif %}"
# Set this option to "true" to enable legacy neutron L3HA tool support
# TODO(cloudnull): Remove this in the Ocata cycle
neutron_legacy_ha_tool_enabled: false
## Neutron Metering
# Please add 'metering' to the neutron_plugin_base list
#TODO(odyssey4me): Remove the class path from this conditional in the Newton cycle
neutron_metering: "{% if 'metering' in neutron_plugin_base or 'neutron.services.metering.metering_plugin.MeteringPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
## Neutron FWaaS
# Please add the 'firewall' to the neutron_plugin_base list
neutron_fwaas: "{% if 'firewall' in neutron_plugin_base %}True{% else %}False{% endif %}"
## Neutron VPNaaS
# Please add the 'vpnaas' to the neutron_plugin_base list
neutron_vpnaas: "{% if 'vpnaas' in neutron_plugin_base %}True{% else %}False{% endif %}"
## Neutron Dynamic Routing Agent's BGP plugin
# To enable the BGP plugin, add the following item to the neutron_plugin_base list:
# neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
#
# NOTE(matias): BgpPlugin doesn't have entry points and the full classpath
# is required.
neutron_bgp: "{% if 'neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
neutron_bgp_speaker_driver: neutron_dynamic_routing.services.bgp.agent.driver.ryu.driver.RyuBgpDriver
neutron_bgp_router_id: "{{ neutron_local_ip }}"
## Drivers
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
neutron_driver_loadbalancer_pool_scheduler: neutron_lbaas.services.loadbalancer.agent_scheduler.ChanceScheduler
neutron_driver_metering: neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver
neutron_driver_dhcp: neutron.agent.linux.dhcp.Dnsmasq
neutron_driver_quota: neutron.db.quota.driver.DbQuotaDriver
## Quotas
neutron_default_quota: -1
neutron_quota_floatingip: 50
neutron_quota_health_monitor: -1
@ -489,22 +162,35 @@ neutron_quota_security_group_rule: 100
neutron_quota_subnet: 10
neutron_quota_vip: 10
## General Neutron configuration
# If ``neutron_api_workers`` is unset the system will use half the number of available VCPUs to
# compute the number of api workers to use with a default capping value of 16.
# neutron_api_workers: 16
###
### DB (Galera) integration
###
# If ``neutron_metadata_workers`` is unset the system will use half the number of available VCPUs to
# compute the number of api workers to use with a default capping value of 16.
# neutron_metadata_workers: 16
neutron_galera_user: neutron
neutron_galera_database: neutron
neutron_db_max_overflow: 20
neutron_db_pool_size: 120
neutron_db_pool_timeout: 30
## Cap the maximun number of threads / workers when a user value is unspecified.
neutron_api_threads_max: 16
neutron_api_threads: "{{ [[ansible_processor_vcpus|default(2) // 2, 1] | max, neutron_api_threads_max] | min }}"
###
### RPC (RabbitMQ) integration
###
neutron_metadata_backlog: 4096
neutron_rpc_backend: rabbit
neutron_rabbitmq_userid: neutron
neutron_rabbitmq_vhost: /neutron
neutron_rabbitmq_port: 5672
neutron_rabbitmq_servers: 127.0.0.1
neutron_rabbitmq_use_ssl: False
neutron_rpc_thread_pool_size: 64
neutron_rpc_conn_pool_size: 30
neutron_rpc_response_timeout: 60
neutron_rpc_workers: 1
###
### Identity (Keystone) integration
###
## Auth
neutron_service_project_name: service
neutron_service_project_domain_id: default
neutron_service_user_domain_id: default
@ -525,46 +211,78 @@ neutron_service_adminurl: "{{ neutron_service_adminuri }}"
neutron_service_internaluri: "{{ neutron_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ neutron_service_port }}"
neutron_service_internalurl: "{{ neutron_service_internaluri }}"
neutron_service_region: RegionOne
## Keystone authentication middleware
neutron_keystone_auth_plugin: "{{ neutron_keystone_auth_type }}"
neutron_keystone_auth_type: password
neutron_service_in_ldap: false
## Agent
neutron_external_network_bridge: ""
neutron_gateway_external_network_id: ""
###
### Telemetry integration
###
neutron_agent_down_time: 120
neutron_agent_polling_interval: 5
neutron_report_interval: "{{ neutron_agent_down_time | int / 2 | int }}"
neutron_ceilometer_enabled: False
# L3HA configuration options.
neutron_ha_vrrp_auth_type: PASS
neutron_l3_ha_net_cidr: 169.254.192.0/18
# Configuration for notifications communication, i.e. [oslo_messaging_notifications]
neutron_rabbitmq_telemetry_userid: "{{ neutron_rabbitmq_userid }}"
neutron_rabbitmq_telemetry_password: "{{ neutron_rabbitmq_password }}"
neutron_rabbitmq_telemetry_vhost: "{{ neutron_rabbitmq_vhost }}"
neutron_rabbitmq_telemetry_port: "{{ neutron_rabbitmq_port }}"
neutron_rabbitmq_telemetry_servers: "{{ neutron_rabbitmq_servers }}"
neutron_rabbitmq_telemetry_use_ssl: "{{ neutron_rabbitmq_use_ssl }}"
# DHCP AGENT CONFIG
neutron_dhcp_config:
log-facility: "/var/log/neutron/neutron-dnsmasq.log"
###
### Designate integration
###
_neutron_non_tunnel_types:
- flat
- vlan
- local
neutron_designate_enabled: False
# Notifications topic for designate
neutron_notifications_designate: notifications_designate
###
### Plugins Loading
###
# Other plugins can be added to the system by simply extending the list `neutron_plugin_base`.
# neutron_plugin_base:
# - router
# - firewall
# - lbaas
# - neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
# - vpnaas
# - metering
# - qos
# - dns
neutron_plugin_base:
- router
- metering
###
### ML2 Plugin Configuration
###
# The neutron core plugin (ML2) is defined with neutron_plugin_type,
# you can not load multiple ML2 plugins as core.
neutron_plugin_type: 'ml2.lxb'
# Additional ML2 plugins can be loaded with neutron_plugin_types (as list)
neutron_plugin_types: []
# ml2 network type drivers to load
neutron_ml2_drivers_type: "flat,vlan,vxlan,local"
# Tunnel network types used by the OVS agent
neutron_tunnel_types: "{{ neutron_ml2_drivers_type.split(',') | difference(_neutron_non_tunnel_types) | join(',') }}"
# Enable or disable L2 Population.
neutron_l2_population: "False"
neutron_vxlan_enabled: true
## The neutron multicast group address. This should be set as a host variable if used.
## This defaults to the multicast address "239.1.1.1"
# neutron_vxlan_group: 239.1.1.100
neutron_vxlan_group: "239.1.1.1"
neutron_sriov_excluded_devices: ""
# neutron_local_ip is used for the VXLAN local tunnel endpoint
neutron_local_ip: 127.0.0.1
## Set this variable to configure the provider networks that will be available
## When setting up networking in things like the ml2_conf.ini file. Normally
## this will be defined as a host variable used within neutron as network configuration
@ -577,41 +295,38 @@ neutron_vxlan_group: "239.1.1.1"
# network_vxlan_ranges: "1:1000"
# network_sriov_mappings: "vlan:p4p1"
neutron_vxlan_enabled: true
###
### L3 Agent Plugin Configuration
###
neutron_sriov_excluded_devices: ""
neutron_gateway_external_network_id: ""
# Set this option to "true" to enable legacy neutron L3HA tool support
# TODO(cloudnull): Remove this in the Ocata cycle
neutron_legacy_ha_tool_enabled: false
# L3HA configuration options
neutron_ha_vrrp_auth_type: PASS
neutron_l3_ha_net_cidr: 169.254.192.0/18
###
### DHCP Agent Plugin Configuration
###
neutron_dns_domain: openstacklocal
# Comma-separated list of DNS servers which will be used by dnsmasq as forwarders.
neutron_dnsmasq_dns_servers: ""
# Limit number of leases to prevent a denial-of-service.
neutron_dnsmasq_lease_max: 16777216
# If ``neutron_num_sync_threads`` is unset, the system will use the value of
# neutron_api_threads in templates/dhcp_agent.ini.j2 for num_sync_threads.
# neutron_num_sync_threads: 4
## RPC
neutron_rpc_backend: rabbit
neutron_rpc_thread_pool_size: 64
neutron_rpc_conn_pool_size: 30
neutron_rpc_response_timeout: 60
neutron_rpc_workers: 1
###
### Metadata Agent Plugin Configuration
###
neutron_service_in_ldap: false
## Policy vars
# Provide a list of access controls to update the default policy.json with. These changes will be merged
# with the access controls in the default policy.json. E.g.
#neutron_policy_overrides:
# "create_subnet": "rule:admin_or_network_owner"
# "get_subnet": "rule:admin_or_owner or rule:shared"
# neutron_local_ip is used for the VXLAN local tunnel endpoint
neutron_local_ip: 127.0.0.1
# neutron_management_ip is used to configure the location (IP) of the
# neutron-server
# Currently only used in Dragonflow
neutron_management_ip: 127.0.0.1
# If ``neutron_metadata_workers`` is unset the system will use half the number of available VCPUs to
# compute the number of api workers to use with a default capping value of 16.
# neutron_metadata_workers: 16
neutron_metadata_backlog: 4096
# When running in an AIO, we need to implement an iptables rule in any
# neutron_agent containers to that ensure instances can communicate with
@ -620,14 +335,25 @@ neutron_management_ip: 127.0.0.1
# metadata requests, and this results in the checksums being incorrect.
neutron_metadata_checksum_fix: False
#Dragonflow configuration
###
### LBaaS Configuration
###
# See documentation section titled "Configuring the Network Load Balancing
# Service (Optional)" for more details.
neutron_octavia_request_poll_timeout: 100
###
### Dragonflow Configuration
###
# neutron_management_ip is used to configure the location (IP) of the
# neutron-server
neutron_management_ip: 127.0.0.1
# Database specific configuration
dragonflow_remote_db_ip: 127.0.0.1 # etcd has local proxy installed
dragonflow_remote_db_port: 4001
dragonflow_nb_db_class: etcd_nb_db_driver
dragonflow_pub_sub_driver: zmq_pubsub_driver
dragonflow_pub_sub_multiproc_driver: zmq_pubsub_multiproc_driver
dragonflow_pub_sub_multiproc_enabled: "{{ (dragonflow_pub_sub_multiproc_driver | default('', True)) | length > 0 }}"
dragonflow_port_status_notifier:
dragonflow_apps:
- l2_app.L2App
@ -640,81 +366,3 @@ dragonflow_ex_peer_patch_port: patch-int
dragonflow_int_peer_patch_port: patch-ex
dragonflow_external_network_bridge: br-ex
dragonflow_publisher_bind_address: "*"
# neutron packages that must be installed before anything else
neutron_requires_pip_packages:
- virtualenv
- virtualenv-tools
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
- httplib2
neutron_pip_packages:
- configobj
- cliff
- keystonemiddleware
- PyMySQL
- neutron
- pycrypto
- python-glanceclient
- python-keystoneclient
- python-memcached
- python-neutronclient
- python-novaclient
- repoze.lru
neutron_optional_bgp_pip_packages:
- neutron_dynamic_routing
neutron_optional_calico_pip_packages:
- felix
- networking-calico
- python-etcd
neutron_optional_fwaas_pip_packages:
- neutron_fwaas
neutron_optional_lbaas_pip_packages:
- neutron_lbaas
neutron_optional_vpnaas_pip_packages:
- neutron_vpnaas
neutron_optional_dragonflow_pip_packages:
- dragonflow
- python-etcd
neutron_proprietary_nuage_pip_packages:
- nuage-openstack-neutron
- nuage-openstack-neutronclient
- nuagenetlib
# This variable is used by the repo_build process to determine
# which host group to check for members of before building the
# pip packages required by this role. The value is picked up
# by the py_pkgs lookup.
neutron_role_project_group: neutron_all
## Tunable overrides
neutron_neutron_conf_overrides: {}
neutron_ml2_conf_ini_overrides: {}
neutron_plumgrid_conf_ini_overrides: {}
neutron_plumlib_ini_overrides: {}
neutron_nuage_conf_ini_overrides: {}
neutron_dhcp_agent_ini_overrides: {}
neutron_api_paste_ini_overrides: {}
neutron_rootwrap_conf_overrides: {}
neutron_policy_overrides: {}
neutron_dnsmasq_neutron_conf_overrides: {}
neutron_l3_agent_ini_overrides: {}
neutron_metadata_agent_ini_overrides: {}
neutron_metering_agent_ini_overrides: {}
neutron_linuxbridge_agent_ini_overrides: {}
neutron_lbaas_agent_ini_overrides: {}
neutron_vpnaas_agent_ini_overrides: {}
neutron_openvswitch_agent_ini_overrides: {}
neutron_bgp_dragent_ini_overrides: {}
neutron_calico_dhcp_agent_ini_overrides: {}
neutron_calico_felix_ini_overrides: {}
neutron_sriov_nic_agent_ini_overrides: {}
neutron_dragonflow_ini_overrides: {}

View File

@ -13,14 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
filtered_neutron_services: >
{%- set services = neutron_services.copy() %}
{%- for key,value in neutron_services.items() %}
{%- if value.group not in group_names or not value.service_en %}
{%- set _ = services.pop(key) %}
{%- endif %}
{%- endfor %}
{{- services -}}
###
### Packages
###
neutron_packages_list: >
{% set packages = neutron_distro_packages -%}
@ -38,4 +33,481 @@ neutron_packages_list: >
{% if neutron_services['neutron-vpnaas-agent']['group'] in group_names and neutron_vpnaas | bool -%}
{% set _ = packages.extend(neutron_vpnaas_distro_packages) -%}
{% endif -%}
{{ packages -}}
{{ packages -}}
###
### Python code details
###
neutron_requires_pip_packages:
- virtualenv
- virtualenv-tools
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
- httplib2
neutron_pip_packages:
- configobj
- cliff
- keystonemiddleware
- PyMySQL
- neutron
- pycrypto
- python-glanceclient
- python-keystoneclient
- python-memcached
- python-neutronclient
- python-novaclient
- repoze.lru
neutron_optional_bgp_pip_packages:
- neutron_dynamic_routing
neutron_optional_calico_pip_packages:
- felix
- networking-calico
- python-etcd
neutron_optional_fwaas_pip_packages:
- neutron_fwaas
neutron_optional_lbaas_pip_packages:
- neutron_lbaas
neutron_optional_vpnaas_pip_packages:
- neutron_vpnaas
neutron_optional_dragonflow_pip_packages:
- dragonflow
- python-etcd
neutron_proprietary_nuage_pip_packages:
- nuage-openstack-neutron
- nuage-openstack-neutronclient
- nuagenetlib
neutron_developer_constraints:
- "git+{{ neutron_git_repo }}@{{ neutron_git_install_branch }}#egg=neutron"
- "git+{{ neutron_fwaas_git_repo }}@{{ neutron_fwaas_git_install_branch }}#egg=neutron-fwaas"
- "git+{{ neutron_lbaas_git_repo }}@{{ neutron_lbaas_git_install_branch }}#egg=neutron-lbaas"
- "git+{{ neutron_vpnaas_git_repo }}@{{ neutron_vpnaas_git_install_branch }}#egg=neutron-vpnaas"
- "git+{{ neutron_dynamic_routing_git_repo }}@{{ neutron_dynamic_routing_git_install_branch }}#egg=neutron-dynamic-routing"
- "git+{{ calico_git_repo }}@{{ calico_git_install_branch }}#egg=felix"
- "git+{{ networking_calico_git_repo }}@{{ networking_calico_git_install_branch }}#egg=networking-calico"
- "git+{{ dragonflow_git_repo }}@{{ dragonflow_git_install_branch }}#egg=dragonflow"
neutron_bin: "/openstack/venvs/neutron-{{ neutron_venv_tag }}/bin"
neutron_venv_download: "{{ not neutron_developer_mode | bool }}"
neutron_lib_dir: "{{ neutron_bin | dirname }}/lib/python2.7/site-packages/"
###
### Generic Neutron Config
###
neutron_conf_dir: /etc/neutron
neutron_lock_path: "/var/lock/neutron"
neutron_system_user_name: neutron
neutron_system_group_name: neutron
neutron_system_comment: neutron system user
neutron_system_shell: /bin/false
neutron_system_home_folder: "/var/lib/{{ neutron_system_user_name }}"
###
### DB (Galera) integration
###
neutron_db_config: "{{ neutron_conf_dir }}/neutron.conf"
neutron_db_plugin: "{{ neutron_conf_dir }}/{{ neutron_plugins[neutron_plugin_type].plugin_ini }}"
###
### Telemetry integration
###
# Please add 'metering' to the neutron_plugin_base list
#TODO(odyssey4me): Remove the class path from this conditional in the Newton cycle
neutron_metering: "{% if 'metering' in neutron_plugin_base or 'neutron.services.metering.metering_plugin.MeteringPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
###
### Neutron Plugins
###
neutron_plugin_core: "{{ neutron_plugins[neutron_plugin_type].plugin_core }}"
neutron_plugins:
ml2.lxb:
driver_firewall: iptables
driver_interface: linuxbridge
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "linuxbridge"
l3_agent_mode: "legacy"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.ovs:
driver_firewall: iptables_hybrid
driver_interface: openvswitch
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "openvswitch"
l3_agent_mode: "legacy"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.ovs.dvr:
driver_firewall: iptables_hybrid
driver_interface: openvswitch
drivers_type: "{{ neutron_ml2_drivers_type }}"
l2_population: "{{ neutron_l2_population }}"
mechanisms: "openvswitch"
l3_agent_mode: "{% if 'nova_compute' in group_names %}dvr{% else %}dvr_snat{% endif %}"
router_distributed: True
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.calico:
drivers_type: "flat, local"
mechanisms: "calico"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
plugin_core: ml2
plugin_ini: plugins/ml2/ml2_conf.ini
ml2.dragonflow:
plugin_core: neutron.plugins.ml2.plugin.Ml2Plugin
plugin_ini: plugins/ml2/ml2_conf.ini
drivers_type: "{{ neutron_ml2_drivers_type }}"
mechanisms: "df"
plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}"
l3_agent_mode: "legacy"
driver_interface: "openvswitch"
plumgrid:
plugin_conf_ini_overrides: "{{ neutron_plumgrid_conf_ini_overrides }}"
plugin_core: networking_plumgrid.neutron.plugins.plugin.NeutronPluginPLUMgridV2
plugin_ini: plugins/plumgrid/plumgrid.ini
nuage:
plugin_core: neutron.plugins.nuage.plugin.NuagePlugin
plugin_ini: plugins/nuage/nuage.ini
plugin_conf_ini_overrides: "{{ neutron_nuage_conf_ini_overrides }}"
ml2.sriov:
driver_types: "{{ neutron_ml2_drivers_type }}"
mechanisms: "sriovnicswitch"
plugin_ini: plugins/ml2/sriov_nic_agent.ini
plugin_conf_ini_overrides: "{{ neutron_sriov_nic_agent_ini_overrides }}"
###
### ML2 Plugin Configuration
###
neutron_ml2_mechanism_drivers: >-
{%- set _var = [] -%}
{%- for plugin in [neutron_plugin_type]|union(neutron_plugin_types) -%}
{%- if _var.append(neutron_plugins[plugin].mechanisms) -%}{%- endif -%}
{%- endfor -%}
{%- if neutron_l2_population | bool -%}
{%- if _var.append('l2population') -%}{%- endif -%}
{%- endif -%}
{{ _var | join(',') }}
# OVS
_neutron_non_tunnel_types:
- flat
- vlan
- local
# Tunnel network types used by the OVS agent
neutron_tunnel_types: "{{ neutron_ml2_drivers_type.split(',') | difference(_neutron_non_tunnel_types) | join(',') }}"
###
### L3 Agent Plugin Configuration
###
## Please add 'router' to the neutron_plugin_base list
#TODO(odyssey4me): Remove the class path from this conditional in the Newton cycle
# Should the neutron-l3-agent service should be enabled on the host
neutron_l3: "{% if 'router' in neutron_plugin_base or 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin' in neutron_plugin_base or 'df-l3' in neutron_plugin_base %}True{% else %}False{% endif %}"
###
### DHCP Agent Plugin Configuration
###
neutron_dhcp: "{% if neutron_plugin_type.split('.')[0] == 'ml2' %}True{% else %}False{% endif %}"
neutron_dhcp_config:
log-facility: "/var/log/neutron/neutron-dnsmasq.log"
###
### Metadata Agent Plugin Configuration
###
neutron_metadata: "{% if neutron_plugin_type.split('.')[0] == 'ml2' %}True{% else %}False{% endif %}"
###
### FWaaS Plugin Configuration
###
# Please add the 'firewall' to the neutron_plugin_base list
neutron_fwaas: "{% if 'firewall' in neutron_plugin_base %}True{% else %}False{% endif %}"
###
### LBaaS Plugin Configuration
###
# Deprecated: instead of triggering lbaas through neutron_plugin_core it will be triggered when Octavia is installed, neutron_lbaas_namespace var is set to True, or both:
# - neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2 or lbaasv2
neutron_lbaas_namespace: "{% if 'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2' in neutron_plugin_base %}True{% else %}False{% endif %}"
neutron_lbaas_octavia: False
neutron_lbaasv2: "{% if (neutron_lbaas_namespace|bool) or (neutron_lbaas_octavia | bool) %}True{% else %}False{% endif %}"
# This complex logic activates either Namespace or Octavia or both or none; if
# Octavia is included it will be the default
neutron_lbaasv2_plugin_drivers:
- "{% if neutron_lbaas_namespace | bool %}LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver{% else %}none{% endif %}"
- "{% if neutron_lbaas_octavia | bool %}LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver{% else %}none{% endif %}"
neutron_lbaasv2_service_provider: "{{ neutron_lbaasv2_plugin_drivers | reject('equalto','none') | join(',') }}{% if neutron_lbaasv2 %}:default{% endif %}"
neutron_lbaasv2_device_driver: neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
###
### VPNaaS Plugin Configuration
###
# Please add the 'vpnaas' to the neutron_plugin_base list
neutron_vpnaas: "{% if 'vpnaas' in neutron_plugin_base %}True{% else %}False{% endif %}"
## Neutron Dynamic Routing Agent's BGP Plugin Configuration
# To enable the BGP plugin, add the following item to the neutron_plugin_base list:
# neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin
#
# NOTE(matias): BgpPlugin doesn't have entry points and the full classpath
# is required.
neutron_bgp: "{% if 'neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin' in neutron_plugin_base %}True{% else %}False{% endif %}"
neutron_bgp_speaker_driver: neutron_dynamic_routing.services.bgp.agent.driver.ryu.driver.RyuBgpDriver
neutron_bgp_router_id: "{{ neutron_local_ip }}"
###
### Dragonflow Plugin Configuration
###
dragonflow_nb_db_class: etcd_nb_db_driver
dragonflow_pub_sub_driver: zmq_pubsub_driver
dragonflow_pub_sub_multiproc_driver: zmq_pubsub_multiproc_driver
dragonflow_pub_sub_multiproc_enabled: "{{ (dragonflow_pub_sub_multiproc_driver | default('', True)) | length > 0 }}"
###
### Services info
###
filtered_neutron_services: >
{%- set services = neutron_services.copy() %}
{%- for key,value in neutron_services.items() %}
{%- if value.group not in group_names or not value.service_en %}
{%- set _ = services.pop(key) %}
{%- endif %}
{%- endfor %}
{{- services -}}
###
### Internals: neutron_services mappings
###
neutron_services:
neutron-dhcp-agent:
group: neutron_dhcp_agent
service_name: neutron-dhcp-agent
service_en: "{{ neutron_dhcp | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: dhcp_agent.ini
service_rootwrap: rootwrap.d/dhcp.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dhcp_agent.ini --log-file=/var/log/neutron/neutron-dhcp-agent.log"
config_overrides: "{{ neutron_dhcp_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dhcp_agent_init_overrides }}"
neutron-openvswitch-agent:
group: neutron_openvswitch_agent
service_name: neutron-openvswitch-agent
service_en: "{{ 'ml2.ovs' in neutron_plugin_type }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/openvswitch_agent.ini
service_rootwrap: rootwrap.d/openvswitch-plugin.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/openvswitch_agent.ini --log-file=/var/log/neutron/neutron-openvswitch-agent.log"
config_overrides: "{{ neutron_openvswitch_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_openvswitch_agent_init_overrides }}"
neutron-linuxbridge-agent:
group: neutron_linuxbridge_agent
service_name: neutron-linuxbridge-agent
service_en: "{{ neutron_plugin_type == 'ml2.lxb' }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/linuxbridge_agent.ini
service_rootwrap: rootwrap.d/linuxbridge-plugin.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/linuxbridge_agent.ini --log-file=/var/log/neutron/neutron-linuxbridge-agent.log"
config_overrides: "{{ neutron_linuxbridge_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_linuxbridge_agent_init_overrides }}"
neutron-metadata-agent:
group: neutron_metadata_agent
service_name: neutron-metadata-agent
service_en: "{{ neutron_metadata | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: metadata_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/metadata_agent.ini --log-file=/var/log/neutron/neutron-metadata-agent.log"
config_overrides: "{{ neutron_metadata_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_metadata_agent_init_overrides }}"
neutron-metering-agent:
group: neutron_metering_agent
service_name: neutron-metering-agent
service_en: "{{ neutron_metering | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: metering_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/metering_agent.ini --log-file=/var/log/neutron/neutron-metering-agent.log"
config_overrides: "{{ neutron_metering_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_metering_agent_init_overrides }}"
# Other agents will use neutron_plugins[neutron_plugin_type].driver_interface
# for the interface_driver, but that uses a stevedore alias. Metering agent
# hasn't been updated to use stevedore alises so that fails. To work around
# the problem until metering agent is updated, we should use the full
# module.class path to the interface driver.
# TODO(hughsaunders): switch back to stevedore when
# https://review.openstack.org/#/c/419881/ merges and is backported.
interface_driver: neutron.agent.linux.interface.BridgeInterfaceDriver
neutron-l3-agent:
group: neutron_l3_agent
service_name: neutron-l3-agent
service_en: "{{ neutron_l3 | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: l3_agent.ini
service_rootwrap: rootwrap.d/l3.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/l3_agent.ini --log-file=/var/log/neutron/neutron-l3-agent.log"
config_overrides: "{{ neutron_l3_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_l3_agent_init_overrides }}"
neutron-lbaasv2-agent:
group: neutron_lbaas_agent
service_name: neutron-lbaasv2-agent
service_en: "{{ neutron_lbaas_namespace | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: lbaas_agent.ini
service_rootwrap: rootwrap.d/lbaas-haproxy.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/lbaas_agent.ini --log-file=/var/log/neutron/neutron-lbaasv2-agent.log"
config_overrides: "{{ neutron_lbaas_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_lbaas_agent_init_overrides }}"
neutron-bgp-dragent:
group: neutron_bgp_dragent
service_name: neutron-bgp-dragent
service_en: "{{ neutron_bgp | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: bgp_dragent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/bgp_dragent.ini --log-file=/var/log/neutron/neutron-bgp-dragent.log"
config_overrides: "{{ neutron_bgp_dragent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_bgp_dragent_init_overrides }}"
neutron-vpnaas-agent:
group: neutron_l3_agent
service_name: neutron-vpn-agent
service_en: "{{ neutron_vpnaas | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: vpnaas_agent.ini
service_rootwrap: rootwrap.d/vpnaas.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/vpnaas_agent.ini --log-file=/var/log/neutron/neutron-vpn-agent.log"
config_overrides: "{{ neutron_vpnaas_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_vpn_agent_init_overrides }}"
neutron-server:
group: neutron_server
service_name: neutron-server
service_en: True
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/{{ neutron_plugins[neutron_plugin_type].plugin_ini }} --log-file=/var/log/neutron/neutron-server.log {% if neutron_plugin_type == 'ml2.dragonflow' %}--config-file {{ neutron_conf_dir }}/dragonflow.ini{% endif %}"
init_config_overrides: "{{ neutron_server_init_overrides }}"
calico-felix:
group: neutron_calico_dhcp_agent
system_user: root
system_group: root
service_name: calico-felix
service_en: "{{ neutron_plugin_type == 'ml2.calico' }}"
service_conf_path: /etc/calico
service_conf: felix.cfg
config_options: --config-file /etc/calico/felix.cfg
config_overrides: "{{ neutron_calico_felix_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_calico_felix_init_overrides }}"
calico-dhcp-agent:
group: neutron_calico_dhcp_agent
system_user: root
system_group: root
service_name: calico-dhcp-agent
service_en: "{{ neutron_plugin_type == 'ml2.calico' }}"
service_rootwrap: rootwrap.d/dhcp.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf"
config_overrides: "{{ neutron_calico_dhcp_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_calico_dhcp_agent_init_overrides }}"
neutron-sriov-nic-agent:
group: neutron_sriov_nic_agent
service_name: neutron-sriov-nic-agent
service_en: "{{ 'ml2.sriov' in neutron_plugin_types }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: plugins/ml2/sriov_nic_agent.ini
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/sriov_nic_agent.ini --log-file=/var/log/neutron/neutron-sriov-nic-agent.log"
config_overrides: "{{ neutron_sriov_nic_agent_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_sriov_nic_agent_init_overrides }}"
dragonflow-controller-agent:
group: dragonflow_controller_agent
system_user: root
system_group: root
service_name: df-local-controller
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' }}"
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dragonflow.ini --log-file=/var/log/dragonflow/df-local-controller.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_controller_agent_init_overrides }}"
dragonflow-l3-agent:
group: dragonflow_l3_agent
system_user: root
system_group: root
service_name: df-l3-agent
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' and neutron_l3 | bool }}"
service_conf_path: "{{ neutron_conf_dir }}"
service_conf: l3_agent.ini
service_rootwrap: rootwrap.d/l3.filters
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/l3_agent.ini --log-file=/var/log/dragonflow/df-l3-agent.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_l3_agent_init_overrides }}"
dragonflow-pubsub-agent:
group: dragonflow_pubsub_agent
service_name: df-publisher-service
service_en: "{{ neutron_plugin_type == 'ml2.dragonflow' }}"
config_options: "--config-file {{ neutron_conf_dir }}/neutron.conf --config-file {{ neutron_conf_dir }}/dragonflow.ini --log-file=/var/log/dragonflow/df-publisher-service.log"
config_overrides: "{{ neutron_dragonflow_ini_overrides }}"
config_type: "ini"
init_config_overrides: "{{ neutron_dragonflow_pubsub_agent_init_overrides }}"
###
### Internals: Drivers mappings
###
neutron_driver_network_scheduler: neutron.scheduler.dhcp_agent_scheduler.WeightScheduler
neutron_driver_router_scheduler: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
neutron_driver_loadbalancer_pool_scheduler: neutron_lbaas.services.loadbalancer.agent_scheduler.ChanceScheduler
neutron_driver_metering: neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver
neutron_driver_dhcp: neutron.agent.linux.dhcp.Dnsmasq
neutron_driver_quota: neutron.db.quota.driver.DbQuotaDriver
###
### Internals: py_pkgs
###
# This variable is used by the repo_build process to determine
# which host group to check for members of before building the
# pip packages required by this role. The value is picked up
# by the py_pkgs lookup.
neutron_role_project_group: neutron_all