---
openvswitch_services:
  openvswitch-db-server:
    container_name: "openvswitch_db"
    image: "{{ openvswitch_db_image_full }}"
    enabled: "{{ enable_openvswitch }}"
    group: openvswitch
    host_in_groups: >-
      {{
      inventory_hostname in groups['compute']
      or (enable_manila_backend_generic | 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']
      }}
    volumes: "{{ openvswitch_db_default_volumes + openvswitch_db_extra_volumes }}"
    dimensions: "{{ openvswitch_db_dimensions }}"
    healthcheck: "{{ openvswitch_db_healthcheck }}"
  openvswitch-vswitchd:
    container_name: "openvswitch_vswitchd"
    image: "{{ openvswitch_vswitchd_image_full }}"
    enabled: "{{ enable_openvswitch }}"
    group: openvswitch
    host_in_groups: >-
      {{
      inventory_hostname in groups['compute']
      or (enable_manila_backend_generic | 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']
      }}
    privileged: True
    volumes: "{{ openvswitch_vswitchd_default_volumes + openvswitch_vswitchd_extra_volumes }}"
    dimensions: "{{ openvswitch_vswitchd_dimensions }}"
    healthcheck: "{{ openvswitch_vswitchd_healthcheck }}"

####################
# Docker
####################
openvswitch_tag: "{{ openstack_tag }}"

openvswitch_db_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/openvswitch-db-server"
openvswitch_db_tag: "{{ openvswitch_tag }}"
openvswitch_db_image_full: "{{ openvswitch_db_image }}:{{ openvswitch_db_tag }}"

openvswitch_vswitchd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/openvswitch-vswitchd"
openvswitch_vswitchd_tag: "{{ openvswitch_tag }}"
openvswitch_vswitchd_image_full: "{{ openvswitch_vswitchd_image }}:{{ openvswitch_vswitchd_tag }}"

openvswitch_db_dimensions: "{{ default_container_dimensions }}"
openvswitch_vswitchd_dimensions: "{{ default_container_dimensions }}"

openvswitch_db_enable_healthchecks: "{{ enable_container_healthchecks }}"
openvswitch_db_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
openvswitch_db_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
openvswitch_db_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
openvswitch_db_healthcheck_test: ["CMD-SHELL", "ovsdb-client list-dbs"]
openvswitch_db_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
openvswitch_db_healthcheck:
  interval: "{{ openvswitch_db_healthcheck_interval }}"
  retries: "{{ openvswitch_db_healthcheck_retries }}"
  start_period: "{{ openvswitch_db_healthcheck_start_period }}"
  test: "{% if openvswitch_db_enable_healthchecks | bool %}{{ openvswitch_db_healthcheck_test }}{% else %}NONE{% endif %}"
  timeout: "{{ openvswitch_db_healthcheck_timeout }}"

openvswitch_vswitchd_enable_healthchecks: "{{ enable_container_healthchecks }}"
openvswitch_vswitchd_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
openvswitch_vswitchd_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
openvswitch_vswitchd_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
openvswitch_vswitchd_healthcheck_test: ["CMD-SHELL", "ovs-appctl version"]
openvswitch_vswitchd_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
openvswitch_vswitchd_healthcheck:
  interval: "{{ openvswitch_vswitchd_healthcheck_interval }}"
  retries: "{{ openvswitch_vswitchd_healthcheck_retries }}"
  start_period: "{{ openvswitch_vswitchd_healthcheck_start_period }}"
  test: "{% if openvswitch_vswitchd_enable_healthchecks | bool %}{{ openvswitch_vswitchd_healthcheck_test }}{% else %}NONE{% endif %}"
  timeout: "{{ openvswitch_vswitchd_healthcheck_timeout }}"

openvswitch_db_default_volumes:
  - "{{ node_config_directory }}/openvswitch-db-server/:{{ container_config_directory }}/:ro"
  - "/etc/localtime:/etc/localtime:ro"
  - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
  - "/lib/modules:/lib/modules:ro"
  - "/run/openvswitch:/run/openvswitch:shared"
  - "kolla_logs:/var/log/kolla/"
  - "openvswitch_db:/var/lib/openvswitch/"
openvswitch_vswitchd_default_volumes:
  - "{{ node_config_directory }}/openvswitch-vswitchd/:{{ container_config_directory }}/:ro"
  - "/etc/localtime:/etc/localtime:ro"
  - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
  - "/lib/modules:/lib/modules:ro"
  - "/run/openvswitch:/run/openvswitch:shared"
  - "kolla_logs:/var/log/kolla/"

openvswitch_extra_volumes: "{{ default_extra_volumes }}"
openvswitch_db_extra_volumes: "{{ openvswitch_extra_volumes }}"
openvswitch_vswitchd_extra_volumes: "{{ openvswitch_extra_volumes }}"

openvswitch_ovs_vsctl_wrapper_enabled: false

#############
# OpenvSwitch
#############

openvswitch_system_id: "{{ ansible_facts.hostname }}"
openvswitch_hostname: "{{ ansible_facts.fqdn }}"
openvswitch_hw_offload: "no"
