-
Notifications
You must be signed in to change notification settings - Fork 337
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
feat(xds): auto reachable services based on MeshTrafficPermission #8125
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
…ntext Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: slonka <[email protected]>
Signed-off-by: slonka <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: slonka <[email protected]>
Signed-off-by: slonka <[email protected]>
Signed-off-by: slonka <[email protected]>
feat(xds): rs graph e2e
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
5 tasks
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
jakubdyszkiewicz
requested review from
lobkovilya and
lukidzi
and removed request for
a team
October 25, 2023 10:19
slonka
reviewed
Oct 25, 2023
lobkovilya
reviewed
Oct 26, 2023
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph.go
Outdated
Show resolved
Hide resolved
lobkovilya
reviewed
Oct 26, 2023
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph.go
Outdated
Show resolved
Hide resolved
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph.go
Outdated
Show resolved
Hide resolved
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
lobkovilya
approved these changes
Oct 27, 2023
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph.go
Show resolved
Hide resolved
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph.go
Outdated
Show resolved
Hide resolved
pkg/plugins/policies/meshtrafficpermission/graph/reachable_services_graph_test.go
Show resolved
Hide resolved
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
Signed-off-by: Jakub Dyszkiewicz <[email protected]>
This was referenced Oct 30, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist prior to review
This PR introduces auto reachable services based on MeshTrafficPermission described here #8084
I introduced a concept of reachable services graph which is just an interface in "core" xds_context package and default implementation that any service can reach any other service. Then in MTP plugin I created implementation based on MTP which is wired up in bootstrap. This way we avoid cyclic dependency and dependency on plugins, MTP, matching in xds_context.
At first, I created graph of service to service, but then we figured out that subset (MeshSubset / MeshServiceSubset) support is quite critical therefore the graph keeps list of rules for every service which can be evaluated by every DPP. This means that we support subsets fully in
from
section. In top level target ref it's impossible to support all subsets because client won't know which instance of the server it will reach. therefore we decided to support only predefined tags that we know are autogenerated and stable for all instances (which isk8s.kuma.io/*
). We could have supported any common tag between instances but it would then require to callreplaceSubsets
function for every single service.This is opt-in experimental feature.
It is not fully clear what is the impact on perf here. We will investigate this.
Existing reachable services takes precedence over the graph.
Todo as a follow-up
syscall.Mkfifo
have equivalent implementation on the other OS --ci/
labels to run additional/fewer testsUPGRADE.md
? --