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

Unified Kuadrant - Kuadrant Operator Single Policy Controller #44

Closed
8 tasks done
maleck13 opened this issue Dec 18, 2023 · 2 comments
Closed
8 tasks done

Unified Kuadrant - Kuadrant Operator Single Policy Controller #44

maleck13 opened this issue Dec 18, 2023 · 2 comments

Comments

@maleck13
Copy link
Collaborator

maleck13 commented Dec 18, 2023

What

Currently we have a 2 policy controllers. One for DNS and TLS policy and second for RateLimit and Auth Policy. In addition to this we have the "enforcement" of DNS available with a DNSRecord and ManagedZone controller. We want to get to a place where we have only one policy controller for Kuadrant that can operate in a multi-cluster or single cluster environment.

Why
The requirements and responsibilities of these policy controllers are very similar. They watch policy and associated network resources and convert the policy into specific configuration to be applied by an "enfocement" component such as Limitador or cert-manager. Having two separate controllers that share a lot of the same responsibilities and requirements is not ideal as we end up duplicating code, and creating awkward deployments. We already see this happening with the policy controller and CRDs being bundled into the CSV of the kuadrant operator and scripts from the kuadrant-operator depending on scripts from the multicluster gateway controller.

Goal

End up with a single policy controller that is installed into any environment that wants to use the policy APIs. Remove the need for the separate policy controller that has DNS and TLS in it.

How

We will move the DNSPolicy and TLSPolicy controllers into the kuadrant-operator. We will also have a way to indicate to policy controllers whether they should reconcile a given type of policy or instead just add context to the status of the policy object.

Examples:

  • Kuadrant Operator installed into a hub and a spoke. Hub will reconcile the DNSPolicy and enforce it, spoke will simple update the status of the DNSPolicy to call out it is handled by the hub

Phase1

Note: At the end of phase 1 all kuadrant policies and controllers will be present and running on both hub and spoke. This should not be an issue though since we do not sync or create polices from one to the other in MGC currently.

Followed up by #69

@maleck13 maleck13 changed the title Unified Kuadrant - Single Policy Controller Unified Kuadrant - Kuadrant Operator Single Policy Controller Jan 17, 2024
@maleck13
Copy link
Collaborator Author

@maleck13 maleck13 closed this as completed Mar 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

2 participants