---
- hosts: primary
  tasks:
    - name: Ensure previous kayobe directory exists
      file:
        path: "{{ previous_kayobe_src_dir }}"
        state: directory

    - name: Ensure previous kayobe repository is cloned
      command: >-
        git clone {{ kayobe_src_dir }} {{ previous_kayobe_src_dir }} -b stable/{{ previous_release | lower }}

    - name: Ensure previous kayobe-config directory exists
      file:
        path: "{{ previous_kayobe_config_src_dir }}"
        state: directory

    - name: Ensure kayobe-config repository is cloned
      command: >-
        git clone {{ kayobe_config_src_dir }} {{ previous_kayobe_config_src_dir }} -b stable/{{ previous_release | lower }}

    # NOTE(mgoddard): Use the name zz-overrides.yml to ensure this takes
    # precedence over the standard config files.
    - name: Ensure kayobe-config override config file exists
      template:
        src: overrides.yml.j2
        dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
      vars:
        is_previous_release: true

    - name: Ensure bifrost overrides directory exists
      file:
        path: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/config/bifrost"
        state: "directory"

    - name: Ensure bifrost overrides file exists
      template:
        src: bifrost-overrides.yml.j2
        dest: "{{ previous_kayobe_config_src_dir }}/etc/kayobe/kolla/config/bifrost/bifrost.yml"

    # NOTE(mgoddard): The kayobe dev config by default expects a bridge -
    # breth1 - to exist on the seed with an IP address of 192.168.33.5.
    - name: Ensure all-in-one network bridge interface exists
      command: "{{ item }}"
      become: true
      with_items:
        - "ip l add breth1 type bridge"
        - "ip l set breth1 up"
        - "ip a add 192.168.33.5/24 dev breth1"
