consul/internal/resource
R.B. Boyer 11d6b0df45
mesh: store bound reference pointers on a ComputedRoutes resource and use during reconcile (#18965)
xRoute resource types contain a slice of parentRefs to services that they 
manipulate traffic for. All xRoutes that have a parentRef to given Service 
will be merged together to generate a ComputedRoutes resource 
name-aligned with that Service.

This means that a write of an xRoute with 2 parent ref pointers will cause 
at most 2 reconciles for ComputedRoutes.

If that xRoute's list of parentRefs were ever to be reduced, or otherwise
 lose an item, that subsequent map event will only emit events for the current 
set of refs. The removed ref will not cause the generated ComputedRoutes 
related to that service to be re-reconciled to omit the influence of that xRoute.

To combat this, we will store on the ComputedRoutes resource a 
BoundResources []*pbresource.Reference field with references to all 
resources that were used to influence the generated output.

When the routes controller reconciles, it will use a bimapper to index this
 influence, and the dependency mappers for the xRoutes will look 
themselves up in that index to discover additional (former) ComputedRoutes
 that need to be notified as well.
2023-09-22 15:46:14 -05:00
..
demo resource: allow for the ACLs.Read hook to request the entire data payload to perform the authz check (#18925) 2023-09-22 09:53:55 -05:00
http fix: write endpoint errors out gracefully (#18743) 2023-09-12 09:22:15 -04:00
mappers/bimapper mesh: store bound reference pointers on a ComputedRoutes resource and use during reconcile (#18965) 2023-09-22 15:46:14 -05:00
protoc-gen-resource-types Add protoc generator to emit resource type variables (#18957) 2023-09-21 17:18:47 -04:00
reaper [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
resourcetest mesh: make FailoverPolicy work in xdsv2 and ProxyStateTemplate (#18900) 2023-09-20 11:59:01 -05:00
testdata Add type validations for the catalog resources (#17211) 2023-05-12 09:24:55 -04:00
authz.go resource: ensure resource.AuthorizerContext properly strips the local… (#18908) 2023-09-19 17:14:15 -05:00
authz_ce.go resource: ensure resource.AuthorizerContext properly strips the local… (#18908) 2023-09-19 17:14:15 -05:00
authz_ce_test.go resource: ensure resource.AuthorizerContext properly strips the local… (#18908) 2023-09-19 17:14:15 -05:00
decode.go mesh: adding type aliases for mesh resource usage (#18448) 2023-08-22 12:31:06 -05:00
decode_test.go resource: Require scope for resource registration (#18635) 2023-09-01 09:44:53 -05:00
equality.go bimapper: allow to untrack links and support reference or id (#18451) 2023-08-17 18:03:05 -06:00
equality_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
errors.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
errors_test.go catalog,mesh,auth: Bump versions to v2beta1 (#18930) 2023-09-22 10:51:15 -06:00
reference.go mesh: Wire ComputedRoutes into the ProxyStateTemplate via the sidecar controller (#18752) 2023-09-14 17:19:04 -05:00
refkey.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
refkey_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
registry.go catalog,mesh,auth: Bump versions to v2beta1 (#18930) 2023-09-22 10:51:15 -06:00
registry_test.go resource: allow for the ACLs.Read hook to request the entire data payload to perform the authz check (#18925) 2023-09-22 09:53:55 -05:00
sort.go mesh: store bound reference pointers on a ComputedRoutes resource and use during reconcile (#18965) 2023-09-22 15:46:14 -05:00
sort_test.go mesh: store bound reference pointers on a ComputedRoutes resource and use during reconcile (#18965) 2023-09-22 15:46:14 -05:00
stringer.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
tenancy.go Traffic Permissions Validations (#18907) 2023-09-22 16:10:10 -04:00
tenancy_bridge_ce.go add v2 tenancy bridge Flag and v2 Tenancy Bridge initial implementation (#18830) 2023-09-18 12:25:05 -04:00
tenancy_test.go resource: add helper to normalize inner Reference tenancy during mutate (#18765) 2023-09-13 12:08:12 -05:00
tombstone.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00