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.

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