|
@@ -1,104 +1,6 @@
|
|
|
---
|
|
|
-- name: "Generate list of private A records"
|
|
|
- set_fact:
|
|
|
- private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'] + openshift_openstack_private_hostname_suffix, 'ip': hostvars[item]['private_v4'] } ] }}"
|
|
|
- with_items: "{{ groups['cluster_hosts'] }}"
|
|
|
-
|
|
|
-- name: "Add wildcard records to the private A records for infrahosts"
|
|
|
- set_fact:
|
|
|
- private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_openstack_app_subdomain, 'ip': hostvars[item]['private_v4'] } ] }}"
|
|
|
- with_items: "{{ groups['infra_hosts'] }}"
|
|
|
-
|
|
|
-- name: "Add public master cluster hostname records to the private A records (single master)"
|
|
|
- set_fact:
|
|
|
- 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 } ] }}"
|
|
|
- when:
|
|
|
- - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
|
|
|
- - openshift_openstack_num_masters == 1
|
|
|
-
|
|
|
-- name: "Add public master cluster hostname records to the private A records (multi-master)"
|
|
|
- set_fact:
|
|
|
- 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 } ] }}"
|
|
|
- when:
|
|
|
- - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
|
|
|
- - openshift_openstack_num_masters > 1
|
|
|
-
|
|
|
-- name: "Set the private DNS server to use the external value (if provided)"
|
|
|
- set_fact:
|
|
|
- nsupdate_server_private: "{{ openshift_openstack_external_nsupdate_keys['private']['server'] }}"
|
|
|
- nsupdate_key_secret_private: "{{ openshift_openstack_external_nsupdate_keys['private']['key_secret'] }}"
|
|
|
- nsupdate_key_algorithm_private: "{{ openshift_openstack_external_nsupdate_keys['private']['key_algorithm'] }}"
|
|
|
- nsupdate_private_key_name: "{{ openshift_openstack_external_nsupdate_keys['private']['key_name']|default('private-' + openshift_openstack_full_dns_domain) }}"
|
|
|
- when:
|
|
|
- - openshift_openstack_external_nsupdate_keys['private'] is defined
|
|
|
-
|
|
|
-
|
|
|
-- name: "Generate the private Add section for DNS"
|
|
|
- set_fact:
|
|
|
- private_named_records:
|
|
|
- - view: "private"
|
|
|
- zone: "{{ openshift_openstack_full_dns_domain }}"
|
|
|
- server: "{{ nsupdate_server_private }}"
|
|
|
- key_name: "{{ nsupdate_private_key_name|default('private-' + openshift_openstack_full_dns_domain) }}"
|
|
|
- key_secret: "{{ nsupdate_key_secret_private }}"
|
|
|
- key_algorithm: "{{ nsupdate_key_algorithm_private | lower }}"
|
|
|
- entries: "{{ private_records }}"
|
|
|
- when:
|
|
|
- - openshift_openstack_external_nsupdate_keys['private'] is defined
|
|
|
-
|
|
|
-- name: "Generate list of public A records"
|
|
|
- set_fact:
|
|
|
- public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'] + openshift_openstack_public_hostname_suffix, 'ip': hostvars[item]['public_v4'] } ] }}"
|
|
|
- with_items: "{{ groups['cluster_hosts'] }}"
|
|
|
- when: hostvars[item]['public_v4'] is defined
|
|
|
-
|
|
|
-- name: "Add wildcard records to the public A records"
|
|
|
- set_fact:
|
|
|
- public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_openstack_app_subdomain, 'ip': hostvars[item]['public_v4'] } ] }}"
|
|
|
- with_items: "{{ groups['infra_hosts'] }}"
|
|
|
- when: hostvars[item]['public_v4'] is defined
|
|
|
-
|
|
|
-- name: "Add public master cluster hostname records to the public A records (single master)"
|
|
|
- set_fact:
|
|
|
- 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': hostvars[groups.masters[0]].public_v4 } ] }}"
|
|
|
- when:
|
|
|
- - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
|
|
|
- - openshift_openstack_num_masters == 1
|
|
|
-
|
|
|
-- name: "Add public master cluster hostname records to the public A records (multi-master)"
|
|
|
- set_fact:
|
|
|
- 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': hostvars[groups.lb[0]].public_v4 } ] }}"
|
|
|
- when:
|
|
|
- - hostvars[groups.masters[0]].openshift_master_cluster_public_hostname is defined
|
|
|
- - openshift_openstack_num_masters > 1
|
|
|
-
|
|
|
-- name: "Set the public DNS server details to use the external value (if provided)"
|
|
|
- set_fact:
|
|
|
- nsupdate_server_public: "{{ openshift_openstack_external_nsupdate_keys['public']['server'] }}"
|
|
|
- nsupdate_key_secret_public: "{{ openshift_openstack_external_nsupdate_keys['public']['key_secret'] }}"
|
|
|
- nsupdate_key_algorithm_public: "{{ openshift_openstack_external_nsupdate_keys['public']['key_algorithm'] }}"
|
|
|
- nsupdate_public_key_name: "{{ openshift_openstack_external_nsupdate_keys['public']['key_name']|default('public-' + openshift_openstack_full_dns_domain) }}"
|
|
|
- when:
|
|
|
- - openshift_openstack_external_nsupdate_keys['public'] is defined
|
|
|
-
|
|
|
-- name: "Generate the public Add section for DNS"
|
|
|
- set_fact:
|
|
|
- public_named_records:
|
|
|
- - view: "public"
|
|
|
- zone: "{{ openshift_openstack_full_dns_domain }}"
|
|
|
- server: "{{ nsupdate_server_public }}"
|
|
|
- key_name: "{{ nsupdate_public_key_name|default('public-' + openshift_openstack_full_dns_domain) }}"
|
|
|
- key_secret: "{{ nsupdate_key_secret_public }}"
|
|
|
- key_algorithm: "{{ nsupdate_key_algorithm_public | lower }}"
|
|
|
- entries: "{{ public_records }}"
|
|
|
- when:
|
|
|
- - openshift_openstack_external_nsupdate_keys['public'] is defined
|
|
|
-
|
|
|
-
|
|
|
-- name: "Generate the final openshift_openstack_dns_records_add"
|
|
|
- set_fact:
|
|
|
- openshift_openstack_dns_records_add: "{{ private_named_records|default([]) + public_named_records|default([]) }}"
|
|
|
-
|
|
|
+- name: Generate DNS records
|
|
|
+ include_tasks: generate-dns.yml
|
|
|
|
|
|
- name: "Add DNS A records"
|
|
|
nsupdate:
|
|
@@ -113,7 +15,7 @@
|
|
|
# TODO(shadower): add a cleanup playbook that removes these records, too!
|
|
|
state: present
|
|
|
with_subelements:
|
|
|
- - "{{ openshift_openstack_dns_records_add | default([]) }}"
|
|
|
+ - "{{ openshift_openstack_dns_records | default([]) }}"
|
|
|
- entries
|
|
|
register: nsupdate_add_result
|
|
|
until: nsupdate_add_result is succeeded
|