-
Notifications
You must be signed in to change notification settings - Fork 347
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
decision: Segmenting API Gateway features into PolicyAttachment CRDs #677
Comments
@Xunzhuo @danehans @youngnick @skriss @LukeShu @AliceProxy can you please vote on this issue |
I prefer 3 or 4, they have more independence and loose coupling between features. |
I vote for 2. or 3. and here's why
|
I think 3 would be preferable over 1 and 2 although I prefer 4 the most. Allows for clear separation of resources depending on what the user is trying to accomplish. Prioritize keeping things self contained. While you could group two features into a single group like IE: I'm a cluster admin and I know that I want to setup authentication, I shouldn't have to use Makes it easier for us to iterate over each individual feature separately. Not sure that the further grouping of a bunch of different things together is really benefiting the user but I'd like to hear any counter arguments. IE: Vs. Just to make my vote more clear: |
Also, see the Policy Boilerplate section which uses MUST language around the |
I think the complexity of merging individual policies is the same for 3 and 4 3 just gives the flexibility of merging personas into one (a small independant team) or allowing
|
thanks for raising the argument around retrieving current intent.
|
xref #675 as @sunjayBhatia has spent considerable time researching this topic for Contour. As I stated here, I suggest EG focus on extensions that can be implemented as implementation-specific filters. EG can add Policy Attachment support at a future date to support overrides and defaulting. |
+1 on 4 |
I would also +1 on 4 (non-maintainer), that gives each feature independence and they can evolve in their own pace as well. |
+1 for 2 and 3 as they align with well with networking and security persona |
Note that 4 meets this requirement while supporting more granular RBAC. |
|
True, but AuthN "enforcement" should not be conflated with providing EG users with a request authentication mechanism. I agree that "enforcement" should be achieved through GWAPI Policy Attachment but as a separate backlogged feature.
IMHO GWAPI Policy Attachment is still evolving (see xrefs) while implementation-specific filters are far more mature and ready to implement today. xrefs: |
thanks everyone for sharing your votes and comments, realized that chatting about PolicyAttachment might be too premature, and will require us to first agree on which extension points we should be using and when, hoping we can use #675 for aligning together about which extension type to use. |
So, seems like I missed the discussion here. I'm a strong +1 for option 4, even with the cost it will impose on EG development, because (in addition to @AliceProxy and @sunjayBhatia's excellent arguments):
That said, I think that having custom Filters or other extensions that can be configured in a hierarchical way using Policy objects seems like the most flexible option. (I'm going to remove the restriction on this in the Gateway API docs very soon). |
+1 on 4 |
thanks everyone for sharing your preference, the majority of the maintainers have voted for option 4 (1 CRD per API Gateway feature) |
@youngnick reg your comment about naming, my opinion is that we should not add any Envoyisms into the name or the feature API. The ideal goal would be to build platform agnostic APIs that can be moved into the Gateway API repository in the future. Any Envoyisms should be part of the advanced mode Envoy API |
Thanks @arkodg, but I disagree. Almost everything we do for Ratelimiting, Auth etc will be heavily influenced by how Envoy configures things anyway, so we should lean into making ours the Envoy versions, and then taking those to the community and seeing what can be made generic. Rob and I spent days looking into how to write a generic Timeout policy across implementations, and it is impossible. Each datapath implementation thinks of timeouts very differently, and they are a very simple use case by comparison to ratelimiting etc. Doing Envoy-ism versions first lets us both show how the Policy framework can be used, and gives our users (and the users of other Envoy datapath implementations) quicker access to this functionality. It also prevents name collisions later, in the happy case that we can make a generic version. |
^ would also be consistent with existing EG API naming, EnvoyGateway and EnvoyProxy. |
If we do move forward with PolicyAttachment, separate CRDs should be used. |
Description:
Adding options for how API Gateway features such as
ratelimiting
can be expressed as PolicyAttachment CRDs. Please dont focus on the names, just added placeholders.networking
(shapes traffic) andsecurity
(authenticates & authorizes traffic) as top fieldsnetworking
and the other forsecurity
The text was updated successfully, but these errors were encountered: