---
- name: istio | Create addon dir
  file:
    path: "{{ kube_config_dir }}/addons/istio"
    owner: root
    group: root
    mode: 0755
    recurse: yes

- name: istio | Lay out manifests
  template:
    src: "{{item.file}}.j2"
    dest: "{{kube_config_dir}}/addons/istio/{{item.file}}"
  with_items:
    - {name: istio-mixer, file: istio.yml, type: deployment }
    - {name: istio-initializer, file: istio-initializer.yml, type: deployment }
  register: manifests
  when: inventory_hostname == groups['kube-master'][0]

- name: istio | Copy istioctl binary from download dir
  command: rsync -piu "{{ local_release_dir }}/istio/istioctl" "{{ bin_dir }}/istioctl"
  changed_when: false

- name: istio | Set up bash completion
  shell: "{{ bin_dir }}/istioctl completion >/etc/bash_completion.d/istioctl.sh"
  when: ansible_os_family in ["Debian","RedHat"]

- name: istio | Set bash completion file
  file:
    path: /etc/bash_completion.d/istioctl.sh
    owner: root
    group: root
    mode: 0755
  when: ansible_os_family in ["Debian","RedHat"]

- name: istio | apply manifests
  kube:
    name: "{{item.item.name}}"
    namespace: "{{ istio_namespace }}"
    kubectl: "{{bin_dir}}/kubectl"
    resource: "{{item.item.type}}"
    filename: "{{kube_config_dir}}/addons/istio/{{item.item.file}}"
    state: "latest"
  with_items: "{{ manifests.results }}"
  when: inventory_hostname == groups['kube-master'][0]