-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
Policy objects MUST specify a status stanza. As of kubernetes-sigs/gateway-api#3609, the following changes to the Kuadrant policy CRDs are required to be conformant.
1. The following conditions and reasons SHOULD be adopted (Standard):
-
Condition:
Accepted- Reasons for
True:Accepted
- Reason for
False:Conflicted- for direct policies when targeting a network object already in scope of another policy, N/A for policy kinds that implement merge strategies other than NoneInvalid- e.g.: invalid CEL expressionTargetNotFound
- Reasons for
-
Condition:
Programmed(replaces currentEnforced)- Reasons for
True:Programmed- no parts of the policy overridden by anotherPartiallyProgrammed- parts of the policy overridden by another, though not entirely
- Reason for
False:Overridden- policy entirely overridden by anotherReconciling- intermediary state while reconciling the policy post acceptance
- Reasons for
2. Policy status SHOULD be organised using the upstream PolicyAncestorStatus struct (Experimental).
- Policy implementations can arbitrate what the best ancestor is for each case (e.g., Gateway object, target object, scope, etc)
- My personal recommendation is to use the exact target object (
sectionNameincluded) as the ancestor, so automated tools can reason about the status of the policy in terms of each target. - To have in mind: trade-off between desired level of detail to provide and avoiding the fanout status update problem
3. Policy status SHOULD reflect the applied merge strategy (Experimental).
- Partially covered by the conditions already
- Any further specification of the applied merge strategy TBD
- May depend on the design adopted for (2) above
- Ref.: https://gateway-api.sigs.k8s.io/geps/gep-713/#reflecting-the-applied-merge-strategy-in-the-status-stanza-of-the-policy
Subtasks:
- AuthPolicy status restructuring
- RateLimitPolicy status restructuring
- TokenBasedRatePolicy status restructuring
- TLSPolicy status restructuring
- DNSPolicy status restructuring
- OIDCPolicy status restructuring
- PlanPolicy status restructuring
Supersedes #433
Reactions are currently unavailable