---

- name: Check if bootstrap is needed
  raw: which python
  register: need_bootstrap
  failed_when: false
  changed_when: false
  tags:
    - facts

- name: Remove podman network cni
  raw: "podman network rm podman"
  become: true
  ignore_errors: yes
  when: need_bootstrap.rc != 0

- name: Clean up possible pending packages on fedora coreos
  raw: "export http_proxy={{ http_proxy | default('') }};rpm-ostree cleanup -p }}"
  become: true
  when: need_bootstrap.rc != 0

  # Because the package "python3-libselinux" has a dependency on libselinux,
  # which is a base package in Fedora CoreOS and cannot be upgraded.
  # Temporary disabling update repo allows to install python3-libselinux
  # see https://github.com/coreos/fedora-coreos-tracker/issues/592
- name: Temporary disable fedora updates repo because of base packages conflicts
  raw: "sed -i 's|^enabled=1|enabled=0|g' /etc/yum.repos.d/fedora-updates.repo"
  become: true
  when: need_bootstrap.rc != 0

- name: Install required packages on fedora coreos
  raw: "export http_proxy={{ http_proxy | default('') }};rpm-ostree install --allow-inactive {{ fedora_coreos_packages|join(' ') }}"
  become: true
  when: need_bootstrap.rc != 0

  # see https://github.com/coreos/fedora-coreos-tracker/issues/592
- name: Enable fedora updates repo
  raw: "sed -i 's|^enabled=0|enabled=1|g' /etc/yum.repos.d/fedora-updates.repo"
  become: true
  when: need_bootstrap.rc != 0

  # playbook fails because connection lost
- name: Reboot immediately for updated ostree, please run playbook again if failed first time.
  raw: "nohup bash -c 'sleep 5s && shutdown -r now'"
  become: true
  ignore_errors: yes
  ignore_unreachable: yes
  when: need_bootstrap.rc != 0

- name: Wait for the reboot to complete
  wait_for_connection:
    timeout: 240
    connect_timeout: 20
    delay: 5
    sleep: 5
  when: need_bootstrap.rc != 0

- name: Store the fact if this is an fedora core os host
  set_fact:
    is_fedora_coreos: True
  tags:
    - facts