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.

71 lines
2.2 KiB

  1. ---
  2. - name: set dns server for docker
  3. set_fact:
  4. docker_dns_servers: "{{ dns_servers }}"
  5. - name: show docker_dns_servers
  6. debug:
  7. msg: "{{ docker_dns_servers }}"
  8. - name: set base docker dns facts
  9. set_fact:
  10. docker_dns_search_domains:
  11. - 'default.svc.{{ dns_domain }}'
  12. - 'svc.{{ dns_domain }}'
  13. docker_dns_options:
  14. - ndots:{{ ndots }}
  15. - timeout:2
  16. - attempts:2
  17. - name: add upstream dns servers
  18. set_fact:
  19. docker_dns_servers: "{{ docker_dns_servers + upstream_dns_servers|default([]) }}"
  20. when: dns_mode in ['coredns', 'coredns_dual']
  21. - name: add global searchdomains
  22. set_fact:
  23. docker_dns_search_domains: "{{ docker_dns_search_domains + searchdomains|default([]) }}"
  24. - name: check system nameservers
  25. shell: grep "^nameserver" /etc/resolv.conf | sed 's/^nameserver\s*//'
  26. changed_when: False
  27. register: system_nameservers
  28. check_mode: no
  29. - name: check system search domains
  30. shell: grep "^search" /etc/resolv.conf | sed 's/^search\s*//'
  31. changed_when: False
  32. register: system_search_domains
  33. check_mode: no
  34. - name: add system nameservers to docker options
  35. set_fact:
  36. docker_dns_servers: "{{ docker_dns_servers | union(system_nameservers.stdout_lines) | unique }}"
  37. when: system_nameservers.stdout
  38. - name: add system search domains to docker options
  39. set_fact:
  40. docker_dns_search_domains: "{{ docker_dns_search_domains | union(system_search_domains.stdout.split()|default([])) | unique }}"
  41. when: system_search_domains.stdout
  42. - name: check number of nameservers
  43. fail:
  44. msg: "Too many nameservers. You can relax this check by set docker_dns_servers_strict=false in all.yml and we will only use the first 3."
  45. when: docker_dns_servers|length > 3 and docker_dns_servers_strict|bool
  46. - name: rtrim number of nameservers to 3
  47. set_fact:
  48. docker_dns_servers: "{{ docker_dns_servers[0:3] }}"
  49. when: docker_dns_servers|length > 3 and not docker_dns_servers_strict|bool
  50. - name: check number of search domains
  51. fail:
  52. msg: "Too many search domains"
  53. when: docker_dns_search_domains|length > 6
  54. - name: check length of search domains
  55. fail:
  56. msg: "Search domains exceeded limit of 256 characters"
  57. when: docker_dns_search_domains|join(' ')|length > 256