Skip to content

Conversation

@mikenairn
Copy link
Member

@mikenairn mikenairn commented Jul 1, 2025

Proposal to add functionality to delegate the processing of a DNSRecord to a designated cluster or clusters in a multi cluster environment.

The concepts being proposed can be applied to any of our currently supported DNS providers, but will be a requirement for the multi cluster CoreDNS solution.

Copy link
Collaborator

@maleck13 maleck13 left a comment

Choose a reason for hiding this comment

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

I think the bones of it is here. I think we should call out in a bit more detail

  • how conflicts from a secondary DNSRecord would be handled
  • how deletion and clean up is handled
  • The minimum perms the primary needs to make this work
  • What a CRD provider looks like

I also wondered if it would make things easier to reason about if the DNS Operator/Kuadrant had a flag set from a configmap that would put it into "secondary or primary" mode. You could then have the kuadrant resource accept configuration of

dns:
  mode: secondary

that would trigger it to update the configmap mounted into the dns operator. This leaves an open question around providers though

mikenairn added 2 commits July 8, 2025 14:17
Update to use controller modes instead of the policy spec.

Signed-off-by: Michael Nairn <[email protected]>
Add more detail about the CRD Provider implementation.

Signed-off-by: Michael Nairn <[email protected]>
Copy link
Collaborator

@maleck13 maleck13 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 really good. I think we can implement based on this. Only thing I really call out here is that health checks would still be the domain of each individual controller and not be delegated to the primary. One other thought is on the Core DNS plugin. Is there any work required for that or will it remain the same?

Add default provider secret concept
Update primary/remote example diagram
Update some reference level details, needs more still
Rename crd provider to dnsrecord

Signed-off-by: Michael Nairn <[email protected]>
@mikenairn mikenairn changed the title rfc: DNS Cluster Aware Delegation rfc: Cluster Aware DNSRecord Delegation Jul 10, 2025
Update diagrams crd -> dnsrecord provider
Update name requirements of authoritative zone record
Update default secret error requirement
Update role requirements of cluster aware controller for primary/remote comms.

Signed-off-by: Michael Nairn <[email protected]>
Rename rfc to cluster_aware_dnsrecord_delegation

Signed-off-by: Michael Nairn <[email protected]>
* Add Namespace requirements for multi cluster
* Update CoreDNS provider changes
* Updated default provider secret changes

Signed-off-by: Michael Nairn <[email protected]>
* Update label requirements.

Signed-off-by: Michael Nairn <[email protected]>
* Add details of loading dns operator options form a configMap.

Signed-off-by: Michael Nairn <[email protected]>
Copy link
Collaborator

@maleck13 maleck13 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 in line with what was discussed 👍

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.

4 participants