UltraDNS Consul-Terraform-Sync module
Sample service block of Consul client HCL config:
# Service Block
service {
name = "client"
id = "client-host-1"
meta = {
zone_name = "zone.com"
owner_name = "www"
record_type = "A"
ttl = "120"
}
}
Sample task block of CTS HCL config:
# Task Block
task {
name = "sample_task"
module = "ultradns/cts/ultradns"
variable_files = ["/var/lib/consul/terraform.tfvars"]
condition "services" {
names = ["client"]
}
}
Sample terraform.tfvars file for a CTS task:
ultradns_username="username"
ultradns_password="password"
ultradns_host_url="https://api.ultradns.com/"
zone_name="zone.com"
owner_name="www"
record_type="A"
ttl=120
No modules.
Name |
Description |
Type |
Default |
Required |
ultradns_username |
UltraDNS username |
string |
n/a |
yes |
ultradns_password |
UltraDNS password |
string |
n/a |
yes |
ultradns_host_url |
UltraDNS hosturl |
string |
n/a |
yes |
zone_name |
Name of the zone. |
string |
n/a |
yes |
owner_name |
The domain name of the owner of the RRSet. |
string |
n/a |
yes |
record_type |
Record type of the RRSet.Supported values are: A,AAAA,1,28. |
string |
A |
no |
record_data |
The data for the record. |
list(string) |
n/a |
yes |
ttl |
The time to live (in seconds) for the record. |
number |
120 |
no |
services |
Consul services monitored by Consul Terraform Sync |
map( object({ id = string name = string address = string port = number meta = map(string) tags = list(string) namespace = string status = string
node = string node_id = string node_address = string node_datacenter = string node_tagged_addresses = map(string) node_meta = map(string) }) ) |
n/a |
yes |
Name |
Description |
Type |
services |
Services record details |
map( object({ id = string owner_name = string zone_name = string ttl = number record_type = string record_data = list(string) }) ) |