Files
kolla-ansible/ansible/roles/service-check-containers/tasks/main.yml
Michal Nasiadka 8670c3f9d3 ovn: Add support for OVN SB Relay
Add support for deploying OVN SB relays [1].
This is enabled by default to improve large scale scenarios.

Default mechanism deploys one relay group per 50 ovn-controller hosts
and uses random but idempotent method to choose a relay for a given host.

neutron-server and Octavia will connect directly to SB cluster, not via
the relays.

kolla-ansible check subcommand does not support ,,iterated'' containers
for now - but will be introduced in a subsequent patch.

[1]: https://docs.ovn.org/en/latest/tutorials/ovn-ovsdb-relay.html

Co-Authored-By: Krzysztof Tomaszewski <ktomaszewski@cloudferro.com>

Depends-On: https://review.opendev.org/c/openstack/kolla/+/928898

Change-Id: Id7d6973668d8b2b194913b533f8cb756c6708536
2025-03-20 13:50:53 +00:00

51 lines
2.4 KiB
YAML

---
# NOTE(r-krcek): List of arguments should follow argument_spec in
# kolla_container module
- name: "{{ kolla_role_name | default(project_name) }} | Check containers"
become: true
vars:
service: "{{ item.value }}"
kolla_container:
action: "compare_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image | default(omit) }}"
volumes: "{{ service.volumes | default(omit) }}"
dimensions: "{{ service.dimensions | default(omit) }}"
tmpfs: "{{ service.tmpfs | default(omit) }}"
volumes_from: "{{ service.volumes_from | default(omit) }}"
privileged: "{{ service.privileged | default(omit) }}"
cap_add: "{{ service.cap_add | default(omit) }}"
environment: "{{ service.environment | default(omit) }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
ipc_mode: "{{ service.ipc_mode | default(omit) }}"
pid_mode: "{{ service.pid_mode | default(omit) }}"
security_opt: "{{ service.security_opt | default(omit) }}"
labels: "{{ service.labels | default(omit) }}"
command: "{{ service.command | default(omit) }}"
cgroupns_mode: "{{ service.cgroupns_mode | default(omit) }}"
with_dict: "{{ lookup('vars', (kolla_role_name | default(project_name)) + '_services') | select_services_enabled_and_mapped_to_host }}"
when: not (service.iterate | default(False)) | bool
register: container_check
# NOTE(yoctozepto): Must be a separate task because one cannot see the whole
# result in the previous task and Ansible has a quirk regarding notifiers.
# For details see https://github.com/ansible/ansible/issues/22579
- name: "{{ kolla_role_name | default(project_name) }} | Notify handlers to restart containers"
vars:
service: "{{ item.value }}"
debug:
msg: Notifying handlers
changed_when: container_check is changed
when: not (service.iterate | default(False)) | bool
notify: "{{ container_check.results | select('changed') | map(attribute='item.key') | map('regex_replace', '^(.*)$', 'Restart \\1 container') | list }}"
- name: Include tasks
vars:
service: "{{ outer_item.value }}"
include_tasks: iterated.yml
loop: "{{ lookup('vars', (kolla_role_name | default(project_name)) + '_services') | select_services_enabled_and_mapped_to_host | dict2items }}"
loop_control:
loop_var: outer_item
when: (service.iterate | default(False)) | bool