[ENHANCEMENT] Combine ANP/BANP into one CRD
Is your enhancement request related to a problem? Please describe.
This came up in the API review with @thockin. He suggested we look again at that split and consider how the API might evolve; in particular, what if we remove the singleton aspect from BANP and it ends up the same as ANP (with only tiny gotcha-level differences).
Describe the solution you'd like
Represent ANP and BANP with one CRD type and represent the difference using some other primitive.
My favoured approach would be to add a tier field to the combined ANP type that can be set to <value that makes it an ANP> <value that makes it a BANP>. This has the advantage that it's extensible to new "tiers" later.
TBD: do we immediately remove the BANP singleton restriction and add priority, or do we defer that (validate against it?)
Describe alternatives you've considered
On the call we discussed alternatives:
- Tier field.
- Negative priority for ANP, positive for BANP.
Additional context
Calico already has the concept of tiered policy; it is the feature that we use to implement ANP and BANP internally so there's precedent for the name and the feature has been popular with our enterprise users. Calico allows user defined tiers, which may be something to consider for the future, but I think we can extend in that way later if required.
Probably needs a full NPEP!
/assign
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle rotten - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
/remove-lifecycle rotten
/lifecycle freeze