DNS settings for cloud.gov
The 18F/cg-provision
repository contains the cloud.gov.tf
Terraform
configuration which automatically updates AWS. The
configuration file leverages resources of type aws_route53_record
. To learn
more about Terraform configuration continue on below, or read the documentation
on Terraform’s documentation site.
Examples of records
The cloud.gov.tf
Terraform configuration file supports the following record
types:
- A
- AAAA
- CNAME
- MX
- TXT
For more information about about the available records, please read the Amazon Route 53 documentation site.
A/AAAA (alias record) example
Alias records work like a CNAME record in that you can map one DNS name (example.com) to another
target
DNS name (elb1234.elb.amazonaws.com). They differ from a CNAME record in that they are not visible to resolvers. Resolvers only see the A record and the resulting IP address of the target record.
resource "aws_route53_record" "cloud_gov_<DOMAIN_NAME_UNDERSCORED>_a" {
zone_id = "${aws_route53_zone.cloud_gov_zone.zone_id}"
name = "<DOMAIN_NAME>."
type = "A"
alias {
name = "<CANONICAL_DOMAIN_NAME>"
zone_id = "<ZONE_ID>"
evaluate_target_health = false
}
}
CNAME (canonical name record) example
resource "aws_route53_record" "cloud_gov_<DOMAIN_NAME_ALIAS_UNDERSCORED>_cname" {
zone_id = "${aws_route53_zone.cloud_gov_zone.zone_id}"
name = "<DOMAIN_NAME_ALIAS>."
type = "CNAME"
ttl = 60
records = ["<CANONICAL_DOMAIN_NAME>."]
}
MX (mail exchanger record) example
resource "aws_route53_record" "cloud_gov_<DOMAIN_NAME_UNDERSCORED>_mx" {
zone_id = "${aws_route53_zone.cloud_gov_zone.zone_id}"
name = "<DOMAIN_NAME>."
type = "MX"
ttl = 300
records = ["<PRIORITY> <MAIL_HOST_1>", "<PRIORITY> <MAIL_HOST_2>"]
}
TXT (text record) example
resource "aws_route53_record" "cloud_gov_<DOMAIN_NAME_UNDERSCORED>_txt" {
zone_id = "${aws_route53_zone.cloud_gov_zone.zone_id}"
name = "<DOMAIN_NAME>."
type = "TXT"
ttl = 300
records = ["<key=VALUE>"]
}
A note about Terraform syntax
The configuration files uses the Terraform syntax. To read more about Terraform syntax, please read the documentation on Terraform’s documentation site.
Submit a Pull Request
To update a DNS record, submit a pull request to the 18F/cg-provision
repository with
your changes. Either branches or forks are okay.
Pull requests will be reviewed and merged by a member of the infrastructure team or members of the cloud.gov team.