This repository holds the source code for configuring DNS for domains managed by GSA TTS, including 18F and the Presidential Innovation Fellows.
- Is the domain pointing to the right nameservers? In other words, is there a file for the domain under
terraform/
already?- Yes: Continue to next step.
- No:
- If you're only setting up a subdomain (rather than a second-level), incorporate these special steps to the following.
- Add a file for the domain, to create the public hosted zone.
18f.us
is a good example to copy from.- You'll be using Terraform's
aws_route53_zone
.
- After the pull request is merged, ask in #infrastructure to get the nameservers for your domain from Concourse.
- Change the nameservers for the domain to point to AWS.
- For
.gov
domains, this will be done by whatever person/group registered/manages the domain in dotgov.gov.
- For
- Add the relevant additional record sets. In Terraform, these are known as
aws_route53_record
s. Generally speaking, the required arguments are:zone_id
name
type
- Either
alias
orrecords
- If
alias
, thenevaluate_target_health
is also required - If
records
, thenttl
is also required
It's worth noting that if you are pointing to a CloudFront distro, you should use Route 53's own alias
and not a CNAME record. In fact, CNAMEing a top-level domain (or the top level of a delegated subdomain) is not allowed in DNS. See the various examples in the repo, such as this one.
On merge, changes are deployed to the cloud.gov AWS account automatically by an instance of Concourse hosted on cloud.gov. The configuration for the Concourse instance is in pipeline.yml
.
Please note: only production systems with an ATO should have their DNS configuration here. If you wish to create DNS records for pre-production systems, please use the domain sandbox.gov
which is available in the TTS Sandbox account.
This project is in the worldwide public domain. As stated in the license:
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.