consul/agent/consul
R.B. Boyer c81dc8c551
state: ensure that identical manual virtual IP updates result in not bumping the modify indexes (#21909)
The consul-k8s endpoints controller issues catalog register and manual virtual ip
updates without first checking to see if the updates would be effectively not
changing anything. This is supposed to be reasonable because the state store
functions do the check for a no-op update and should discard repeat updates so
that downstream blocking queries watching one of the resources don't fire
pointlessly (and CPU wastefully).

While this is true for the check/service/node catalog updates, it is not true for
the "manual virtual ip" updates triggered by the PUT /v1/internal/service-virtual-ip.
Forcing the connect injector pod to recycle while watching some lightly
modified FSM code can show that a lot of updates are of the update list of ips
from [A] to [A]. Immediately following this stray update you can see a lot of
activity in proxycfg and xds packages waking up due to blocking queries
triggered by this.

This PR skips updates that change nothing both:

- at the RPC layer before passing it to raft (ideally)
- if the write does make it through raft and get applied to the FSM (failsafe)
2024-11-22 11:16:38 -06:00
..
auth [NET-6640] Adds "Policy" BindType to BindingRule (#19499) 2023-11-20 13:11:08 +00:00
authmethod Update go-jose library (#20888) 2024-03-22 10:54:58 -04:00
autopilotevents [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
controller Ensure all topics are refreshed on FSM restore and add supervisor loop to v1 controller subscriptions (#20642) 2024-02-14 14:17:55 -06:00
discoverychain Add CE version of Gateway Upstream Disambiguation (#19860) 2023-12-07 17:56:14 -05:00
fsm [NET-8091] Add file-system-certificate config entry for API gateway (#20873) 2024-04-15 16:45:05 -04:00
gateways [NET-8091] Add file-system-certificate config entry for API gateway (#20873) 2024-04-15 16:45:05 -04:00
multilimiter [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
prepared_query Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
rate Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
reporting Enable callers to control whether per-tenant usage metrics are included in calls to store.ServiceUsage (#20672) 2024-03-01 13:44:55 -05:00
servercert [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
state state: ensure that identical manual virtual IP updates result in not bumping the modify indexes (#21909) 2024-11-22 11:16:38 -06:00
stream Handle ACL errors consistently when blocking query timeout is reached. (#20876) 2024-03-22 14:59:54 -06:00
testdata v2: remove HCP Link integration (#21883) 2024-11-07 11:47:55 -06:00
usagemetrics [NET-8091] Add file-system-certificate config entry for API gateway (#20873) 2024-04-15 16:45:05 -04:00
wanfed [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
watch [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
xdscapacity Enable callers to control whether per-tenant usage metrics are included in calls to store.ServiceUsage (#20672) 2024-03-01 13:44:55 -05:00
acl.go Add default intention policy (#20544) 2024-02-08 20:25:42 +00:00
acl_authmethod.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
acl_authmethod_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
acl_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
acl_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
acl_client.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
acl_endpoint.go [CE] Add workload bind type and templated policy (#19077) 2023-10-05 19:45:41 +00:00
acl_endpoint_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
acl_endpoint_test.go [Security] Secvuln 8633 Consul configuration allowed repeated keys (#21908) 2024-11-14 09:57:08 -06:00
acl_replication.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
acl_replication_test.go Add support for querying tokens by service name. (#18667) 2023-09-06 10:52:45 -05:00
acl_replication_types.go Add support for querying tokens by service name. (#18667) 2023-09-06 10:52:45 -05:00
acl_server.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
acl_server_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
acl_test.go Add workload identity ACL rules (#18769) 2023-09-12 17:22:51 -04:00
acl_token_exp.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
acl_token_exp_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
auto_config_backend.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
auto_config_backend_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
auto_config_endpoint.go [OSS] feat: add experiments flag for v2 dns and skeleton interfaces (#20115) 2024-01-10 11:19:20 -05:00
auto_config_endpoint_test.go Update go-jose library (#20888) 2024-03-22 10:54:58 -04:00
auto_encrypt_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
auto_encrypt_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
autopilot.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
autopilot_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
autopilot_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
catalog_endpoint.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
catalog_endpoint_test.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
client.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
client_serf.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
client_test.go Panic for unregistered types (#20476) 2024-02-06 11:23:06 -05:00
cluster_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
config.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
config_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
config_endpoint.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
config_endpoint_test.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
config_replication.go Hash based config entry replication (#19795) 2023-12-12 08:29:13 -05:00
config_replication_test.go NET-5912/service-defaults protocol validation (#21593) 2024-08-26 11:10:57 -04:00
config_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
configentry_backend.go NET-5824 Exported services api (#20015) 2024-01-23 10:06:59 +05:30
configentry_backend_ce.go NET-5824 Exported services api (#20015) 2024-01-23 10:06:59 +05:30
configentry_backend_ce_test.go NET-5824 Exported services api (#20015) 2024-01-23 10:06:59 +05:30
configentry_backend_test.go NET-5824 Exported services api (#20015) 2024-01-23 10:06:59 +05:30
connect_ca_endpoint.go xds controller: setup watches for and compute leaf cert references in ProxyStateTemplate, and wire up leaf cert manager dependency (#18756) 2023-09-12 12:56:43 -07:00
connect_ca_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
context.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
context_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
coordinate_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
coordinate_endpoint_test.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
discovery_chain_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
discovery_chain_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
enterprise_client_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
enterprise_config_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
enterprise_server_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
enterprise_server_ce_test.go Retry lint fixes (#19151) 2023-12-06 12:11:32 -05:00
federation_state_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
federation_state_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
federation_state_replication.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
federation_state_replication_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
filter.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
filter_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
flood.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
gateway_locator.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
gateway_locator_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
grpc_integration_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
health_endpoint.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
health_endpoint_ce.go NET-5879 - expose sameness group param on service health endpoint and move sameness group health fallback logic into HealthService RPC layer (#21096) 2024-05-14 13:32:49 +00:00
health_endpoint_test.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
helper_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
intention_endpoint.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
intention_endpoint_test.go NET-11737 - sec vulnerability - remediate ability to use bexpr to filter results without ACL read on endpoint (#21950) 2024-11-20 16:26:12 -07:00
internal_endpoint.go state: ensure that identical manual virtual IP updates result in not bumping the modify indexes (#21909) 2024-11-22 11:16:38 -06:00
internal_endpoint_test.go state: ensure that identical manual virtual IP updates result in not bumping the modify indexes (#21909) 2024-11-22 11:16:38 -06:00
issue_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
kvs_endpoint.go fix(txn): validate verbs (#21519) 2024-07-05 14:51:20 -04:00
kvs_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
leader_ce_test.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
leader_connect.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_connect_ca.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
leader_connect_ca_test.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
leader_connect_test.go Remove flaky test assertions (#18870) 2023-09-18 15:56:23 -07:00
leader_federation_state_ae.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_federation_state_ae_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_intentions.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_intentions_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
leader_intentions_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
leader_intentions_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_log_verification.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_metrics.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_metrics_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_peering.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
leader_peering_test.go In-Memory gRPC (#19942) 2024-01-12 11:54:07 -05:00
leader_registrator_v1.go feat(v2): add consul service and workloads to catalog (#20077) 2024-01-03 15:14:42 -05:00
leader_registrator_v1_test.go feat(v2): add consul service and workloads to catalog (#20077) 2024-01-03 15:14:42 -05:00
leader_test.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
logging.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
logging_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
merge.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
merge_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
merge_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
merge_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_autopilot_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_autopilot_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_backend.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_backend_test.go remove the skipping of slow tests in go-tests-ce and go-test-enterprise (#20139) 2024-01-10 20:39:34 -07:00
operator_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_raft_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_raft_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
operator_usage_endpoint.go Enable callers to control whether per-tenant usage metrics are included in calls to store.ServiceUsage (#20672) 2024-03-01 13:44:55 -05:00
options.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
options_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
peering_backend.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
peering_backend_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
peering_backend_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
peering_backend_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
prepared_query_endpoint.go NET-5879 - move the filter for non-passing to occur in the health RPC layer rather than the callers of the RPC (#21098) 2024-05-14 07:05:54 -06:00
prepared_query_endpoint_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
prepared_query_endpoint_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
prepared_query_endpoint_test.go Fix bug with prepared queries using sameness-groups. (#19970) 2023-12-15 11:42:13 -06:00
raft_handle.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
raft_rpc.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
replication.go Set replication metric to 0 when losing leadership (#20665) 2024-08-29 16:51:44 +00:00
replication_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
rpc.go In-Memory gRPC (#19942) 2024-01-12 11:54:07 -05:00
rpc_test.go NET-9084 - add tests to peering endpoint and blockingquery package to assert blocking works properly. (#21078) 2024-05-09 14:55:13 -04:00
rtt.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
rtt_test.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
segment_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
serf_filter.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
serf_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server.go v2: remove HCP Link integration (#21883) 2024-11-07 11:47:55 -06:00
server_ce.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
server_ce_test.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
server_connect.go sidecar-proxy controller: L4 controller with explicit upstreams (NET-3988) (#18352) 2023-09-07 09:37:15 -06:00
server_grpc.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
server_log_verification.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_lookup.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_lookup_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_metadata.go Use safeio to write server metadata file (#20101) 2024-01-05 14:46:19 -05:00
server_metadata_test.go agent: prevent empty server_metadata.json (#19935) 2023-12-19 10:01:56 -05:00
server_overview.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_overview_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_register.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
server_serf.go gossip: refactor some gossip related libraries into a central place (#21036) 2024-05-07 10:30:49 -05:00
server_test.go remove v2 tenancy, catalog, and mesh (#21592) 2024-09-05 08:50:46 -06:00
session_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
session_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
session_timers.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
session_timers_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
session_ttl.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
session_ttl_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
snapshot_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
snapshot_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
stats_fetcher.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
stats_fetcher_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
status_endpoint.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
status_endpoint_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
subscribe_backend.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
subscribe_backend_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
system_metadata.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
system_metadata_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
tenancy_bridge.go add v2 tenancy bridge Flag and v2 Tenancy Bridge initial implementation (#18830) 2023-09-18 12:25:05 -04:00
tenancy_bridge_ce.go Remove old build tags (#19128) 2023-10-10 10:58:06 -04:00
txn_endpoint.go fix(txn): validate verbs (#21519) 2024-07-05 14:51:20 -04:00
txn_endpoint_test.go fix(txn): validate verbs (#21519) 2024-07-05 14:51:20 -04:00
type_registry.go v2: remove HCP Link integration (#21883) 2024-11-07 11:47:55 -06:00
util.go Add default intention policy (#20544) 2024-02-08 20:25:42 +00:00
util_test.go [COMPLIANCE] License changes (#18443) 2023-08-11 09:12:13 -04:00
v2_config_entry_exports_shim.go Trigger the V1 Compat exported-services Controller when V1 Config Entries are Updated (#20456) 2024-02-02 15:30:04 -05:00
v2_config_entry_exports_shim_test.go Trigger the V1 Compat exported-services Controller when V1 Config Entries are Updated (#20456) 2024-02-02 15:30:04 -05:00