Project: GoDaddy Tofu
Vision
Custom OpenTofu provider for the GoDaddy API. Manages DNS records and domains as IaC, consumed by
pal-e-platform/terraform/. Replaces abandoned community providers (veksh/godaddy-dns, n3integration/godaddy — one deletes unmanaged records). Built in Go with the Terraform Plugin Framework. First dogfood target: palinks.app DNS records.User Stories
| Key | Story Note | Role | Success Metric |
|---|---|---|---|
| dns-iac | <a href="story-godaddy-tofu-dns-iac">story-godaddy-tofu-dns-iac</a> | Platform operator | palinks.app A/CNAME records managed via <code>tofu apply</code> |
| domain-iac | <a href="story-godaddy-tofu-domain-iac">story-godaddy-tofu-domain-iac</a> | Platform operator | Domain details readable via <code>tofu plan</code> |
Architecture
Go provider built on Terraform Plugin Framework. Internal Go client package (
pkg/godaddy/) wraps the GoDaddy REST API directly — no Python SDK dependency.- Resources:
godaddy_dns_record,godaddy_domain - Data sources:
godaddy_domains,godaddy_dns_records - Auth:
sso-key {key}:{secret}header from provider config
- Domain Model — provider resources, data sources, and their GoDaddy API mapping
- Data Flow — how tofu plan/apply translates to GoDaddy API calls
- Deployment — provider registry, pal-e-platform consumption
- DNS as Foundational Dependency — why DNS is the technical heart of every project that serves users
Key decisions:
- Go client package inside provider repo (not separate SDK) — single language, single test suite
- Python SDK dropped — Tofu providers must be Go, no cross-language benefit
- DNS records as individual resources (not bulk) — safer than replace-all semantics
Board
board-godaddy-tofuQA nits fixed (PR #7, closes #6): DomainID changed to int64, io.ReadAll capped at 1MB, url variable naming consistent. Go scaffold and DNS client solid. Next: integration tests (#4).
- 2026-06-13 — Repo initialized, docs foundation merged (#1/#2)
- 2026-06-14 — Go scaffold + DNS client merged (#3/PR #5). Provider compiles, all client methods implemented.
| Repo | Platform | Role | Status |
|---|---|---|---|
| <code>godaddy-tofu</code> | Forgejo | OpenTofu provider | Docs complete, awaiting Go scaffold |