---
- name: Calico | Install calicoctl bin
  copy:
     src={{ local_release_dir }}/calico/bin/calicoctl
     dest={{ bin_dir }}
     mode=u+x
  notify: restart calico-node

- name: Calico | Create calicoctl symlink (needed by kubelet)
  file: src=/usr/local/bin/calicoctl dest=/usr/bin/calicoctl state=link

- name: Calico | Configure calico-node desired pool
  shell: calicoctl pool add {{ kube_pods_subnet }}
  environment:
     ETCD_AUTHORITY: "{{ groups['kube-master'][0] }}:2379"
  run_once: true

- name: Calico | Write calico-node systemd init file
  template: src=calico/calico-node.service.j2 dest=/etc/systemd/system/calico-node.service
  register: newservice
  notify:
    - reload systemd
    - restart calico-node

- name: Calico | daemon-reload
  command: systemctl daemon-reload
  when: newservice|changed
  changed_when: False

- name: Calico | Enable calico-node
  service: name=calico-node enabled=yes state=started

- name: Calico | Disable node mesh
  shell: calicoctl bgp node-mesh off
  when: peer_with_router|default(false) and inventory_hostname in groups['kube-node']

- name: Calico | Configure peering with router(s)
  shell: calicoctl node bgp peer add {{ item.router_id }} as {{ item.as }}
  with_items: peers
  when: peer_with_router|default(false) and inventory_hostname in groups['kube-node']
