Wire up GoDaddy provider in pal-e-platform terraform for DNS record management #443

Closed
opened 2026-06-16 01:35:49 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Blocks DNS activation for palinks.app and landscaping-assistant.app. PR #436 (issue #435) added terraform/dns.tf with godaddy_dns_record resources, but the GoDaddy provider was never added to the terraform configuration.

Repo

ldraney/pal-e-platform

User Story

As a platform operator
I want the GoDaddy provider wired into pal-e-platform terraform
So that tofu apply can create the DNS A records that point both domains to the edge-proxy

Context

The custom domain wave chain is code-complete (Caddy Salt states deployed, Rails config.hosts merged, Keycloak redirect URIs applied), but DNS is the missing link. dns.tf references godaddy_dns_record resources and module.hetzner_edge.server_ipv4, but:

  1. versions.tf has no godaddy in required_providers
  2. providers.tf has no provider "godaddy" block
  3. secrets.auto.tfvars has no GoDaddy API credentials
  4. The provider binary needs to be available (built from ldraney/godaddy-tofu or via filesystem_mirror)

Both domains currently resolve to GoDaddy parking IPs instead of the edge-proxy (178.156.129.142). The CI pipeline already builds godaddy-tofu from source (filesystem_mirror, CGO_ENABLED=0 for Alpine). The local dev environment needs the same provider available.

File Targets

Files the agent should modify:

  • terraform/versions.tf — add godaddy to required_providers block (source: local filesystem_mirror or custom registry)
  • terraform/providers.tf — add provider "godaddy" { api_key = var.godaddy_api_key; api_secret = var.godaddy_api_secret }
  • terraform/variables.tf — add godaddy_api_key and godaddy_api_secret variable declarations
  • terraform/secrets.auto.tfvars — add GoDaddy API credentials (from ~/secrets/ or env vars)
  • terraform/secrets.auto.tfvars.example — add placeholder entries for GoDaddy credentials

Files the agent should NOT touch:

  • terraform/dns.tf — already correct, references module.hetzner_edge.server_ipv4
  • salt/ — Caddy config is deployed and working

Feature Flag

none

Acceptance Criteria

  • tofu init succeeds with the GoDaddy provider resolved
  • tofu plan shows the two DNS A records to be created
  • tofu apply creates both A records successfully
  • dig palinks.app A returns 178.156.129.142
  • dig landscaping-assistant.app A returns 178.156.129.142
  • curl -I https://palinks.app returns HTTP 200 from the Rails app
  • curl -I https://landscaping-assistant.app returns HTTP 200 from the Rails app

Test Expectations

  • tofu plan -var-file=k3s.tfvars shows exactly 2 resources to add (the DNS records)
  • No changes to existing resources
  • DNS propagation verified via external resolver

Constraints

  • GoDaddy API credentials must come from secrets, NOT be hardcoded
  • The godaddy-tofu provider is built from source at ldraney/godaddy-tofu — check CI's filesystem_mirror pattern
  • Must not affect any existing terraform resources — this is purely additive

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • ldraney/godaddy-tofu — the provider source repo
  • ldraney/pal-e-platform #435 — original DNS record PR that added dns.tf
  • ldraney/pal-e-platform #425 — Caddy reverse proxy (deployed, waiting on DNS)
  • ldraney/pal-e-platform #434 — Caddy for landscaping-assistant.app (deployed, waiting on DNS)
### Type Feature ### Lineage Blocks DNS activation for `palinks.app` and `landscaping-assistant.app`. PR #436 (issue #435) added `terraform/dns.tf` with `godaddy_dns_record` resources, but the GoDaddy provider was never added to the terraform configuration. ### Repo `ldraney/pal-e-platform` ### User Story As a platform operator I want the GoDaddy provider wired into pal-e-platform terraform So that `tofu apply` can create the DNS A records that point both domains to the edge-proxy ### Context The custom domain wave chain is code-complete (Caddy Salt states deployed, Rails config.hosts merged, Keycloak redirect URIs applied), but DNS is the missing link. `dns.tf` references `godaddy_dns_record` resources and `module.hetzner_edge.server_ipv4`, but: 1. `versions.tf` has no `godaddy` in `required_providers` 2. `providers.tf` has no `provider "godaddy"` block 3. `secrets.auto.tfvars` has no GoDaddy API credentials 4. The provider binary needs to be available (built from `ldraney/godaddy-tofu` or via filesystem_mirror) Both domains currently resolve to GoDaddy parking IPs instead of the edge-proxy (178.156.129.142). The CI pipeline already builds godaddy-tofu from source (`filesystem_mirror`, `CGO_ENABLED=0` for Alpine). The local dev environment needs the same provider available. ### File Targets Files the agent should modify: - `terraform/versions.tf` — add `godaddy` to `required_providers` block (source: local filesystem_mirror or custom registry) - `terraform/providers.tf` — add `provider "godaddy" { api_key = var.godaddy_api_key; api_secret = var.godaddy_api_secret }` - `terraform/variables.tf` — add `godaddy_api_key` and `godaddy_api_secret` variable declarations - `terraform/secrets.auto.tfvars` — add GoDaddy API credentials (from `~/secrets/` or env vars) - `terraform/secrets.auto.tfvars.example` — add placeholder entries for GoDaddy credentials Files the agent should NOT touch: - `terraform/dns.tf` — already correct, references `module.hetzner_edge.server_ipv4` - `salt/` — Caddy config is deployed and working ### Feature Flag none ### Acceptance Criteria - [ ] `tofu init` succeeds with the GoDaddy provider resolved - [ ] `tofu plan` shows the two DNS A records to be created - [ ] `tofu apply` creates both A records successfully - [ ] `dig palinks.app A` returns `178.156.129.142` - [ ] `dig landscaping-assistant.app A` returns `178.156.129.142` - [ ] `curl -I https://palinks.app` returns HTTP 200 from the Rails app - [ ] `curl -I https://landscaping-assistant.app` returns HTTP 200 from the Rails app ### Test Expectations - [ ] `tofu plan -var-file=k3s.tfvars` shows exactly 2 resources to add (the DNS records) - [ ] No changes to existing resources - [ ] DNS propagation verified via external resolver ### Constraints - GoDaddy API credentials must come from secrets, NOT be hardcoded - The godaddy-tofu provider is built from source at `ldraney/godaddy-tofu` — check CI's filesystem_mirror pattern - Must not affect any existing terraform resources — this is purely additive ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `ldraney/godaddy-tofu` — the provider source repo - `ldraney/pal-e-platform #435` — original DNS record PR that added dns.tf - `ldraney/pal-e-platform #425` — Caddy reverse proxy (deployed, waiting on DNS) - `ldraney/pal-e-platform #434` — Caddy for landscaping-assistant.app (deployed, waiting on DNS)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/pal-e-platform#443
No description provided.