alunduil / alunduil/blog.alunduil.com

Living in Terraform: alunduil.com after the Cloudflare migration

Open
#100 3 comments 0 reactions 0 assignees View on GitHub
idea
Dominant language
Astro
Stars
1
Forks
1
Avg merge
6h 34m
Merged PRs (30d)
118

Description

## Spark

This week the alunduil.com infrastructure migrated from click-ops Cloudflare and a legacy GCP Cloud DNS zone into Terraform: zone, DNSSEC end-to-end, blog Pages + repo + default branch all reified. Legacy GCP zone deleted post-apply. Every issue opened in `alunduil-infrastructure` this window has a closed-state or a merged PR.

## Why it could be interesting

The activity is "I terraformed my DNS." The underlying claim worth a post: **the high-leverage benefits of Terraform-managing personal infra aren't reproducibility (I'm one person; my laptop being the source of truth is fine) — they're (a) audit trail of *why* the zone is configured the way it is, (b) cheap rollback when an experiment breaks something, and (c) making "what should I delete?" answerable**. Deleting the legacy GCP zone was only safe to do because TF showed exactly what referenced it.

Distinct from #72 (Terraform *import skill*) — that's about getting *in*. This is about what changes once you're already in: which workflows get cheaper, which feel like overkill, and which create new source-of-truth problems. DNSSEC end-to-end is a useful concrete worked example because the hard part wasn't TF — it was the registrar coordination dance.

## Open questions

- [ ] What concretely got safer/easier vs. unchanged after migration? (Audit: 30 days of changes, was TF a help or a tax?)
- [ ] Where does TF still feel like overkill at the personal scale — single records, ad-hoc DNS for testing?
- [ ] DNSSEC end-to-end: what was the actually hard part — TF, or registrar coordination?
- [ ] Does a personal infra TF setup tip into "now I have two source-of-truth problems" (re: #68 settings with two owners)?

## Source material

- [infra#7](https://github.com/alunduil/alunduil-infrastructure/issues/7) — Manage blog.alunduil.com repo, Pages, and default branch in TF (closed)
- [infra#40](https://github.com/alunduil/alunduil-infrastructure/issues/40) — DNSSEC enabled end-to-end on alunduil.com (closed)
- [infra#36](https://github.com/alunduil/alunduil-infrastructure/issues/36) — Legacy GCP alunduil-com Cloud DNS zone deleted post-apply (closed)
- [infra#37](https://github.com/alunduil/alunduil-infrastructure/issues/37) — Cloudflare zone managed by Terraform
- [infra#42](https://github.com/alunduil/alunduil-infrastructure/pull/42) — Manage DNSSEC on alunduil.com via Terraform
- [infra#45](https://github.com/alunduil/alunduil-infrastructure/pull/45) — Bring alunduil.com Cloudflare zone under Terraform
- [infra#44](https://github.com/alunduil/alunduil-infrastructure/pull/44) — Audit README against the readme skill checklist
- [infra#35](https://github.com/alunduil/alunduil-infrastructure/issues/35) — HTTPS enforcement on Pages
- [infra#38](https://github.com/alunduil/alunduil-infrastructure/issues/38) — `var.repositories` evaluated for module extraction
- Related kernels: #72 (Terraform import skill), #68 (settings with two owners)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.