main.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. ---
  2. - name: Calico Node | Error if invalid cert arguments
  3. fail:
  4. msg: "Must provide all or none for the following etcd params: calico_etcd_cert_dir, calico_etcd_ca_cert_file, calico_etcd_cert_file, calico_etcd_key_file, calico_etcd_endpoints"
  5. when: (calico_etcd_cert_dir is defined or calico_etcd_ca_cert_file is defined or calico_etcd_cert_file is defined or calico_etcd_key_file is defined or calico_etcd_endpoints is defined) and not (calico_etcd_cert_dir is defined and calico_etcd_ca_cert_file is defined and calico_etcd_cert_file is defined and calico_etcd_key_file is defined and calico_etcd_endpoints is defined)
  6. - name: Calico Node | Generate OpenShift-etcd certs
  7. include: ../../../roles/etcd_client_certificates/tasks/main.yml
  8. when: calico_etcd_ca_cert_file is not defined or calico_etcd_cert_file is not defined or calico_etcd_key_file is not defined or calico_etcd_endpoints is not defined or calico_etcd_cert_dir is not defined
  9. vars:
  10. etcd_cert_prefix: calico.etcd-
  11. etcd_cert_config_dir: "{{ openshift.common.config_base }}/calico"
  12. embedded_etcd: "{{ hostvars[groups.oo_first_master.0].openshift.master.embedded_etcd }}"
  13. etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
  14. etcd_cert_subdir: "openshift-calico-{{ openshift.common.hostname }}"
  15. - name: Calico Node | Set etcd cert location facts
  16. when: calico_etcd_ca_cert_file is not defined or calico_etcd_cert_file is not defined or calico_etcd_key_file is not defined or calico_etcd_endpoints is not defined or calico_etcd_cert_dir is not defined
  17. set_fact:
  18. calico_etcd_ca_cert_file: "/etc/origin/calico/calico.etcd-ca.crt"
  19. calico_etcd_cert_file: "/etc/origin/calico/calico.etcd-client.crt"
  20. calico_etcd_key_file: "/etc/origin/calico/calico.etcd-client.key"
  21. calico_etcd_endpoints: "{{ hostvars[groups.oo_first_master.0].openshift.master.etcd_urls | join(',') }}"
  22. calico_etcd_cert_dir: "/etc/origin/calico/"
  23. - name: Calico Node | Error if no certs set.
  24. fail:
  25. msg: "Invalid etcd configuration for calico."
  26. when: item is not defined or item == ''
  27. with_items:
  28. - calico_etcd_ca_cert_file
  29. - calico_etcd_cert_file
  30. - calico_etcd_key_file
  31. - calico_etcd_endpoints
  32. - name: Calico Node | Assure the calico certs are present
  33. stat:
  34. path: "{{ item }}"
  35. with_items:
  36. - "{{ calico_etcd_ca_cert_file }}"
  37. - "{{ calico_etcd_cert_file }}"
  38. - "{{ calico_etcd_key_file }}"
  39. - name: Calico Node | Configure Calico service unit file
  40. template:
  41. dest: "/lib/systemd/system/calico.service"
  42. src: calico.service.j2
  43. - name: Calico Node | Enable calico
  44. become: yes
  45. systemd:
  46. name: calico
  47. daemon_reload: yes
  48. state: started
  49. enabled: yes
  50. register: start_result
  51. - name: Calico Node | Assure CNI conf dir exists
  52. become: yes
  53. file: path="{{ cni_conf_dir }}" state=directory
  54. - name: Calico Node | Generate Calico CNI config
  55. become: yes
  56. template:
  57. src: "10-calico.conf.j2"
  58. dest: "{{ cni_conf_dir }}/10-calico.conf"
  59. - name: Calico Node | Assures Kuberentes CNI bin dir exists
  60. become: yes
  61. file: path="{{ cni_bin_dir }}" state=directory
  62. - name: Calico Node | Download Calico CNI Plugin
  63. become: yes
  64. get_url:
  65. url: "{{ calico_url_cni }}"
  66. dest: "{{ cni_bin_dir }}"
  67. mode: a+x
  68. - name: Calico Node | Download Calico IPAM Plugin
  69. become: yes
  70. get_url:
  71. url: "{{ calico_url_ipam }}"
  72. dest: "{{ cni_bin_dir }}"
  73. mode: a+x
  74. - name: Calico Node | Download and extract standard CNI plugins
  75. become: yes
  76. unarchive:
  77. remote_src: True
  78. src: "{{ cni_url }}"
  79. dest: "{{ cni_bin_dir }}"
  80. - name: Calico Node | Assure Calico conf dir exists
  81. become: yes
  82. file: path=/etc/calico/ state=directory
  83. - name: Calico Node | Set calicoctl.cfg
  84. template:
  85. src: calicoctl.cfg.j2
  86. dest: "/etc/calico/calicoctl.cfg"