Skip to content

feat(route53): adopt an existing hosted zone by name (Zone.spec.adoption.byName) - #14

Merged
reoring merged 1 commit into
mainfrom
work/20261010/zone-adopt-by-name
Oct 10, 2026
Merged

reoring merged 1 commit into
mainfrom
work/20261010/zone-adopt-by-name

Conversation

@reoring

@reoring reoring commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Route 53 Zone adoption becomes a oneOf: {hostedZoneId: Z...} (unchanged) or
{byName: true}. By-name resolution lists same-name hosted zones, keeps those
whose private/public type matches the ZoneClass zoneType, requires exactly
one match, and records its ID in status through the existing adoption
patch; later reconciles and deletion use the recorded ID and never re-list.
Zero matches -> Programmed=False ExternalResourceNotFound; several ->
ExternalResourceMismatch with the count; both fields set -> Accepted=False
InvalidAdoption. No implicit adoption without spec.adoption; record-set
adoption, Cloudflare and VPC-association behaviour unchanged.

Motivation: appthrust/platform hosting-substrate-design.md S2 — the hosting
bundle renders Zone hcp for hcp..internal under a Private
class; the hosted zone ID lives only in Terraform state and the installation
spec is immutable, so adoption by name removes the need to thread the ID.

…ion.byName)

Route 53 Zone adoption becomes a oneOf: {hostedZoneId: Z...} (unchanged) or
{byName: true}. By-name resolution lists same-name hosted zones, keeps those
whose private/public type matches the ZoneClass zoneType, requires exactly
one match, and records its ID in status through the existing adoption
patch; later reconciles and deletion use the recorded ID and never re-list.
Zero matches -> Programmed=False ExternalResourceNotFound; several ->
ExternalResourceMismatch with the count; both fields set -> Accepted=False
InvalidAdoption. No implicit adoption without spec.adoption; record-set
adoption, Cloudflare and VPC-association behaviour unchanged.

Motivation: appthrust/platform hosting-substrate-design.md S2 — the hosting
bundle renders Zone hcp for hcp.<installation>.internal under a Private
class; the hosted zone ID lives only in Terraform state and the installation
spec is immutable, so adoption by name removes the need to thread the ID.
@reoring
reoring merged commit 87aa1dc into main Oct 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant