Commit Graph

12224 Commits

Author SHA1 Message Date
Matt Keeler 12acdd7481
Disable background cache refresh for Connect Leaf Certs
The rationale behind removing them is that all of our own code (xDS, builtin connect proxy) use the cache notification mechanism. This ensures that the blocking fetch behind the scenes is always executing. Therefore the only way you might go to get a certificate and have to wait is when 1) the request has never been made for that cert before or 2) you are using the v1/agent/connect/ca/leaf API for retrieving the cert yourself.

In the first case, the refresh change doesn’t alter the behavior. In the second case, it can be mitigated by using blocking queries with that API which just like normal cache notification mechanism will cause the blocking fetch to be initiated and to get leaf certs as soon as needed.

If you are not using blocking queries, or Envoy/xDS, or the builtin connect proxy but are retrieving the certs yourself then the HTTP endpoint might take a little longer to respond.

This also renames the RefreshTimeout field on the register options to QueryTimeout to more accurately reflect that it is used for any type that supports blocking queries.
2020-07-21 12:19:25 -04:00
Matt Keeler 9da8c51ac5
Fix issue with changing the agent token causing failure to renew the auto-encrypt certificate
The fallback method would still work but it would get into a state where it would let the certificate expire for 10s before getting a new one. And the new one used the less secure RPC endpoint.

This is also a pretty large refactoring of the auto encrypt code. I was going to write some tests around the certificate monitoring but it was going to be impossible to get a TestAgent configured in such a way that I could write a test that ran in less than an hour or two to exercise the functionality.

Moving the certificate monitoring into its own package will allow for dependency injection and in particular mocking the cache types to control how it hands back certificates and how long those certificates should live. This will allow for exercising the main loop more than would be possible with it coupled so tightly with the Agent.
2020-07-21 12:19:25 -04:00
Daniel Nephin 2c306e4083
Merge pull request #8346 from hashicorp/dnephin/fix-race-in-agent-checks
checks: wait for goroutine to complete (fix go-test-race failures)
2020-07-21 11:57:57 -04:00
duncanKr 6778d58a74
ui: Table element's have vertical scrollbars (#8296)
Close #8294. Set overflow to hidden for both x and y axis. This prevents the overflow-y defaulting to auto, and creating scrollbars. Given the text overflow is set to ellipsis, this doesn't change the UI functionality.
2020-07-21 09:41:11 -04:00
Ondrej Sika 594cb70a73
ui: Fix swapped node & service checks by fixing filter-by & reject-by (#8338) 2020-07-20 19:45:25 -04:00
Daniel Nephin 4843551125 ci: Add jsonfile artifact for go-test-race
So that we can better debug failures
2020-07-20 19:07:58 -04:00
Daniel Nephin 1910e2a246 checks: wait for goroutine to complete
CheckAlias already had a waitGroup, but the Add() call was happening too late, which was causing a race in tests. The add must happen before the goroutine is started.

CheckHTTP did not have a waitGroup, so I added it to match CheckAlias.

It looks like a lot of the implementation could be shared, and may not need all of channel, waitgroup and bool, but I will leave that refactor for another time.
2020-07-20 18:55:39 -04:00
Daniel Nephin 9482961b1c stream: handle empty event in TestEventSnapshot
When the race detector is enabled we see this test fail occasionally. The reordering of execution seems to make it possible for the snapshot splice to happen before any events are published to the topicBuffers.

We can handle this case in the test the same way it is handled by a subscription, by proceeding to the next event.
2020-07-20 18:20:02 -04:00
Joel Watson 49edce1076
docs: Add raft_multiplier default clarification (#8339) 2020-07-20 15:49:46 -06:00
Alvin Huang dd9f5928fc
add v to version pretty formatter (#8341)
* add v to version pretty formatter

* remove v from json version output
2020-07-20 17:43:10 -04:00
Daniel Nephin 57e00b0fd5
Merge pull request #8245 from hashicorp/dnephin/use-not-modified-in-cache
agent/cache: Use AllowNotModified in CatalogListServices
2020-07-20 15:30:52 -04:00
Daniel Nephin 29571465e1
Merge pull request #8290 from hashicorp/dnephin/watch-decode
watch: fix script watches with single arg
2020-07-20 14:41:17 -04:00
Daniel Nephin 6e2186beee
Merge pull request #8328 from hashicorp/dnephin/go1.14.6
ci: Use go1.14.6
2020-07-20 13:32:54 -04:00
Kit Patella 1cd5ef694f
Merge pull request #8331 from hashicorp/cli/fix-cas-when-zero
command: fix cas put when index=0 and better errors in put and delete
2020-07-20 10:27:37 -07:00
John Cowen 5f3312a8ac
ui: Namespaces Redesign (#8336)
* ui: Add new consul-nspace-list component

* ui: Use new consul-nspace-list component

* Fix up other components to use linkable list-collection action

* ui: Remove some dead CSS
2020-07-20 18:12:34 +01:00
John Cowen 5a5f87e5a7
ui: KV Form and List Components (#8307)
* Add components for KV form, KV list and Session form

* Pass through a @label attribute for a human label + don't require error

* Ignore transition aborted errors for if you are re-transitioning

* Make old confirmation dialog more ember-like and tagless

* Make sure data-source and data-sink supports KV and sessions

* Use new components and delete all the things

* Fix up tests

* Make list component tagless

* Add component pageobject and fixup tests from that

* Add eslint warning back in
2020-07-20 18:04:43 +01:00
John Cowen 7a7311d736
ui: Add some missed spaces in component README files (#8335) 2020-07-20 17:43:10 +01:00
Kit Patella 0fe7e987f0 command/kv: remove error case in put and edit error message for delete 2020-07-20 09:15:25 -07:00
Kit Patella f530fe558f command: fix cas put when index=0 and better errors in put and delete 2020-07-17 13:03:36 -07:00
Daniel Nephin e07b20e75a
Merge pull request #8269 from hashicorp/dnephin/ci-add-go-test-race
ci: add 'go test -race'
2020-07-17 14:35:32 -04:00
Daniel Nephin 099000e850 ci: add 'go test -race' job
Running every test with the race detector would add significant time to
CI. That additionaltime won't provide much value as many of the integration tests use
much of the same code.

For now we can run -race on some of the smaller packages. As we move
more code into smaller packages we should be able to add more packages
to the list that runs with '-race'.

For now this is running without parallelism, but we can enable that as
well when we need it.

boltdb fails the 'checkptr' check, which is automatically enabled by
'-race', so I've disabled checkptr as well.
2020-07-17 13:32:16 -04:00
Alvin Huang e206307c4f
ci: separate install-gotestsum step into its own config (#8327) 2020-07-17 13:00:31 -04:00
Daniel Nephin b8a405b604 ci: Use go1.14.6
Includes the security patches from go14.5 and https://github.com/golang/go/issues/39308
to fix our test logs.
2020-07-17 12:02:16 -04:00
Blake Covarrubias 1ec81bb20c docs: Fix heading for list prepared queries endpoint 2020-07-17 09:00:17 -07:00
John Cowen 5d1ce1e120
ui: Move routes to use data-sources (#8321)
* Add uri identifiers to all data source things and make them the same

1. Add uri identitifer to data-source service
2. Make <EventSource /> and <DataSource /> as close as possible
3. Add extra `.closed` method to get a list of inactive/closed/closing
data-sources from elsewhere

* Make the connections cleanup the least worst connection when required

* Pass the uri/request id through all the things

* Better user erroring

* Make event sources close on error

* Allow <DataLoader /> data slot to be configurable

* Allow the <DataWriter /> removed state to be configurable

* Don't error if meta is undefined

* Stitch together all the repositories into the data-source/sink

* Use data.source over repositories

* Add missing  <EventSource /> components

* Fix up the views/templates

* Disable all the old route based blocking query things

* We still need the repo for the mixin for the moment

* Don't default to default, default != ''
2020-07-17 14:42:45 +01:00
John Cowen aa8fb9a8dc
ui: Fix sticky action popover menus (#8326)
* ui Close more-popover-menus in KV and nspaces on confirmation

* ui: Close more-popovermenus on confirmation on composite-rows
2020-07-17 14:28:32 +01:00
John Cowen e2c734f063
ui: Change some components to use willDestroyElement vs willDestroy (#8313)
* ui: Change <DataSource /> to use willDestroyElement vs willDestroy

* Change 3 more components to use willDestroyElement vs willDestroy
2020-07-17 09:49:58 +01:00
Blake Covarrubias 340bc68e45
docs: Fix link to kv_max_value_size config option (#8322)
The sizing recommendation link should point to the config option for
tuning kv_max_value_size.
2020-07-16 14:13:06 -07:00
Sabeen Syed d0f222008c
Merge pull request #8259 from hashicorp/enterprise_docs_update
Consul Enterprise docs update
2020-07-16 15:34:15 -05:00
Daniel Nephin 4e16e99850
Merge pull request #8282 from hashicorp/dnephin/unmethod-store-funcs-oss
state: convert methods that don't use their receiver to functions
2020-07-16 16:04:19 -04:00
Daniel Nephin ecccb30690 state: update calls that are no longer state methods
In a previous commit these methods were changed to functions, so remove the Store paramter.
2020-07-16 15:46:10 -04:00
Daniel Nephin 2008884241 state: un-method funcs that don't use their receiver
This change was mostly automated with the following

First generate a list of functions with:

  git grep -o 'Store) \([^(]\+\)(tx \*txn' ./agent/consul/state | awk '{print $2}' | grep -o '^[^(]\+'

Then the list was curated a bit with trial/error to remove and add funcs
as necessary.

Finally the replacement was done with:

  dir=agent/consul/state
  file=${1-funcnames}

  while read fn; do
    echo "$fn"
    sed -i -e "s/(s \*Store) $fn(/$fn(/" $dir/*.go
    sed -i -e "s/s\.$fn(/$fn(/" $dir/*.go
    sed -i -e "s/s\.store\.$fn(/$fn(/" $dir/*.go
  done < $file
2020-07-16 15:30:39 -04:00
Daniel Nephin 63b153df8c store: convert methods that don't use their receiver to functions
Making these functions allows them to be used without introducing
an artificial dependency on the struct. Many of these will be called
from streaming Event processors, which do not have a store.

This change is being made ahead of the streaming work to get to reduce
the size of the streaming diff.
2020-07-16 15:30:10 -04:00
John Cowen 061276007e
ui: Better error message checking for cross dc connect check (#8320) 2020-07-16 18:27:34 +01:00
André 3bc27df844
minor: fix docstring of DNSOnlyPassing (#8318)
In runtime.go it had "duration" but it is actually a boolean.
2020-07-16 09:47:33 -04:00
Rebecca Zanzig a93bc5cd18
Merge pull request #8140 from hashicorp/k8s/gateway-setup-docs
K8s ingress and terminating gateway setup docs
2020-07-15 16:44:36 -07:00
Kyle Schochenmaier 5f8825af96
Apply suggestions from code review 2020-07-15 18:24:55 -05:00
Kyle Schochenmaier eb6b9f4b37
Merge branch 'master' into k8s/gateway-setup-docs 2020-07-15 17:47:21 -05:00
Kyle Schochenmaier 1227974f43
ingress gw docs for k8s (#8291)
Co-authored-by: Derek Strickland 
Co-authored-by: Luke Kysow <1034429+lkysow@users.noreply.github.com>
2020-07-15 17:45:20 -05:00
Jeff Escalante ecc406562a
Merge pull request #8230 from hashicorp/je.pin-deps
📌 Hard Pin Website Dependencies
2020-07-15 18:45:19 -04:00
Jeff Escalante 338af8ac6b
Merge pull request #8277 from hashicorp/je.website-maintenance-7-8-20
Update dependencies, format all files
2020-07-15 18:44:53 -04:00
Kyle Schochenmaier 8c7a4c8063 update sidebar 2020-07-15 17:42:48 -05:00
Kyle Schochenmaier 8049aac526 remove term-gw until its ready to merge and update redirects 2020-07-15 17:38:23 -05:00
Alvin Huang c591d40be0
add back missing quote in bashenv for CI (#8317) 2020-07-15 17:21:40 -04:00
Alvin Huang 5bdf8a2d53
[skip ci] bump master to 1.9.0 to track next release version (#8315) 2020-07-15 14:48:36 -04:00
Daniel Nephin 41b0bf9571
Merge pull request #8160 from hashicorp/streaming/add-event-publisher
streaming: add EventPublisher and stream package
2020-07-15 12:46:26 -04:00
Daniel Nephin 2ec3760b70 agent/cache: Use AllowNotModifiedResponse in CatalogListServices
Co-authored-by: Pierre Souchay <pierresouchay@users.noreply.github.com>
2020-07-14 18:58:20 -04:00
Daniel Nephin dbb8d14728 agent/cache: Update some docstrings 2020-07-14 18:58:20 -04:00
Daniel Nephin c07acbeb6b stream: Add forceClose and refactor subscription filtering
Move the subscription context to Next. context.Context should generally
never be stored in a struct because it makes that struct only valid
while the context is valid. This is rarely obvious from the caller.
Adds a forceClosed channel in place of the old context, and uses the new
context as a way for the caller to stop the Subscription blocking.

Remove some recursion out of bufferImte.Next. The caller is already looping so we can continue
in that loop instead of recursing. This ensures currentItem is updated immediately (which probably
does not matter in practice), and also removes the chance that we overflow the stack.

NextNoBlock and FollowAfter do not need to handle bufferItem.Err, the caller already
handles it.

Moves filter to a method to simplify Next, and more explicitly separate filtering from looping.

Also improve some godoc

Only unwrap itemBuffer.Err when necessary
2020-07-14 15:57:47 -04:00
Daniel Nephin f19f8e99bb stream: Improve docstrings
Also rename ResumeStrema to EndOfEmptySnapshot to be more consistent with other framing events

Co-authored-by: Paul Banks <banks@banksco.de>
2020-07-14 15:57:47 -04:00