Commit Graph

19231 Commits

Author SHA1 Message Date
Dan Upton 3b9297f95a
proxycfg: rate-limit delivery of config snapshots (#14960)
Adds a user-configurable rate limiter to proxycfg snapshot delivery,
with a default limit of 250 updates per second.

This addresses a problem observed in our load testing of Consul
Dataplane where updating a "global" resource such as a wildcard
intention or the proxy-defaults config entry could starve the Raft or
Memberlist goroutines of CPU time, causing general cluster instability.
2022-10-14 15:52:00 +01:00
Derek Menteer 6c355134e8 Add tests for peering state snapshots / restores. 2022-10-14 09:48:04 -05:00
Derek Menteer 27bbdced8d Add test for ExportedServicesForAllPeersByName 2022-10-14 09:48:04 -05:00
Alessandro De Blasis fe9078238e
Update website/content/api-docs/agent/check.mdx 2022-10-14 12:32:55 +01:00
Dan Upton 0a0534a094
perf: remove expensive reflection from xDS hot path (#14934)
Replaces the reflection-based implementation of proxycfg's
ConfigSnapshot.Clone with code generated by deep-copy.

While load testing server-based xDS (for consul-dataplane) we discovered
this method is extremely expensive. The ConfigSnapshot struct, directly
or indirectly, contains a copy of many of the structs in the agent/structs
package, which creates a large graph for copystructure.Copy to traverse
at runtime, on every proxy reconfiguration.
2022-10-14 10:26:42 +01:00
Michael Klein 00201936c8
Merge pull request #14977 from hashicorp/ui/fix/scrollbar-bento-box
ui: Bento-Box show scrollbars only when necessary
2022-10-14 09:07:57 +02:00
wenincode b761f583a8 Address linting errors 2022-10-13 19:05:19 -06:00
wenincode 229a97967a Add changelog entry 2022-10-13 18:54:39 -06:00
wenincode e36848111a Add tests for filtering node health checks 2022-10-13 18:45:15 -06:00
freddygv 89596f13c4 Use split var in tests 2022-10-13 17:12:47 -06:00
freddygv b4e48f0a70 Use split wildcard partition name
This way OSS avoids passing a non-empty label, which will be rejected in
OSS consul.
2022-10-13 16:55:28 -06:00
Freddy 909fc33271
Merge pull request #14935 from hashicorp/fix/alias-leak 2022-10-13 16:31:15 -06:00
freddygv c5040b8111 Add changelog entry 2022-10-13 16:09:32 -06:00
freddygv a468cbcce9 Add changelog entry 2022-10-13 16:03:15 -06:00
freddygv 452dc2867c Lint 2022-10-13 15:55:55 -06:00
wenincode c27cc17991 Format healthchecks template 2022-10-13 15:48:18 -06:00
wenincode 9526f9f4f5 Filter healthchecks for synthetic-nodes 2022-10-13 15:47:47 -06:00
David Yu e1093b8576
1.14 dataplane docs beta: Bump to beta3 (#14979)
Bump to beta
2022-10-13 14:40:40 -07:00
Derek Menteer 092e5fd074 Reset wait on ensureServerAddrSubscription 2022-10-13 15:58:26 -05:00
freddygv 437a513d9b Fix CA init error code 2022-10-13 14:58:11 -06:00
freddygv a0bcf4b941 Add integ test for peering through gateways 2022-10-13 14:58:05 -06:00
freddygv 37a765f8df Update leader routine to maybe use gateways 2022-10-13 14:58:00 -06:00
freddygv 239f0e3084 Update peering establishment to maybe use gateways
When peering through mesh gateways we expect outbound dials to peer
servers to flow through the local mesh gateway addresses.

Now when establishing a peering we get a list of dial addresses as a
ring buffer that includes local mesh gateway addresses if the local DC
is configured to peer through mesh gateways. The ring buffer includes
the mesh gateway addresses first, but also includes the remote server
addresses as a fallback.

This fallback is present because it's possible that direct egress from
the servers may be allowed. If not allowed then the leader will cycle
back to a mesh gateway address through the ring.

When attempting to dial the remote servers we retry up to a fixed
timeout. If using mesh gateways we also have an initial wait in
order to allow for the mesh gateways to configure themselves.

Note that if we encounter a permission denied error we do not retry
since that error indicates that the secret in the peering token is
invalid.
2022-10-13 14:57:55 -06:00
malizz 27d0181806
increase protobuf size limit for cluster peering (#14976) 2022-10-13 13:46:51 -07:00
Jasmine W 233a461fd1
Merge pull request #14975 from hashicorp/ui/bugfix/peering-misspelling
UI: Copy changes for peering detail page
2022-10-13 15:28:21 -04:00
Derek Menteer ff01c11672 Address PR comments. 2022-10-13 14:11:02 -05:00
Derek Menteer cc0a05ffa0 Disallow peering to the same cluster. 2022-10-13 14:11:02 -05:00
wenincode ae06401225 Update peers show tests to look for serverAddresses tab 2022-10-13 13:06:11 -06:00
Jasmine W aaf1277c6d Update index.js 2022-10-13 14:42:13 -04:00
Michael Klein 677bbcf4fa Bento-Box show scrollbars only when necessary 2022-10-13 20:27:19 +02:00
Derek Menteer d47c9b446c Prevent consul peer-exports by discovery chain. 2022-10-13 12:45:09 -05:00
Derek Menteer ee49db9a2f Prevent the "consul" service from being exported. 2022-10-13 12:45:09 -05:00
Jasmine W 718d4f5455 UI: Copy changes for peering detail page 2022-10-13 13:45:03 -04:00
wenincode 9d56feb77e Fix linting error 2022-10-13 10:59:48 -06:00
wenincode 3006025bbe Add changelog 2022-10-13 10:43:57 -06:00
wenincode 31cbbc85e3 Move agentless-notice banner css to it's own file 2022-10-13 10:38:26 -06:00
Michael Klein b6020c0b54
Merge pull request #14973 from hashicorp/ui/chore/consol-api-gateway-bottom-sources-filter
ui: Always sort consul-gateway to bottom sources list
2022-10-13 18:34:45 +02:00
wenincode eb2cdcfb94 Add tests for agentless-notice-banner 2022-10-13 10:29:03 -06:00
wenincode 5fc979ee6e Move banner to component and make it dismissable 2022-10-13 10:29:03 -06:00
wenincode 036ccaf72e Add banner for agentless node notice 2022-10-13 10:29:03 -06:00
Derek Menteer bfa4adbfce Add remote peer partition and datacenter info. 2022-10-13 10:37:41 -05:00
Michael Klein e9cd6753c7 Always sort consul-gateway to bottom sources list 2022-10-13 17:13:00 +02:00
Tyler Wendlandt a6b9219808
Merge pull request #14970 from hashicorp/ui/feature/filter-synthetic-nodes
ui: Filter synthetic nodes on nodes list page
2022-10-13 09:12:03 -06:00
Michael Klein e6cce385e7
Merge pull request #14947 from hashicorp/ui/feat/peer-detail-page
ui: peer detail view
2022-10-13 17:03:57 +02:00
Michael Klein b7f5e02109 Add changelog for peers detail page 2022-10-13 16:45:03 +02:00
Michael Klein e8f2024e43 Add tests peers.show 2022-10-13 16:45:03 +02:00
Michael Klein d9b4f5dab4 Fix href-to persists hash
Copy passed hash before manipulating it.

Assigning to the same hash object will break href-to
because in certain scenarios href-to-helper will
not create a new object that gets passed to
`fsm-with-optional`-hrefTo method.

This is problematic for optional route-params, and lead
to a situation where links to peered services would
create the wrong url for their href-attribute.
2022-10-13 16:45:03 +02:00
Michael Klein 4c2a5c31dc Update peering mocks 2022-10-13 16:45:03 +02:00
Michael Klein db4b38c36e Fix linting error dimension service 2022-10-13 16:45:03 +02:00
Michael Klein c3237ebed4 Fix peering regenerate test
* only dialers will show a regenerate token action
* add test that receivers won't show regenerate action
2022-10-13 16:45:03 +02:00