infra/docs/dns.md
teutat3s 21e620a12c
All checks were successful
Flake checks / Check (pull_request) Successful in 20m8s
docs: add how to manage DNS records with terraform
2023-12-06 18:41:23 +01:00

1.5 KiB

Changing DNS entries

Our current DNS provider is namecheap. We use Terraform to declaratively manage our pub.solar DNS records.

Initial setup

Skip this step if you already have a triton profile setup.

triton profile create

Please follow https://docs.greenbaum.cloud/en/devops/triton-cli.html for the details.

You will need to setup the following namecheap API credentials, look for "namecheap API key" in the pub.solar Keepass database.

NAMECHEAP_API_KEY
NAMECHEAP_API_USER
NAMECHEAP_USER_NAME

You will probably also need to add your external IP to the API allow list.

dig -4 ip @dns.toys

Now, change into the terraform directory and initialize the terraform providers.

cd terraform
export TRITON_KEY_ID=$(cat ~/.config/triton/profiles.d/lev-1-pub_solar.json | jq --raw-output .keyId)

terraform init

Make your changes, e.g. in dns.tf.

$EDITOR dns.tf

Plan your changes using:

terraform plan -out pub-solar-infra.plan

After verification, apply your changes with:

terraform apply "pub-solar-infra.plan"

We use the Manta remote backend to save the terraform state for collaboration.

Namecheap Terraform provider docs: