
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
51 lines
2.4 KiB
YAML
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
|