consul/internal/resource
Matt Keeler 326c0ecfbe
In-Memory gRPC (#19942)
* Implement In-Process gRPC for use by controller caching/indexing

This replaces the pipe base listener implementation we were previously using. The new style CAN avoid cloning resources which our controller caching/indexing is taking advantage of to not duplicate resource objects in memory.

To maintain safety for controllers and for them to be able to modify data they get back from the cache and the resource service, the client they are presented in their runtime will be wrapped with an autogenerated client which clones request and response messages as they pass through the client.

Another sizable change in this PR is to consolidate how server specific gRPC services get registered and managed. Before this was in a bunch of different methods and it was difficult to track down how gRPC services were registered. Now its all in one place.

* Fix race in tests

* Ensure the resource service is registered to the multiplexed handler for forwarding from client agents

* Expose peer streaming on the internal handler
2024-01-12 11:54:07 -05:00
..
demo Add Common Controller Caching Infrastructure (#19767) 2023-12-13 10:06:39 -05:00
http resource: block default namespace deletion + test refactorings (#19822) 2023-12-05 14:00:06 -05:00
mappers NET-7025 - ci: test-integrations failures in compatibility tests. panics occuring in selectionTracker.TrackIDForSelection (#20040) 2023-12-22 16:32:40 +00:00
protoc-gen-deepcopy Clone proto into deepcopy correctly (#19204) 2023-10-13 16:41:22 -04:00
protoc-gen-json-shim Create DeepCopy() and Json Marshal/Unmarshal for proto-public (#19015) 2023-10-13 14:55:58 +00:00
protoc-gen-resource-types Add Common Controller Caching Infrastructure (#19767) 2023-12-13 10:06:39 -05:00
reaper Add Common Controller Caching Infrastructure (#19767) 2023-12-13 10:06:39 -05:00
resourcetest In-Memory gRPC (#19942) 2024-01-12 11:54:07 -05:00
testdata Add type validations for the catalog resources (#17211) 2023-05-12 09:24:55 -04:00
acls.go catalog, mesh: implement missing ACL hooks (#19143) 2023-10-13 23:16:26 +00:00
authz.go resource: ensure resource.AuthorizerContext properly strips the local… (#18908) 2023-09-19 17:14:15 -05:00
authz_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
authz_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
decode.go added exported svc controller (#19589) 2023-11-10 07:27:53 +05:30
decode_test.go resource: block default namespace deletion + test refactorings (#19822) 2023-12-05 14:00:06 -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 catalog, mesh: implement missing ACL hooks (#19143) 2023-10-13 23:16:26 +00:00
errors_test.go catalog,mesh,auth: Bump versions to v2beta1 (#18930) 2023-09-22 10:51:15 -06:00
filter.go catalog: add metadata filtering to refine workload selectors (#19198) 2023-10-13 13:37:42 -05:00
filter_test.go catalog: add metadata filtering to refine workload selectors (#19198) 2023-10-13 13:37:42 -05:00
hooks.go Resource Hook Pre-Decode Utilities (#18548) 2023-10-26 16:39:06 -04:00
hooks_test.go Resource Hook Pre-Decode Utilities (#18548) 2023-10-26 16:39:06 -04: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 Resource Hook Pre-Decode Utilities (#18548) 2023-10-26 16:39:06 -04: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
resource.go [OSS] feat: add experiments flag for v2 dns and skeleton interfaces (#20115) 2024-01-10 11:19:20 -05:00
resource_test.go resource: misc finalizer apis (#19474) 2023-11-02 15:56:02 -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 Skip tests with p95 greater than 30 seconds outside of main and release branches. (#19628) 2023-11-15 13:43:33 -07:00
stringer.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
tenancy.go Tenancy Bridge v2 (#19220) 2023-10-20 14:49:54 -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