Commit Graph

18985 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
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
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
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
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
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
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
Michael Klein 56e5081f46 Update yarn.lock 2022-10-13 16:45:03 +02:00
Michael Klein e19008e54b Don't `--focus` for dist-vercel
This breaks the vercel deploy as `--focus` will try to install
workspace dependency from the registry:

Reference:
https://github.com/yarnpkg/yarn/issues/5864
https://github.com/yarnpkg/yarn/issues/6715
2022-10-13 16:43:54 +02:00
Michael Klein 8d0c18f1ed Link to peer.show service-instance peer-info 2022-10-13 16:43:54 +02:00
Michael Klein 482ee42efc Prettify dc.services.show template 2022-10-13 16:43:54 +02:00
Michael Klein f2e0df1534 Use translations for empty states peers.show 2022-10-13 16:43:54 +02:00
Michael Klein 35d8035258 Update dimension provider
* simplify implementation
* add docs
2022-10-13 16:43:54 +02:00
Michael Klein 5a8678e596 Rename `peers.edit` to `peers.show` 2022-10-13 16:43:54 +02:00
Michael Klein 3d1f032b51 Fix bucket-list display depends on navigation
We need to explicitly tell the UI to not show the bucket-list
when we are displaying imported services. If we make
this depend on the data we will sometimes not show
it due to data-loader caching.
2022-10-13 16:43:54 +02:00
Michael Klein 0ad4334597 Match design order health states imported-services 2022-10-13 16:43:54 +02:00
Michael Klein 02c74807b3 Use existing freefilter to match existing design 2022-10-13 16:43:49 +02:00
Michael Klein 33cf82a2d5 Add filtering for 'unknown' imported services 2022-10-13 16:43:49 +02:00
Michael Klein fb306b39d8 Add `unknown`-state predicate services
Based on the new peer relationship
2022-10-13 16:43:49 +02:00
Michael Klein 9624ecadb0 Update imported/export count on peers
Api has changed we need to adjust accordingly.
2022-10-13 16:43:49 +02:00
Michael Klein fd94a0681b Add peer as a belongs-to to service
Working with a peer model as a relationship is much
easier than to workaround a non-relationship in
imported services. This is currently only relevant
for imported-services where we know the peer
in advance.
2022-10-13 16:43:49 +02:00
Michael Klein 2f19d4e97e Always transition to imported peers.edit 2022-10-13 16:43:49 +02:00
Michael Klein 1228b9a8a8 Prototype StreamStatus integration peers detail 2022-10-13 16:43:49 +02:00
Michael Klein 2bc2079758 Move peering bento box into dedicated component 2022-10-13 16:43:49 +02:00
Michael Klein b9d5d3cb62 Don't handle undefined in smart-date-format
We will handle that from the outside
2022-10-13 16:43:38 +02:00
Michael Klein 96015e60d5 Add bento box peers.edit 2022-10-13 16:43:38 +02:00
Michael Klein be604a2828 Implement smart-date-format-helper
Add a helper that knows how to format past dates
in a smart way. When less than a week ago we will
use relative date strings - for dates older than a week
we will use a friendly human-readable format.

This matches best practices we want to adhere to
based on what Terraform did for date-formatting.
2022-10-13 16:43:38 +02:00