Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discretionary external DNS zones #6581

Merged
merged 8 commits into from
Sep 24, 2024
Merged

Discretionary external DNS zones #6581

merged 8 commits into from
Sep 24, 2024

Conversation

plotnick
Copy link
Contributor

External DNS addresses are not yet in the policy (#3732), so we must grovel for them in the parent blueprint (and also a bit in the planning input). Most of the grubbiness here will go away when that's fixed; see the TODO-cleanup notes.

Still validating on a4x2, but otherwise ready for review.

External DNS addresses are not yet in the policy,
so we must grovel for them in the parent blueprint.
See `test_reuse_external_dns_ips_from_expunged_zones()`.
Copy link
Collaborator

@davepacheco davepacheco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good! I have a few questions below about allocating datasets and addresses. And yeah it'd be good to get @jgallagher's eyes on this too.

jgallagher added a commit that referenced this pull request Sep 18, 2024
The "Check the planning input" block of code needs to consider _all_
zones in the parent blueprint, including expunged zones. #6483 fixed the
planner's ability to reuse external IPs from expunged zones, but
accidentally made these checks incorrect, because it's certainly valid
for the planning input to still have records for expunged zones. See
#6581 (comment)
for more context.

We also get to remove the somewhat-awkward
update_network_resources_from_blueprint() test helper that was needed in #6483
to make some tests pass (because we didn't realize the checks being
performed here were wrong).
jgallagher added a commit that referenced this pull request Sep 18, 2024
The "Check the planning input" block of code needs to consider _all_
zones in the parent blueprint, including expunged zones. #6483 fixed the
planner's ability to reuse external IPs from expunged zones, but
accidentally made these checks incorrect, because it's certainly valid
for the planning input to still have records for expunged zones. See
#6581 (comment)
for more context.

We also get to remove the somewhat-awkward
update_network_resources_from_blueprint() test helper that was needed in #6483
to make some tests pass (because we didn't realize the checks being
performed here were wrong).
Fails the `planner_reuse_external_dns_ips_from_expunged_zones` test,
but because of Nexus, not external DNS.
jgallagher added a commit that referenced this pull request Sep 18, 2024
…ng (#6599)

The "Check the planning input" block of code needs to consider _all_
zones in the parent blueprint, including expunged zones. #6483 fixed the
planner's ability to reuse external IPs from expunged zones, but
accidentally made these checks incorrect, because it's certainly valid
for the planning input to still have records for expunged zones. See
#6581 (comment)
for more context.

We also get to remove the somewhat-awkward
`update_network_resources_from_blueprint()` test helper that was needed
to make some tests pass (because we didn't realize the checks being
performed here were wrong).
Makes running out of external DNS address *not* be a fatal
planning error. Requires relaxing the constraint that the
requested number of zones equal the added number of zones.

Also collect plain IP addresses for available DNS addresses,
not floating IPs.
@davepacheco davepacheco added this to the 11 milestone Sep 24, 2024
Copy link
Contributor

@jgallagher jgallagher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for fighting all the dragons here.

@plotnick plotnick merged commit dfe628a into main Sep 24, 2024
16 checks passed
@plotnick plotnick deleted the external-dns branch September 24, 2024 23:30
iliana added a commit that referenced this pull request Sep 25, 2024
iliana added a commit that referenced this pull request Sep 25, 2024
💥 #6624 added a collection parameter to
`BlueprintBuilder::new_based_on`. #6581 added new calls to
`new_based_on` in tests without having those changes present.
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.

3 participants