---
- import_tasks: config-host.yml

# Pin release version for rolling upgrades
# This is only needed when performing a slow rolling upgrade process
# where you need to maintain compatibility between different versions
# during the upgrade. For direct version jumps, this section can be skipped.
- import_tasks: config.yml
  vars:
    pin_release_version: "{{ ironic_pin_release_version }}"
  when: ironic_pin_release_version | length > 0

- import_tasks: check-containers.yml

- import_tasks: bootstrap_service.yml

# TODO(donghm): Flush_handlers to restart ironic services
# should be run in serial nodes to decrease downtime. Update when
# the module ansible strategy for rolling upgrade is finished.

# Restart ironic services with pinned release version
- name: Flush handlers
  meta: flush_handlers

# Unpin version
- import_tasks: config.yml

- import_tasks: check-containers.yml

# Restart ironic services with unpinned release version
- name: Flush handlers
  meta: flush_handlers

- name: Running Ironic online data migration
  vars:
    ironic_api: "{{ ironic_services['ironic-api'] }}"
  become: true
  kolla_container:
    action: "start_container"
    common_options: "{{ docker_common_options }}"
    detach: False
    environment:
      KOLLA_OSM:
      KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
    image: "{{ ironic_api.image }}"
    labels:
      BOOTSTRAP:
    name: "bootstrap_ironic"
    restart_policy: oneshot
    volumes: "{{ ironic_api.volumes }}"
  run_once: True
  delegate_to: "{{ groups[ironic_api.group][0] }}"
  when: inventory_hostname in groups[ironic_api.group]
