You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

  1. ---
  2. - name: Canal | Write Canal cni config
  3. template:
  4. src: "cni-canal.conflist.j2"
  5. dest: "/etc/cni/net.d/canal.conflist.template"
  6. owner: kube
  7. register: canal_conflist
  8. notify: reset_canal_cni
  9. - name: Canal | Create canal certs directory
  10. file:
  11. dest: "{{ canal_cert_dir }}"
  12. state: directory
  13. mode: 0750
  14. owner: root
  15. group: root
  16. - name: Canal | Link etcd certificates for canal-node
  17. file:
  18. src: "{{ etcd_cert_dir }}/{{ item.s }}"
  19. dest: "{{ canal_cert_dir }}/{{ item.d }}"
  20. state: hard
  21. force: yes
  22. with_items:
  23. - {s: "{{ kube_etcd_cacert_file }}", d: "ca_cert.crt"}
  24. - {s: "{{ kube_etcd_cert_file }}", d: "cert.crt"}
  25. - {s: "{{ kube_etcd_key_file }}", d: "key.pem"}
  26. # Flannel need etcd v2 API
  27. - name: Canal | Set Flannel etcd configuration
  28. command: |-
  29. {{ bin_dir }}/etcdctl set /{{ cluster_name }}/network/config \
  30. '{ "Network": "{{ kube_pods_subnet }}", "SubnetLen": {{ kube_network_node_prefix }}, "Backend": { "Type": "{{ flannel_backend_type }}" } }'
  31. register: output
  32. retries: 4
  33. until: output.rc == 0
  34. delay: "{{ retry_stagger | random + 3 }}"
  35. delegate_to: "{{ groups['etcd'][0] }}"
  36. changed_when: false
  37. run_once: true
  38. environment:
  39. ETCDCTL_API: 2
  40. ETCDCTL_CA_FILE: "{{ etcd_cert_dir }}/ca.pem"
  41. ETCDCTL_CERT_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd'][0] }}.pem"
  42. ETCDCTL_KEY_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd'][0] }}-key.pem"
  43. ETCDCTL_ENDPOINTS: "{{ etcd_access_addresses }}"
  44. - name: Canal | Create canal node manifests
  45. template:
  46. src: "{{ item.file }}.j2"
  47. dest: "{{ kube_config_dir }}/{{ item.file }}"
  48. with_items:
  49. - {name: canal-config, file: canal-config.yaml, type: cm}
  50. - {name: canal-node, file: canal-node.yaml, type: ds}
  51. - {name: canal, file: canal-node-sa.yml, type: sa}
  52. - {name: calico, file: canal-cr-calico.yml, type: clusterrole}
  53. - {name: flannel, file: canal-cr-flannel.yml, type: clusterrole}
  54. - {name: canal-calico, file: canal-crb-calico.yml, type: clusterrolebinding}
  55. - {name: canal-flannel, file: canal-crb-flannel.yml, type: clusterrolebinding}
  56. register: canal_manifests
  57. when:
  58. - inventory_hostname in groups['kube_control_plane']
  59. - name: Canal | Install calicoctl wrapper script
  60. template:
  61. src: calicoctl.sh.j2
  62. dest: "{{ bin_dir }}/calicoctl.sh"
  63. mode: 0755
  64. owner: root
  65. group: root
  66. - name: Canal | Create network policy directory
  67. file:
  68. path: "{{ canal_policy_dir }}"
  69. state: directory