Comment 0 for bug 1971488

Revision history for this message
Juan Pablo Suazo (jsuazo) wrote : OpenVSwitch playbook does not allow controllers without OVS

Tasks `Set system-id` an `Ensuring OVS bridge is properly setup` from the `ansible/roles/openvswitch/tasks/post-config.yml` assumes controller nodes are also network nodes.

If this is not the case, the tasks attempt to run commands against OpenVSwitch containers that are not present, stopping the deployment of openstack.

- name: Set system-id
  become: true
  command: docker exec openvswitch_vswitchd ovs-vsctl set Open_vSwitch . external_ids:system-id={{ openvswitch_system_id }}

- name: Ensuring OVS bridge is properly setup
  become: true
  command: docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured {{ item.0 }} {{ item.1 }}
  register: status
  changed_when: status.stdout.find('changed') != -1
  when:
    - inventory_hostname in groups["network"]
      or (inventory_hostname in groups["compute"] and computes_need_external_bridge | bool )
  with_together:
    - "{{ neutron_bridge_name.split(',') }}"
    - "{{ neutron_external_interface.split(',') }}"

Found this bug in our victoria deployment when configuring some nodes to be ONLY control nodes. As this nodes do not have OpenVSwitch services running on them, this tasks fail when attempting to run this commands against their containers.