12669 Commits

Author SHA1 Message Date
Daniel Nephin
529f252d5c rpcclient: Add health.Client and use it in http and dns
This new package provides a client agent implementation of an interface
for fetching the health of services.

This approach has a number of benefits:

1. It provides a much more explicit interface. Instead of everything
   dependency on `RPC()` and `Cache.Get()` for many unrelated things
   they can depend on a type that are named according to the behaviour
   it provides.

2. It gives us a single place to vary the behaviour and migrate to
   a new form of RPC (gRPC). The current implementation has two options
   (cache, or direct RPC), and in the future we will have more.
   It is also a great opporunity to start adding `context.Context` args
   to these operations, which in the future will allow us to cancel
   the operations.

3. As a concequence of the first, in the Server agent where we make
   these calls we can replace the current in-memory RPC calls with
   a thin adapter for the real method. This removes the `net/rpc`
   machinery from the call in places where it is not needed.

This new package is quite small right now, but I think we can expect it
to grow to a more reasonable size as other RPC calls are replaced.

This change also happens to replace two very similar implementations with
a single implementation.
2020-10-04 18:55:02 -04:00
Daniel Nephin
e54567223b lib/retry: Refactor to reduce the interface surface
Reduce Jitter to one function

Rename NewRetryWaiter

Fix a bug in calculateWait where maxWait was applied before jitter, which would make it
possible to wait longer than maxWait.
2020-10-04 18:12:42 -04:00
Daniel Nephin
7b4aca2088 lib/retry: export fields
The fields are only ever read by Waiter, and
setting the fields makes the calling code read much better without
having to create a bunch of constants that only ever get used once.
2020-10-04 17:43:02 -04:00
Daniel Nephin
ca26dfb4a2 lib/retry: extract a new package from lib 2020-10-04 17:43:01 -04:00
Kit Patella
52451cf846
Merge pull request #8271 from coignetp/http-metrics-label
Use method and path as labels for http metrics
2020-10-02 13:41:48 -07:00
hashicorp-ci
90b5f1a838 auto-updated agent/uiserver/bindata_assetfs.go from commit 8b409529a 2020-10-02 19:28:38 +00:00
Alvin Huang
8b409529aa
ci: fix bindata autoupdate (#8801)
* update bindata on ui-v2/ changes

* Revert "Remove GIT_SHA environment variable"

This reverts commit f620f9aefd41362ce76c3a8e0f4addf402ee0ca2.

* Revert "Hardcode in an app version for ember-cli-app-version"

This reverts commit 5ae493d79b34ef2143d78a44c21a63623140bba8.

* revert modtime change in #8712
2020-10-02 15:23:38 -04:00
Daniel Nephin
1c6be5ac75 stream: full test coverage for EventPublisher.Subscribe 2020-10-02 13:46:24 -04:00
Daniel Nephin
b88f817bc5 Update proto for change to stream framing events 2020-10-02 13:41:32 -04:00
Daniel Nephin
a5df5d17b4 stream: refactor to support change in framing events
Removing EndOfEmptySnapshot, add NewSnapshotToFollow
2020-10-02 13:41:31 -04:00
Daniel Nephin
526d005d72
Merge pull request #8711 from hashicorp/streaming/add-protobuf-types-convert-gen
proto: add code to convert between protobuf types and structs types
2020-10-02 13:34:12 -04:00
Daniel Nephin
04b51de783
Merge pull request #8769 from hashicorp/streaming/prep-for-subscribe-service
state: use protobuf Topic and and export payload type
2020-10-02 13:30:06 -04:00
John Cowen
f0ee2055b7
ui: Show service and node checks as a merged list sorted by health (#8797) 2020-10-02 09:09:05 +01:00
Luke Kysow
6abc6a293c
Update k8s upgrade docs (#8789)
* Update k8s upgrade docs
2020-10-01 14:36:15 -07:00
Paul Banks
d0c160130b
Merge pull request #8694 from hashicorp/ui-config-metrics
Add config changes for UI metrics
2020-10-01 17:38:03 +01:00
Paul Banks
3b8125a24d
Update all the references in CI and makefile to the bindata file location 2020-10-01 16:19:10 +01:00
R.B. Boyer
9a55c50694
ensure these tests work fine with namespaces in enterprise (#8794) 2020-10-01 09:54:46 -05:00
R.B. Boyer
9801ef8eb1
agent: enable enable_central_service_config by default (#8746) 2020-10-01 09:19:14 -05:00
John Cowen
b77712b911
ui: Fix up tab separator CSS to not apply to all tabs (#8792) 2020-10-01 14:33:48 +01:00
John Cowen
d2103a61d8
ui: Initialize chain variable to null (#8791) 2020-10-01 14:31:29 +01:00
Paul Banks
3ff5901be8
Fix ui dir where there is no index tests and lint issue. 2020-10-01 12:26:19 +01:00
Paul Banks
e4db845246
Refactor uiserver to separate package, cleaner Reloading 2020-10-01 11:32:25 +01:00
John Cowen
967afbaaf4
ui: Outlet Loading (#8779)
Moves all Route/model hook loading to use Outlet components which listen on route change.
2020-10-01 09:33:22 +01:00
R.B. Boyer
237a7a0da0
server: ensure that we also shutdown network segment serf instances on server shutdown (#8786)
This really only matters for unit tests, since typically if an agent shuts down its server, it follows that up by exiting the process, which would also clean up all of the networking anyway.
2020-09-30 16:23:43 -05:00
Alvin Huang
e138a6499c
ci: only add consul binary to dev tarball (#8785) 2020-09-30 16:49:50 -04:00
Paul Banks
f6d55e1d25
Fix reload test; address other PR feedback 2020-09-30 18:00:07 +01:00
Paul Banks
54a33efa4b
Fix JSON encoding of metrics options which broke the index but didn't break tests.
Also add tests that do catch that error.
2020-09-30 17:59:19 +01:00
Paul Banks
526bab6164
Add config changes for UI metrics 2020-09-30 17:59:16 +01:00
Daniel Nephin
0df4371be2
Merge pull request #8782 from hashicorp/dnephin/disable-codecov-annotations
Disable codecov annotations in github PRs
2020-09-30 12:29:40 -04:00
Daniel Nephin
89f44cc4d0 Disable publish static assets
The contents are diff on every change, so it is publishing in a loop
2020-09-30 12:25:25 -04:00
Daniel Nephin
da501d91da Disable codecov annotations in github PR diffs 2020-09-30 12:24:30 -04:00
hashicorp-ci
b6406df147 auto-updated agent/bindata_assetfs.go from commit 1a6f3d524 2020-09-30 15:28:06 +00:00
hashicorp-ci
1a6f3d5246 auto-updated agent/bindata_assetfs.go from commit 8e174cae6 2020-09-30 15:23:27 +00:00
hashicorp-ci
8e174cae66 auto-updated agent/bindata_assetfs.go from commit 823d6dadb 2020-09-30 15:17:41 +00:00
Alvin Huang
823d6dadbf
add git config for static assets (#8777)
* add git config for static assets

* add commit sha to static-asset auto commit
2020-09-30 11:12:36 -04:00
Kenia
207491eaa7
ui: Update to service index page (#8775)
* Add 'in service mesh ...' to the composite rows in Service List page

* Add associated services count to terminating and ingress gateways in Service List page

* Update mesh icon in icon-defintion files
2020-09-30 09:13:38 -04:00
John Cowen
ed9826bbbe
ui: Centralized Config Intention Permission CRUD (#8762) 2020-09-30 12:33:01 +01:00
Daniel Nephin
5261bb0d0d
Merge pull request #8776 from hashicorp/ci/fix-auto-bindata
commit a new bindata file if there are changes
2020-09-29 19:34:52 -04:00
Alvin Huang
8e6f8714ba commit a new bindata file if there are changes 2020-09-29 18:10:05 -04:00
Alvin Huang
87f6617eec
ci:add check for bindata_assetfs changes (#8712)
* add check for bindata_assetfs changes

* Remove GIT_SHA environment variable

* Hardcode in an app version for ember-cli-app-version

* change ' to " for CONSUL_UI_SETTINGS_PLACEHOLDER

Co-authored-by: John Cowen <jcowen@hashicorp.com>
Co-authored-by: hashicorp-ci <hashicorp-ci@users.noreply.github.com>
2020-09-29 17:03:45 -04:00
John Cowen
d27475b239
ui: Upgrades ember and related to latest 3.20 LTS release (#8761)
* ui: Upgrades ember and related to latest 3.20 LTS release

* Delete ember-portal related tests

As we are running inline and block component tests in the same test an
error is raised as we are adding the same named portal twice.

Tests were deleted here as they weren't really testing anything anyway
2020-09-29 16:59:35 +01:00
Freddy
a9c3b53604
UI Service Dump Gateway Enhancements
This PR adds some enhancements needed for additional UI functionality related to gateways:

* ConnectedWithProxy and ConnectedWithGateway track whether a service is proxied by a gateway or Connect proxy.
* GatewayConfig.AssociatedServiceCount tracks the number of service names associated with a gateway
The main change is that Internal.ServiceDump now returns a dump of the gateway-services table, and we join the information from both of those on the client side.
2020-09-29 09:26:29 -06:00
freddygv
9fa1b13df9 Resolve conflicts 2020-09-29 08:59:18 -06:00
R.B. Boyer
d2eb27e0a3
api: support GetMeta() and GetNamespace() on all config entry kinds (#8764)
Fixes #8755

Since I was updating the interface, i also added the missing `GetNamespace()`.

Depending upon how you look at it, this is a breaking change since it adds methods to the exported interface `api.ConfigEntry`. Given that you cannot define your own config entry kinds, and all of the machinery of the `api.Client` acts like a factory to construct the canned ones from the rest of the module, this feels like it's not a problematic change as it would only break someone who had reimplemented the `ConfigEntry` interface themselves for no apparent utility?
2020-09-29 09:11:57 -05:00
Daniel Nephin
b7ca15e910 stream: move goroutine out of New
This change will make it easier to manage goroutine lifecycle from the caller.

Also expose EventPublisher from state.Store
2020-09-28 18:40:10 -04:00
Daniel Nephin
0fb2a5b992 state: use pbsubscribe.Topic for topic values 2020-09-28 18:40:10 -04:00
Daniel Nephin
7b1534ef05 state: rename and export EventPayload
The subscribe endpoint needs to be able to inspect the payload to filter
events, and convert them into the protobuf types.

Use the protobuf CatalogOp type for the operation field, for now. In the
future if we end up with multiple interfaces we should be able to remove
the protobuf dependency by changing this to an int32 and adding a test
for the mapping between the values.

Make the value of the payload a concrete type instead of interface{}. We
can create other payloads for other event types.
2020-09-28 18:34:30 -04:00
Daniel Nephin
20236e9b6e proto: Add a round trip test for converting types 2020-09-28 18:28:37 -04:00
Daniel Nephin
627449a870 Vendor gofuzz and google/go-cmp 2020-09-28 18:28:37 -04:00
Daniel Nephin
79f70181d8 proto: add code to convert between protobuf types and structs types
For streaming service health events.

Code generated using mog.
2020-09-28 18:28:37 -04:00