133 lines
4.3 KiB
YAML
133 lines
4.3 KiB
YAML
- name: Configure DNS records
|
|
hosts: localhost
|
|
|
|
vars_files:
|
|
- vars/dns-vars.yml
|
|
- vars/k8s-vars.yml
|
|
|
|
tasks:
|
|
- name: Check if domain exists
|
|
community.digitalocean.digital_ocean_domain_facts:
|
|
oauth_token: "{{ do_api_token }}"
|
|
register: existing_domains
|
|
|
|
- name: Fail if domain already exists
|
|
fail:
|
|
msg: "Domain {{ full_domain }} already exists."
|
|
when: full_domain in existing_domains.data | map(attribute='name') | list
|
|
|
|
- name: Create a domain
|
|
community.digitalocean.digital_ocean_domain:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
name: "{{ full_domain }}"
|
|
ip: "{{ service_provider_ip }}"
|
|
|
|
- name: Create record for cluster control machine
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
domain: "{{ full_domain }}"
|
|
type: A
|
|
name: "{{ subdomain_prefix }}-cluster-control"
|
|
data: "{{ service_provider_ip }}"
|
|
|
|
- name: Create record for daemon machine
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
domain: "{{ full_domain }}"
|
|
type: A
|
|
name: "{{ org_id }}-daemon"
|
|
data: "{{ service_provider_ip }}"
|
|
|
|
- name: Create CNAME record for www
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: www
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for subdomain
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ subdomain_cluster_control }}.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: "{{ subdomain_prefix }}.{{ full_domain }}"
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for laconicd endpoint
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ org_id }}-daemon.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: "laconicd.{{ full_domain }}"
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for backend
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ org_id }}-daemon.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: "{{ org_id }}-backend.{{ full_domain }}"
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for console
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ org_id }}-daemon.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: "{{ org_id }}-console.{{ full_domain }}"
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for org and location
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
data: "{{ org_id }}-daemon.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
name: "{{ subdomain_prefix }}"
|
|
ttl: 43200
|
|
|
|
- name: Create wildcard CNAME record for subdomain
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
name: "*.{{ subdomain_prefix }}"
|
|
data: "{{ subdomain_prefix }}-cluster-control.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
ttl: 43200
|
|
|
|
- name: Create CNAME record for pwa
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
name: "pwa"
|
|
data: "{{ subdomain_prefix }}-cluster-control.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
ttl: 43200
|
|
|
|
- name: Create wildcard CNAME record for pwa
|
|
community.digitalocean.digital_ocean_domain_record:
|
|
state: present
|
|
oauth_token: "{{ do_api_token }}"
|
|
name: "*.pwa"
|
|
data: "{{ subdomain_prefix }}-cluster-control.{{ full_domain }}"
|
|
domain: "{{ full_domain }}"
|
|
type: CNAME
|
|
ttl: 43200
|