Finish/fix neutron sfc service
Neutron-sfc-agent start its functions with openvswitch. This change moves sfc configuration into neutron-openvswitch-agent. Rework config files to use openvswitch when sfc or openvswitch are used as network plugin. Also adds sfc extension_driver to ml2 Change-Id: If1ebf9554f6d686cc6d064e698a48f8a6b6172b3 Closes-Bug: #1664493 Depends-On: I60ba1333231a4ae38a041d41e551f7d74fe15e3b
This commit is contained in:
parent
eab8efe166
commit
d4e7dfb376
@ -122,7 +122,7 @@ bifrost_network_interface: "{{ network_interface }}"
|
|||||||
dns_interface: "{{ network_interface }}"
|
dns_interface: "{{ network_interface }}"
|
||||||
tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}"
|
tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}"
|
||||||
|
|
||||||
# Valid options are [ openvswitch, linuxbridge, sfc ]
|
# Valid options are [ openvswitch, linuxbridge ]
|
||||||
neutron_plugin_agent: "openvswitch"
|
neutron_plugin_agent: "openvswitch"
|
||||||
|
|
||||||
# The default ports used by each service.
|
# The default ports used by each service.
|
||||||
@ -369,6 +369,7 @@ enable_neutron_qos: "no"
|
|||||||
enable_neutron_agent_ha: "no"
|
enable_neutron_agent_ha: "no"
|
||||||
enable_neutron_bgp_dragent: "no"
|
enable_neutron_bgp_dragent: "no"
|
||||||
enable_neutron_provider_networks: "no"
|
enable_neutron_provider_networks: "no"
|
||||||
|
enable_neutron_sfc: "no"
|
||||||
enable_nova_serialconsole_proxy: "no"
|
enable_nova_serialconsole_proxy: "no"
|
||||||
enable_octavia: "no"
|
enable_octavia: "no"
|
||||||
enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' | bool }}"
|
enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' | bool }}"
|
||||||
|
@ -40,31 +40,6 @@ neutron_services:
|
|||||||
- "/lib/modules:/lib/modules:ro"
|
- "/lib/modules:/lib/modules:ro"
|
||||||
- "/run:/run:shared"
|
- "/run:/run:shared"
|
||||||
- "kolla_logs:/var/log/kolla/"
|
- "kolla_logs:/var/log/kolla/"
|
||||||
neutron-sfc-agent:
|
|
||||||
container_name: "neutron_sfc_agent"
|
|
||||||
image: "{{ neutron_sfc_agent_image_full }}"
|
|
||||||
enabled: "{{ neutron_plugin_agent == 'sfc' }}"
|
|
||||||
privileged: True
|
|
||||||
host_in_groups: >-
|
|
||||||
{{
|
|
||||||
( inventory_hostname in groups['compute']
|
|
||||||
or (enable_manila | bool and inventory_hostname in groups['manila-share'])
|
|
||||||
or inventory_hostname in groups['neutron-dhcp-agent']
|
|
||||||
or inventory_hostname in groups['neutron-l3-agent']
|
|
||||||
or inventory_hostname in groups['neutron-metadata-agent']
|
|
||||||
and not enable_nova_fake | bool
|
|
||||||
) or
|
|
||||||
( inventory_hostname in groups['neutron-dhcp-agent']
|
|
||||||
or inventory_hostname in groups['neutron-l3-agent']
|
|
||||||
or inventory_hostname in groups['neutron-metadata-agent']
|
|
||||||
and enable_nova_fake | bool
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
volumes:
|
|
||||||
- "{{ node_config_directory }}/neutron-sfc-agent/:{{ container_config_directory }}/:ro"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "/run:/run:shared"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
neutron-linuxbridge-agent:
|
neutron-linuxbridge-agent:
|
||||||
container_name: "neutron_linuxbridge_agent"
|
container_name: "neutron_linuxbridge_agent"
|
||||||
image: "{{ neutron_linuxbridge_agent_image_full }}"
|
image: "{{ neutron_linuxbridge_agent_image_full }}"
|
||||||
@ -211,10 +186,6 @@ neutron_openvswitch_agent_image: "{{ docker_registry ~ '/' if docker_registry el
|
|||||||
neutron_openvswitch_agent_tag: "{{ neutron_tag }}"
|
neutron_openvswitch_agent_tag: "{{ neutron_tag }}"
|
||||||
neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}"
|
neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}"
|
||||||
|
|
||||||
neutron_sfc_agent_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-sfc-agent"
|
|
||||||
neutron_sfc_agent_tag: "{{ neutron_tag }}"
|
|
||||||
neutron_sfc_agent_image_full: "{{ neutron_sfc_agent_image }}:{{ neutron_sfc_agent_tag }}"
|
|
||||||
|
|
||||||
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server"
|
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server"
|
||||||
neutron_server_tag: "{{ neutron_tag }}"
|
neutron_server_tag: "{{ neutron_tag }}"
|
||||||
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
|
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
|
||||||
@ -252,6 +223,8 @@ extension_drivers:
|
|||||||
enabled: true
|
enabled: true
|
||||||
- name: "dns"
|
- name: "dns"
|
||||||
enabled: "{{ enable_designate | bool }}"
|
enabled: "{{ enable_designate | bool }}"
|
||||||
|
- name: "sfc"
|
||||||
|
enabled: "{{ enable_neutron_sfc | bool }}"
|
||||||
|
|
||||||
neutron_extension_drivers: "{{ extension_drivers|selectattr('enabled', 'equalto', true)|list }}"
|
neutron_extension_drivers: "{{ extension_drivers|selectattr('enabled', 'equalto', true)|list }}"
|
||||||
|
|
||||||
@ -260,7 +233,7 @@ neutron_extension_drivers: "{{ extension_drivers|selectattr('enabled', 'equalto'
|
|||||||
####################
|
####################
|
||||||
service_plugins:
|
service_plugins:
|
||||||
- name: "flow_classifier"
|
- name: "flow_classifier"
|
||||||
enabled: "{{ neutron_plugin_agent == 'sfc' }}"
|
enabled: "{{ enable_neutron_sfc | bool }}"
|
||||||
- name: "lbaasv2"
|
- name: "lbaasv2"
|
||||||
enabled: "{{ enable_neutron_lbaas | bool }}"
|
enabled: "{{ enable_neutron_lbaas | bool }}"
|
||||||
- name: "firewall"
|
- name: "firewall"
|
||||||
@ -272,7 +245,7 @@ service_plugins:
|
|||||||
- name: "router"
|
- name: "router"
|
||||||
enabled: true
|
enabled: true
|
||||||
- name: "sfc"
|
- name: "sfc"
|
||||||
enabled: "{{ neutron_plugin_agent == 'sfc' }}"
|
enabled: "{{ enable_neutron_sfc | bool }}"
|
||||||
- name: "neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin"
|
- name: "neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin"
|
||||||
enabled: "{{ enable_neutron_bgp_dragent | bool }}"
|
enabled: "{{ enable_neutron_bgp_dragent | bool }}"
|
||||||
|
|
||||||
@ -289,6 +262,17 @@ neutron_notification_topics:
|
|||||||
|
|
||||||
neutron_enabled_notification_topics: "{{ neutron_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
neutron_enabled_notification_topics: "{{ neutron_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Agent Extensions
|
||||||
|
####################
|
||||||
|
agent_extensions:
|
||||||
|
- name: "qos"
|
||||||
|
enabled: "{{ enable_neutron_qos | bool }}"
|
||||||
|
- name: "sfc"
|
||||||
|
enabled: "{{ enable_neutron_sfc | bool }}"
|
||||||
|
|
||||||
|
neutron_agent_extensions: "{{ agent_extensions | selectattr('enabled', 'equalto', true) | list }}"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# VMware NSXV
|
# VMware NSXV
|
||||||
####################
|
####################
|
||||||
@ -307,4 +291,3 @@ vmware_nsxv_backup_edge_pool: "service:compact:1:2"
|
|||||||
vmware_nsxv_spoofguard_enabled: "false"
|
vmware_nsxv_spoofguard_enabled: "false"
|
||||||
vmware_nsxv_metadata_initializer: "false"
|
vmware_nsxv_metadata_initializer: "false"
|
||||||
vmware_nsxv_edge_ha: "false"
|
vmware_nsxv_edge_ha: "false"
|
||||||
|
|
||||||
|
@ -82,54 +82,6 @@
|
|||||||
or fake_neutron_ml2_conf_ini | changed
|
or fake_neutron_ml2_conf_ini | changed
|
||||||
or check_fake_neutron_openvswitch_agent | changed
|
or check_fake_neutron_openvswitch_agent | changed
|
||||||
|
|
||||||
- name: Restart fake neutron-sfc-agent container
|
|
||||||
vars:
|
|
||||||
service_name: "neutron-sfc-agent"
|
|
||||||
service: "{{ neutron_services[service_name] }}"
|
|
||||||
config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
neutron_conf: "{{ neutron_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
neutron_ml2_conf: "{{ neutron_ml2_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
policy_json: "{{ policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
neutron_sfc_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
kolla_docker:
|
|
||||||
action: "recreate_or_restart_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ service.container_name }}"
|
|
||||||
image: "{{ service.image }}"
|
|
||||||
volumes: "{{ service.volumes }}"
|
|
||||||
privileged: "{{ service.privileged | default(False) }}"
|
|
||||||
with_sequence: "start=1 end={{ num_nova_fake_per_node }}"
|
|
||||||
when:
|
|
||||||
- action != "config"
|
|
||||||
- enable_nova_fake | bool
|
|
||||||
- neutron_plugin_agent == "sfc"
|
|
||||||
- inventory_hostname in groups["compute"]
|
|
||||||
- fake_config_json | changed
|
|
||||||
or fake_neutron_conf | changed
|
|
||||||
or fake_neutron_ml2_conf_ini | changed
|
|
||||||
or check_fake_neutron_sfc_agent | changed
|
|
||||||
|
|
||||||
# TODO(Jeffrey4l): sfc do not have config.json file at all. it is not finished
|
|
||||||
- name: Restart neutron-sfc-agent container
|
|
||||||
vars:
|
|
||||||
service_name: "neutron-sfc-agent"
|
|
||||||
service: "{{ neutron_services[service_name] }}"
|
|
||||||
config_json: "{{ neutron_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
neutron_sfc_agent_container: "{{ check_neutron_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
||||||
kolla_docker:
|
|
||||||
action: "recreate_or_restart_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ service.container_name }}"
|
|
||||||
image: "{{ service.image }}"
|
|
||||||
volumes: "{{ service.volumes }}"
|
|
||||||
privileged: "{{ service.privileged | default(False) }}"
|
|
||||||
when:
|
|
||||||
- action != "config"
|
|
||||||
- service.enabled | bool
|
|
||||||
- service.host_in_groups | bool
|
|
||||||
- config_json | changed
|
|
||||||
or neutron_sfc_agent_container | changed
|
|
||||||
|
|
||||||
- name: Restart neutron-linuxbridge-agent container
|
- name: Restart neutron-linuxbridge-agent container
|
||||||
vars:
|
vars:
|
||||||
service_name: "neutron-linuxbridge-agent"
|
service_name: "neutron-linuxbridge-agent"
|
||||||
|
@ -61,3 +61,26 @@
|
|||||||
- neutron_vpnaas_agent.host_in_groups | bool
|
- neutron_vpnaas_agent.host_in_groups | bool
|
||||||
run_once: True
|
run_once: True
|
||||||
delegate_to: "{{ groups[neutron_vpnaas_agent.group][0] }}"
|
delegate_to: "{{ groups[neutron_vpnaas_agent.group][0] }}"
|
||||||
|
|
||||||
|
- name: Running Neutron sfc bootstrap container
|
||||||
|
vars:
|
||||||
|
neutron_server: "{{ neutron_services['neutron-server'] }}"
|
||||||
|
kolla_docker:
|
||||||
|
action: "start_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
detach: False
|
||||||
|
environment:
|
||||||
|
NEUTRON_SFC_BOOTSTRAP:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
image: "{{ neutron_server.image }}"
|
||||||
|
labels:
|
||||||
|
BOOTSTRAP:
|
||||||
|
name: "bootstrap_neutron_sfc"
|
||||||
|
restart_policy: "never"
|
||||||
|
volumes: "{{ neutron_server.volumes }}"
|
||||||
|
when:
|
||||||
|
- enable_neutron_sfc | bool
|
||||||
|
- neutron_server.enabled | bool
|
||||||
|
- neutron_server.host_in_groups | bool
|
||||||
|
run_once: True
|
||||||
|
delegate_to: "{{ groups[neutron_server.group][0] }}"
|
||||||
|
@ -70,23 +70,3 @@
|
|||||||
with_sequence: "start=1 end={{ num_nova_fake_per_node }}"
|
with_sequence: "start=1 end={{ num_nova_fake_per_node }}"
|
||||||
notify:
|
notify:
|
||||||
- Restart fake neutron-openvswitch-agent container
|
- Restart fake neutron-openvswitch-agent container
|
||||||
|
|
||||||
- name: Checking neutron-sfc-agent container for nova fake node
|
|
||||||
vars:
|
|
||||||
neutron_sfc_agent: "{{ neutron_services['neutron-sfc-agent'] }}"
|
|
||||||
kolla_docker:
|
|
||||||
action: "compare_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ neutron_sfc_agent.container_name }}"
|
|
||||||
image: "{{ neutron_sfc_agent.image }}"
|
|
||||||
privileged: "{{ neutron_sfc_agent.privileged | default(False) }}"
|
|
||||||
volumes: "{{ neutron_sfc_agent.volumes }}"
|
|
||||||
register: check_fake_neutron_sfc_agent
|
|
||||||
when:
|
|
||||||
- action != "config"
|
|
||||||
- enable_nova_fake | bool
|
|
||||||
- neutron_plugin_agent == "sfc"
|
|
||||||
- inventory_hostname in groups["compute"]
|
|
||||||
with_sequence: "start=1 end={{ num_nova_fake_per_node }}"
|
|
||||||
notify:
|
|
||||||
- Restart fake neutron-sfc-agent container
|
|
||||||
|
@ -59,8 +59,8 @@ arp_responder = true
|
|||||||
enable_distributed_routing = True
|
enable_distributed_routing = True
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if enable_neutron_qos | bool %}
|
{% if neutron_agent_extensions %}
|
||||||
extensions = qos
|
extensions = {{ neutron_agent_extensions|map(attribute='name')|join(',') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[ovs]
|
[ovs]
|
||||||
|
@ -105,10 +105,12 @@ topics = {{ neutron_enabled_notification_topics | map(attribute='name') | join('
|
|||||||
driver = noop
|
driver = noop
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if neutron_plugin_agent == "sfc" %}
|
{% if enable_neutron_sfc | bool %}
|
||||||
[sfc]
|
[sfc]
|
||||||
drivers = ovs
|
drivers = ovs
|
||||||
|
|
||||||
[flowclassifier]
|
[flowclassifier]
|
||||||
|
drivers = ovs
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if enable_octavia | bool %}
|
{% if enable_octavia | bool %}
|
||||||
|
@ -40,7 +40,7 @@ the following:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
neutron_plugin_agent: "sfc"
|
enable_neutron_sfc: "yes"
|
||||||
|
|
||||||
Networking-SFC is an additional Neutron plugin. For SFC to work, this plugin
|
Networking-SFC is an additional Neutron plugin. For SFC to work, this plugin
|
||||||
has to be installed in ``neutron-server`` container as well. Modify the
|
has to be installed in ``neutron-server`` container as well. Modify the
|
||||||
|
@ -180,6 +180,7 @@ kolla_internal_vip_address: "10.10.10.254"
|
|||||||
#enable_neutron_qos: "no"
|
#enable_neutron_qos: "no"
|
||||||
#enable_neutron_agent_ha: "no"
|
#enable_neutron_agent_ha: "no"
|
||||||
#enable_neutron_vpnaas: "no"
|
#enable_neutron_vpnaas: "no"
|
||||||
|
#enable_neutron_sfc: "no"
|
||||||
#enable_nova_serialconsole_proxy: "no"
|
#enable_nova_serialconsole_proxy: "no"
|
||||||
#enable_octavia: "no"
|
#enable_octavia: "no"
|
||||||
#enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' }}"
|
#enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' }}"
|
||||||
|
Loading…
Reference in New Issue
Block a user