Multi-cluster support
Related JIRA: POLICY-2898: Policy should function in a multi-cluster environmentClosed
Proposal: MultiClusterSupport.pptx
Thoughts:
Common DB shared across clusters
At this point, as PAP is not a bottleneck for event processing, do not need more than one PAP per cluster
Run PAP on each cluster in active-active vs active-hot vs active-cold
Do PAPs manage PDPs across clusters?
Would require cross-cluster DMaaP
Is there a way to trigger PAPs, in other clusters, to examine the DB? (DB triggers maybe?)
Separate PDP Groups for each cluster?
And possibly multiple groups within a cluster, to support multi-tenancy
Maybe don't separate them
Would clamp talk to all of the PAPs across the clusters?
What can kubernetes do to support this?
PDPs can be active-active
Can deploy same policy across clusters
Prefer a single point for configuring policies
Implies a shared DB to store all policies
Transactions would be required to prevent conflicting updates by multiple policy-api components
How should the consolidated health check work with multiple clusters? Query a PAP in each cluster? Query one single PAP?
The additional services (e.g., A&AI, DMaaP) may be available in one cluster, but not the other. How would that be reported?
What about pdp-policy deployment status? Should one query report status for PDPs on all clusters?
If so, then that implies that the deployment status is kept in a shared DB
Are PAPs aware of PDPs across all clusters?
If not, then need a flag in the DB to indicate which PDPs are in which cluster so that PAP doesn't remove PDPs from other clusters
If not, then need a way to trigger the PAPs in the other clusters to deploy/undeploy policies to/from their respective PDPs
Can we use a shared DMaaP for POLICY-PDP-PAP topic? Or configure the PAPs in each cluster so they can communicate with the DMaaPs in the other clusters?