generate-dns.yml 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. ---
  2. - name: "Generate list of private A records"
  3. set_fact:
  4. private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'] + openshift_openstack_private_hostname_suffix, 'ip': hostvars[item]['private_v4'] } ] }}"
  5. with_items: "{{ groups['cluster_hosts'] }}"
  6. - name: "Add wildcard records to the private A records for infrahosts"
  7. set_fact:
  8. private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_openstack_app_subdomain, 'ip': hostvars[item]['private_v4'] } ] }}"
  9. with_items: "{{ groups['infra_hosts'] }}"
  10. - name: "Add public master cluster hostname records to the private A records (single master)"
  11. set_fact:
  12. private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': (hostvars[groups.masters[0]].openshift_master_cluster_public_hostname | replace(openshift_openstack_full_dns_domain, ''))[:-1], 'ip': hostvars[groups.masters[0]].private_v4 } ] }}"
  13. when:
  14. - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
  15. - openshift_openstack_num_masters == 1
  16. - name: "Add public master cluster hostname records to the private A records (multi-master)"
  17. set_fact:
  18. private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': (hostvars[groups.masters[0]].openshift_master_cluster_public_hostname | replace(openshift_openstack_full_dns_domain, ''))[:-1], 'ip': hostvars[groups.lb[0]].private_v4 } ] }}"
  19. when:
  20. - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
  21. - openshift_openstack_num_masters > 1
  22. - name: "Set the private DNS server to use the external value (if provided)"
  23. set_fact:
  24. nsupdate_server_private: "{{ openshift_openstack_external_nsupdate_keys['private']['server'] }}"
  25. nsupdate_key_secret_private: "{{ openshift_openstack_external_nsupdate_keys['private']['key_secret'] }}"
  26. nsupdate_key_algorithm_private: "{{ openshift_openstack_external_nsupdate_keys['private']['key_algorithm'] }}"
  27. nsupdate_private_key_name: "{{ openshift_openstack_external_nsupdate_keys['private']['key_name']|default('private-' + openshift_openstack_full_dns_domain) }}"
  28. when:
  29. - openshift_openstack_external_nsupdate_keys['private'] is defined
  30. - name: "Generate the private Add section for DNS"
  31. set_fact:
  32. private_named_records:
  33. - view: "private"
  34. zone: "{{ openshift_openstack_full_dns_domain }}"
  35. server: "{{ nsupdate_server_private }}"
  36. key_name: "{{ nsupdate_private_key_name|default('private-' + openshift_openstack_full_dns_domain) }}"
  37. key_secret: "{{ nsupdate_key_secret_private }}"
  38. key_algorithm: "{{ nsupdate_key_algorithm_private | lower }}"
  39. entries: "{{ private_records }}"
  40. when:
  41. - openshift_openstack_external_nsupdate_keys['private'] is defined
  42. - name: "Generate list of public A records"
  43. set_fact:
  44. public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'] + openshift_openstack_public_hostname_suffix, 'ip': hostvars[item]['public_v4'] } ] }}"
  45. with_items: "{{ groups['cluster_hosts'] }}"
  46. when: hostvars[item]['public_v4'] is defined
  47. - name: "Add wildcard record to the public A records"
  48. set_fact:
  49. public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_openstack_app_subdomain, 'ip': openshift_openstack_public_router_ip } ] }}"
  50. - name: "Add the public API entry point record"
  51. set_fact:
  52. public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': (hostvars[groups.masters[0]].openshift_master_cluster_public_hostname | replace(openshift_openstack_full_dns_domain, ''))[:-1], 'ip': openshift_openstack_public_api_ip } ] }}"
  53. - name: "Set the public DNS server details to use the external value (if provided)"
  54. set_fact:
  55. nsupdate_server_public: "{{ openshift_openstack_external_nsupdate_keys['public']['server'] }}"
  56. nsupdate_key_secret_public: "{{ openshift_openstack_external_nsupdate_keys['public']['key_secret'] }}"
  57. nsupdate_key_algorithm_public: "{{ openshift_openstack_external_nsupdate_keys['public']['key_algorithm'] }}"
  58. nsupdate_public_key_name: "{{ openshift_openstack_external_nsupdate_keys['public']['key_name']|default('public-' + openshift_openstack_full_dns_domain) }}"
  59. when:
  60. - openshift_openstack_external_nsupdate_keys['public'] is defined
  61. - name: "Generate the public Add section for DNS"
  62. set_fact:
  63. public_named_records:
  64. - view: "public"
  65. zone: "{{ openshift_openstack_full_dns_domain }}"
  66. server: "{{ nsupdate_server_public }}"
  67. key_name: "{{ nsupdate_public_key_name|default('public-' + openshift_openstack_full_dns_domain) }}"
  68. key_secret: "{{ nsupdate_key_secret_public }}"
  69. key_algorithm: "{{ nsupdate_key_algorithm_public | lower }}"
  70. entries: "{{ public_records }}"
  71. when:
  72. - openshift_openstack_external_nsupdate_keys['public'] is defined
  73. - name: "Generate the final openshift_openstack_dns_records"
  74. set_fact:
  75. openshift_openstack_dns_records: "{{ private_named_records|default([]) + public_named_records|default([]) }}"