-
Notifications
You must be signed in to change notification settings - Fork 558
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
networking extensions #1849
networking extensions #1849
Conversation
Signed-off-by: Kuat Yessenov <[email protected]>
@kyessenov: The following test failed, say
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is fine, but it only deal with client side extensions, which are only really used at gateways. We need something equivalent on the server side.
// HTTP route filter for custom extensions. | ||
message HTTPRouteFilter { | ||
// Extension category determining the type of a filter extension. | ||
string category = 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ENUM ? or a list in the doc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I want to leave it open-ended just like in k8s.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what kind of categories would these be? if we're referencing a generic Extension resource here, that resource will define its category itself, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, name is sufficient. This is trying to align GVK from k8s Gateway with extensions, so it could help to have an explicit "type" of an extension here.
string name = 2; | ||
|
||
// Explicit extension configuration. | ||
google.protobuf.Struct value = 3; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UpdaStruct, so Istio can verify it against some proto.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Istio API are only using proto for a schema, and I imagine the extension may chose to use k8s schema instead. UDPA struct is pure proto.
@mandarjog Yes, I think for server-side extensions we can generalize Wasm extensions API to cover native extensions. This would be a brand new API. cc @dgn It might be OK to reference extensions API in a per-route extension reference. I just don't see how k8s gateway covers server-side use cases in principle. |
@dgn I think the back-reference from the Extension resource to the VirtualService route is also a viable approach. I do want to make sure that k8s Gateway can be translated to a set of Extension and VirtualService resources. I think there are a few requirements for this to be possible:
|
@kyessenov: PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@kyessenov do we have a doc or more info on usage / alignment with other proposed APIs ? |
Daniel's proposal deals with server-side extensions. That is more restricted and simpler, so it should take priority. Ingress/client side can follow. |
Generalization of #1842 to support forward-thinking, proprietary extensions in the HTTP rules.
This roughly matches HTTPRouteFilter.
/assign @howardjohn
/assign @mandarjog
/assign @douglas-reid
Signed-off-by: Kuat Yessenov [email protected]