diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index d68a775fa444c78a429a4f41f86cd02bbfdf9f0e..bc4b272655362b02663e94d8f5e1a723e11c0ffb 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -59,3 +59,5 @@ neutron_logging_verbose: "{{ openstack_logging_verbose }}" neutron_logging_debug: "{{ openstack_logging_debug }}" neutron_keystone_user: "neutron" + +neutron_bridge_name: "br-ex" diff --git a/ansible/roles/neutron/tasks/start.yml b/ansible/roles/neutron/tasks/start.yml index 4cecfc35b6b981dbb8ae8d3ef9c1069c73cef55d..daa21dd7d55ec168d98e7d220ad06b37bf263795 100644 --- a/ansible/roles/neutron/tasks/start.yml +++ b/ansible/roles/neutron/tasks/start.yml @@ -23,6 +23,11 @@ when: inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'] +- name: Ensuring OVS bridge is properly setup + command: docker exec openvswitch_vswitchd /opt/kolla/ovs_ensure_configured.sh {{ neutron_bridge_name }} {{ neutron_interface }} + register: status + changed_when: status.stdout.find('changed') != -1 + - include: ../../start.yml vars: container_environment: diff --git a/ansible/roles/neutron/templates/ml2_conf.ini.j2 b/ansible/roles/neutron/templates/ml2_conf.ini.j2 index f994ba1a15fe449ec8ab64ccf16235f2983c3692..772e8fd9d21876be8be4d38a7544c6cb127fb7e7 100644 --- a/ansible/roles/neutron/templates/ml2_conf.ini.j2 +++ b/ansible/roles/neutron/templates/ml2_conf.ini.j2 @@ -31,5 +31,5 @@ arp_responder = true #enable_distributed_routing = true [ovs] -local_ip = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }} -bridge_mappings = external:{{ neutron_interface }} +local_ip = {{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }} +bridge_mappings = external:{{ neutron_bridge_name }} diff --git a/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile b/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile index c34d72302b5506455ba025b6ccf59222002f13df..60989c846c6704092ef0cabe95654a0ab222610b 100644 --- a/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile +++ b/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile @@ -3,6 +3,6 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla) COPY ./start.sh /start.sh -COPY config-internal.sh config-external.sh /opt/kolla/ +COPY ovs_ensure_configured.sh config-internal.sh config-external.sh /opt/kolla/ CMD ["/start.sh"] diff --git a/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh b/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh new file mode 120000 index 0000000000000000000000000000000000000000..19efaf06a1521d3534198d185d82fef6ffbfab69 --- /dev/null +++ b/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh @@ -0,0 +1 @@ +../../../../common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh \ No newline at end of file diff --git a/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh b/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh new file mode 100755 index 0000000000000000000000000000000000000000..c39d64ff7ae9003619981d9951f65c16cbd9d68a --- /dev/null +++ b/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +bridge=$1 +port=$2 + +ovs-vsctl br-exists $bridge; rc=$? +if [[ $rc == 2 ]]; then + changed=changed + ovs-vsctl add-br $bridge +fi + +if [[ ! $(ovs-vsctl list-ports $bridge) =~ $(echo "\<$port\>") ]]; then + changed=changed + ovs-vsctl add-port $bridge $port +fi + +echo $changed diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 63bf15f5f423d9f502c072c5d0129299f34f8b98..adfa1c347733c79f3fb085f0a460262bc9042ef8 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -54,12 +54,12 @@ docker_restart_policy_retry: "10" #################### # The interface to use for various services types network_interface: "eth0" +neutron_interface: "eth1" # These can be adjusted for even more customization api_interface: "{{ network_interface }}" storage_interface: "{{ network_interface }}" -neutron_interface: "{{ network_interface }}" - +tunnel_interface: "{{ network_interface }}" #################### # Openstack options