blob: 1aba19fee5e81dfc17e4903632f91cd2b91ebe63 [file] [log] [blame]
{% from "neutron/map.jinja" import compute, fwaas with context %}
{%- if compute.enabled %}
include:
{% if compute.backend.engine == "ml2" and compute.dvr and fwaas.get('enabled', False) %}
- neutron.fwaas
{%- endif %}
- neutron._ssl.rabbitmq
{%- if not salt['user.info']('neutron') %}
user_neutron:
user.present:
- name: neutron
- home: /var/lib/neutron
- shell: /bin/false
- system: True
- groups:
- neutron
- require_in:
- sls: neutron._ssl.rabbitmq
{% if compute.backend.engine == "ml2" and compute.dvr and fwaas.get('enabled', False) %}
- sls: neutron.fwaas
{%- endif %}
group_neutron:
group.present:
- name: neutron
- system: True
- require_in:
- user: user_neutron
{%- endif %}
{% if compute.backend.engine == "ml2" %}
{% if compute.get('dhcp_agent_enabled', False) %}
neutron_dhcp_agent_packages:
pkg.installed:
- names:
- neutron-dhcp-agent
- require_in:
- sls: neutron._ssl.rabbitmq
neutron_dhcp_agent:
service.running:
- enable: true
- names:
- neutron-dhcp-agent
- watch:
- file: /etc/neutron/neutron.conf
- file: /etc/neutron/dhcp_agent.ini
- require:
- pkg: neutron_dhcp_agent_packages
/etc/neutron/dhcp_agent.ini:
file.managed:
- source: salt://neutron/files/{{ compute.version }}/dhcp_agent.ini
- mode: 0640
- group: neutron
- template: jinja
- require:
- pkg: neutron_dhcp_agent_packages
{% endif %}
{%- if compute.opendaylight is defined %}
{%- include "neutron/opendaylight/client.sls" %}
{%- else %}
{%- include "neutron/ml2_ovs/init.sls" %}
{%- endif %}
{%- elif compute.backend.engine == "ovn" %}
ovn_packages:
pkg.installed:
- names: {{ compute.pkgs_ovn }}
{%- if not grains.get('noservices', False) %}
remote_ovsdb_access:
cmd.run:
- name: "ovs-vsctl set open .
external-ids:ovn-remote=tcp:{{ compute.controller_vip }}:6642"
enable_overlays:
cmd.run:
- name: "ovs-vsctl set open . external-ids:ovn-encap-type=geneve,vxlan"
configure_local_endpoint:
cmd.run:
- name: "ovs-vsctl set open .
external-ids:ovn-encap-ip={{ compute.local_ip }}"
{%- if compute.get('external_access', True) %}
set_bridge_external_id:
cmd.run:
- name: "ovs-vsctl --no-wait br-set-external-id
{{ compute.external_bridge }} bridge-id {{ compute.external_bridge }}"
set_bridge_mapping:
cmd.run:
- name: "ovs-vsctl set open .
external-ids:ovn-bridge-mappings=physnet1:{{ compute.external_bridge }}"
{%- endif %}
ovn_services:
service.running:
- names: {{ compute.services_ovn }}
- enable: true
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
- require:
- pkg: ovn_packages
- sls: neutron._ssl.rabbitmq
{%- if compute.metadata is defined %}
{%- include "neutron/agents/ovn_metadata.sls" %}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endif %}