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.

56 lines
1.8 KiB

  1. ---
  2. - name: Kubernetes Apps | Check cluster settings for MetalLB
  3. fail:
  4. msg: "MetalLB require kube_proxy_strict_arp = true, see https://github.com/danderson/metallb/issues/153#issuecomment-518651132"
  5. when:
  6. - "kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp"
  7. - name: Kubernetes Apps | Check cluster settings for MetalLB
  8. fail:
  9. msg: "metallb_ip_range is mandatory to be specified for MetalLB"
  10. when:
  11. - metallb_ip_range is not defined or not metallb_ip_range
  12. - name: Kubernetes Apps | Check BGP peers for MetalLB
  13. fail:
  14. msg: "metallb_peers is mandatory when metallb_protocol is bgp and metallb_speaker_enabled"
  15. when:
  16. - metallb_protocol == 'bgp' and metallb_speaker_enabled
  17. - metallb_peers is not defined or not metallb_peers
  18. - name: Kubernetes Apps | Check AppArmor status
  19. command: which apparmor_parser
  20. register: apparmor_status
  21. when:
  22. - podsecuritypolicy_enabled
  23. - inventory_hostname == groups['kube_control_plane'][0]
  24. failed_when: false
  25. - name: Kubernetes Apps | Set apparmor_enabled
  26. set_fact:
  27. apparmor_enabled: "{{ apparmor_status.rc == 0 }}"
  28. when:
  29. - podsecuritypolicy_enabled
  30. - inventory_hostname == groups['kube_control_plane'][0]
  31. - name: Kubernetes Apps | Lay Down MetalLB
  32. become: true
  33. template:
  34. src: "{{ item }}.j2"
  35. dest: "{{ kube_config_dir }}/{{ item }}"
  36. mode: 0644
  37. with_items: ["metallb.yml", "metallb-config.yml"]
  38. register: "rendering"
  39. when:
  40. - "inventory_hostname == groups['kube_control_plane'][0]"
  41. - name: Kubernetes Apps | Install and configure MetalLB
  42. kube:
  43. name: "MetalLB"
  44. kubectl: "{{ bin_dir }}/kubectl"
  45. filename: "{{ kube_config_dir }}/{{ item.item }}"
  46. state: "{{ item.changed | ternary('latest','present') }}"
  47. become: true
  48. with_items: "{{ rendering.results }}"
  49. when:
  50. - "inventory_hostname == groups['kube_control_plane'][0]"