---
- hosts: primary
  environment:
    KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
  tasks:
    # NOTE(mgoddard): The kayobe dev config by default expects a bridge -
    # breth1 - to exist with an IP address of 192.168.33.3.
    - import_role:
        name: kayobe-network-bootstrap
      vars:
        bridge_interface: breth1
        bridge_ip: 192.168.33.3
        bridge_prefix: 24
        bridge_port_interface: dummy1

    # NOTE(mgoddard): Use the name zz-20-overrides.yml to ensure this takes
    # precedence over the standard config files, but can control order with the
    # priority (number after zz).
    - name: Ensure kayobe-config override config file exists
      template:
        src: overrides.yml.j2
        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-20-overrides.yml"

    - name: Ensure kolla-ansible globals.yml override config file exists
      template:
        src: globals.yml.j2
        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"

    - name: Configure Tenks to use UEFI boot mode
      replace:
        path: "{{ kayobe_src_dir }}/dev/tenks-deploy-config-compute.yml"
        regexp: '^default_boot_mode: .*$'
        replace: 'default_boot_mode: "uefi"'
      when: ironic_boot_mode == 'uefi'

    - name: Ensure baremetal inventory exists
      template:
        src: baremetal.j2
        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/inventory/baremetal"

    - name: Ensure baremetal-compute group_vars exists
      template:
        src: baremetal-compute.j2
        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/inventory/group_vars/baremetal-compute"

    - name: Ensure kayobe is installed
      shell:
        cmd: dev/install.sh &> {{ logs_dir }}/ansible/install
        chdir: "{{ kayobe_src_dir }}"
        executable: /bin/bash

    - name: Configure the firewall
      shell:
        cmd: dev/configure-firewall.sh
        chdir: "{{ kayobe_src_dir }}"
        executable: /bin/bash
