Add Networking-SFC role
Networking-SFC is a neutron big-tent project support Service Function Chaining in Neutron. * Rename the image from neutron-networking-sfc-agent to neutron-sfc-agent. * Add networking-sfc role in playbooks. Co-Authored-by: Jeffrey Zhang <zhang.lei.fly@gmail.com> Change-Id: I1f99650eed85f59929d4ab6b2226603c54f29577 Implements: blueprint enable-networking-sfc-support
This commit is contained in:
parent
1109c25b60
commit
8a01ed3270
@ -110,7 +110,7 @@ tunnel_interface: "{{ network_interface }}"
|
|||||||
bifrost_network_interface: "{{ network_interface }}"
|
bifrost_network_interface: "{{ network_interface }}"
|
||||||
|
|
||||||
|
|
||||||
# Valid options are [ openvswitch, linuxbridge ]
|
# Valid options are [ openvswitch, linuxbridge, sfc ]
|
||||||
neutron_plugin_agent: "openvswitch"
|
neutron_plugin_agent: "openvswitch"
|
||||||
|
|
||||||
# The default ports used by each service.
|
# The default ports used by each service.
|
||||||
|
@ -36,6 +36,10 @@ neutron_openvswitch_agent_image: "{{ docker_registry ~ '/' if docker_registry el
|
|||||||
neutron_openvswitch_agent_tag: "{{ openstack_release }}"
|
neutron_openvswitch_agent_tag: "{{ openstack_release }}"
|
||||||
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 }}-{{ kolla_install_type }}-neutron-sfc-agent"
|
||||||
|
neutron_sfc_agent_tag: "{{ openstack_release }}"
|
||||||
|
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 }}-{{ kolla_install_type }}-neutron-server"
|
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-neutron-server"
|
||||||
neutron_server_tag: "{{ openstack_release }}"
|
neutron_server_tag: "{{ openstack_release }}"
|
||||||
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
|
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
|
||||||
|
@ -109,6 +109,36 @@
|
|||||||
)
|
)
|
||||||
- neutron_plugin_agent == "openvswitch"
|
- neutron_plugin_agent == "openvswitch"
|
||||||
|
|
||||||
|
- name: Starting neutron-sfc-agent container
|
||||||
|
kolla_docker:
|
||||||
|
action: "start_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
image: "{{ neutron_sfc_agent_image_full }}"
|
||||||
|
name: "neutron_sfc_agent"
|
||||||
|
privileged: True
|
||||||
|
volumes:
|
||||||
|
- "{{ node_config_directory }}/neutron-sfc-agent/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "/run:/run"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
when:
|
||||||
|
- (
|
||||||
|
( 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
|
||||||
|
)
|
||||||
|
)
|
||||||
|
- neutron_plugin_agent == "sfc"
|
||||||
|
|
||||||
- name: Starting neutron-openvswitch-agent container for fake nova compute
|
- name: Starting neutron-openvswitch-agent container for fake nova compute
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "start_container"
|
action: "start_container"
|
||||||
@ -128,6 +158,25 @@
|
|||||||
- neutron_plugin_agent == "openvswitch"
|
- neutron_plugin_agent == "openvswitch"
|
||||||
- enable_nova_fake | bool
|
- enable_nova_fake | bool
|
||||||
|
|
||||||
|
- name: Starting neutron-sfc-agent container for fake nova compute
|
||||||
|
kolla_docker:
|
||||||
|
action: "start_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
image: "{{ neutron_sfc_agent_image_full }}"
|
||||||
|
name: "neutron_sfc_agent_fake_{{ item }}"
|
||||||
|
privileged: True
|
||||||
|
volumes:
|
||||||
|
- "{{ node_config_directory }}/neutron-sfc-agent-fake-{{ item }}/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "/run:/run"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
with_sequence: start=1 end={{ num_nova_fake_per_node }}
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups['compute']
|
||||||
|
- neutron_plugin_agent == "sfc"
|
||||||
|
- enable_nova_fake | bool
|
||||||
|
|
||||||
- name: Starting neutron-linuxbridge-agent container
|
- name: Starting neutron-linuxbridge-agent container
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "start_container"
|
action: "start_container"
|
||||||
|
@ -35,7 +35,7 @@ host = {{ ansible_hostname }}_{{ item }}
|
|||||||
|
|
||||||
allow_overlapping_ips = true
|
allow_overlapping_ips = true
|
||||||
core_plugin = ml2
|
core_plugin = ml2
|
||||||
service_plugins = router{% if enable_neutron_lbaas | bool %},neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2{% endif %}{% if enable_neutron_qos | bool %},qos{% endif %}
|
service_plugins = router{% if enable_neutron_lbaas | bool %},lbaas{% endif %}{% if enable_neutron_qos | bool %},qos{% endif %},{% if neutron_plugin_agent == "sfc" %}flow_classifier,sfc{% endif %}
|
||||||
|
|
||||||
{% if enable_neutron_agent_ha | bool %}
|
{% if enable_neutron_agent_ha | bool %}
|
||||||
dhcp_agents_per_network = {{ dhcp_agents_per_network }}
|
dhcp_agents_per_network = {{ dhcp_agents_per_network }}
|
||||||
@ -100,3 +100,9 @@ topics = notifications
|
|||||||
{% else %}
|
{% else %}
|
||||||
driver = noop
|
driver = noop
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if neutron_plugin_agent == "sfc" %}
|
||||||
|
[sfc]
|
||||||
|
drivers = ovs
|
||||||
|
[flowclassifier]
|
||||||
|
{% endif %}
|
||||||
|
@ -10,10 +10,10 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
|
|||||||
|
|
||||||
{% elif install_type == 'source' %}
|
{% elif install_type == 'source' %}
|
||||||
|
|
||||||
ADD neutron-networking-sfc-agent-archive /neutron-networking-sfc-agent-source
|
ADD neutron-sfc-agent-archive /neutron-sfc-agent-source
|
||||||
RUN ln -s neutron-networking-sfc-agent-source/* neutron_networking-sfc-agent \
|
RUN ln -s neutron-sfc-agent-source/* neutron-sfc-agent \
|
||||||
&& /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron_networking-sfc-agent \
|
&& /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron-sfc-agent \
|
||||||
&& cp /neutron_networking-sfc-agent/etc/neutron/rootwrap.d/* /etc/neutron/rootwrap.d \
|
&& cp /neutron-sfc-agent/etc/neutron/rootwrap.d/* /etc/neutron/rootwrap.d \
|
||||||
&& sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/neutron/rootwrap.conf
|
&& sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/neutron/rootwrap.conf
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -21,7 +21,7 @@ RUN ln -s neutron-networking-sfc-agent-source/* neutron_networking-sfc-agent \
|
|||||||
COPY extend_start.sh /usr/local/bin/kolla_neutron_extend_start
|
COPY extend_start.sh /usr/local/bin/kolla_neutron_extend_start
|
||||||
RUN chmod 755 /usr/local/bin/kolla_neutron_extend_start
|
RUN chmod 755 /usr/local/bin/kolla_neutron_extend_start
|
||||||
|
|
||||||
{% block neutron_networking_sfc_agent_footer %}{% endblock %}
|
{% block neutron_sfc_agent_footer %}{% endblock %}
|
||||||
{% block footer %}{% endblock %}
|
{% block footer %}{% endblock %}
|
||||||
{{ include_footer }}
|
{{ include_footer }}
|
||||||
|
|
@ -241,7 +241,7 @@ SOURCES = {
|
|||||||
'type': 'url',
|
'type': 'url',
|
||||||
'location': ('http://tarballs.openstack.org/neutron-lbaas/'
|
'location': ('http://tarballs.openstack.org/neutron-lbaas/'
|
||||||
'neutron-lbaas-master.tar.gz')},
|
'neutron-lbaas-master.tar.gz')},
|
||||||
'neutron-networking-sfc-agent': {
|
'neutron-sfc-agent': {
|
||||||
'type': 'url',
|
'type': 'url',
|
||||||
'location': ('http://tarballs.openstack.org/networking-sfc/'
|
'location': ('http://tarballs.openstack.org/networking-sfc/'
|
||||||
'networking-sfc-master.tar.gz')},
|
'networking-sfc-master.tar.gz')},
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Add neutron Service Function Chaining (sfc) support. Service Function
|
||||||
|
Chaining is a mechanism for overriding the basic destination based
|
||||||
|
forwarding that is typical of IP networks
|
@ -66,7 +66,7 @@ class BuildTest(object):
|
|||||||
|
|
||||||
class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
|
class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
|
||||||
excluded_images = ["kuryr",
|
excluded_images = ["kuryr",
|
||||||
"neutron-networking-sfc-agent",
|
"neutron-sfc-agent",
|
||||||
"senlin-base",
|
"senlin-base",
|
||||||
"vmtp",
|
"vmtp",
|
||||||
"watcher-base",
|
"watcher-base",
|
||||||
@ -94,7 +94,7 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase):
|
|||||||
# package, just add neutron-lbaas-agent into the exclude_image. Once they
|
# package, just add neutron-lbaas-agent into the exclude_image. Once they
|
||||||
# fix it, this should be reverted.
|
# fix it, this should be reverted.
|
||||||
excluded_images = ["kuryr",
|
excluded_images = ["kuryr",
|
||||||
"neutron-networking-sfc-agent",
|
"neutron-sfc-agent",
|
||||||
"neutron-lbaas-agent",
|
"neutron-lbaas-agent",
|
||||||
"senlin-base",
|
"senlin-base",
|
||||||
"vmtp",
|
"vmtp",
|
||||||
@ -121,7 +121,7 @@ class BuildTestUbuntuSource(BuildTest, base.BaseTestCase):
|
|||||||
|
|
||||||
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
|
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
|
||||||
excluded_images = ["kuryr",
|
excluded_images = ["kuryr",
|
||||||
"neutron-networking-sfc-agent",
|
"neutron-sfc-agent",
|
||||||
"senlin-base",
|
"senlin-base",
|
||||||
"vmtp",
|
"vmtp",
|
||||||
"watcher-base",
|
"watcher-base",
|
||||||
|
Loading…
Reference in New Issue
Block a user