Create dns-aggregator charm - #477
Open
weiiwang01 wants to merge 4 commits into
Open
weiiwang01 wants to merge 4 commits into
weiiwang01 wants to merge 4 commits into
Conversation
weiiwang01
force-pushed
the
ddns/dns-aggregator
branch
from
September 4, 2026 06:00
fb38068 to
a8c204a
Compare
weiiwang01
force-pushed
the
ddns/dns-aggregator
branch
from
September 10, 2026 06:23
a8c204a to
8f27858
Compare
weiiwang01
force-pushed
the
ddns/dns-aggregator
branch
from
September 14, 2026 08:47
8f27858 to
e9375e0
Compare
weiiwang01
marked this pull request as ready for review
September 15, 2026 05:17
weiiwang01
requested review from
a team,
DeeKay3,
gregory-schiano and
srbouffard
as code owners
September 15, 2026 05:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Creates the dns-aggregator charm, a charm that aggregates multiple
dns_recordrelations into one upstreamdns_recordrelation.The dns-aggregator charm has one upstream relation and two downstream relations: the main downstream
dns-record-provider(limit: 1) with full forwarding capability, including ddns, and the mixin downstreamdns-record-provider-mixinfor forwarding DNS entries only.Why we need it
One unsolved problem of charm relations is that sometimes, we often find relations from different charm applications that are related, but from the Juju perspective, they are standalone relations that have no relation to each other.
For example, inside a web application charm deployment, the web application charm needs to request a DNS domain for its service using the
dns_recordrelation. Also, there's a lego charm inside the same model that uses thedns_recordrelation to perform a DNS-01 ACME challenge to obtain a TLS certificate for the web application charm.From the perspective of the upstream DNS provider, for example, the dns-policy charm, these two relations are completely separated with no relation to each other. So we need separate policy rules to approve these two relations to get what they need.
With the dns-aggregator charm, the web application charm and the lego charm's
dns_recordrelations can be combined into onedns_recordrelation and then presented to the dns-policy charm. With this, the dns-policy charm can know the DNS A record request sent by the web application charm and the TXT record sent by the lego charm are from the same deployment and associated. This gives the dns-policy charm the possibility to create some intelligent rules to, for example, automatically approve the TXT record when an A record inside the same relation for the same domain is approved.Checklist
docs/changelog.mdwith user-relevant changes(e.g., in
.github/workflows/integration_tests.yaml, ensure themoduleslist is correct)terraform fmtpasses andtflintreports no errors