Commit Graph

9870 Commits (614ac96fa6e5f17f99e24b4e7f5ba3b36d68d05c)

Author SHA1 Message Date
Paul Banks 0b5a078b95
Optimize health watching to single chan/goroutine. (#5449)
Refs #4984.

Watching chans for every node we touch in a health query is wasteful. In #4984 it shows that if there are more than 682 service instances we always fallback to watching all services which kills performance.

We already have a record in MemDB that is reliably update whenever the service health result should change thanks to per-service watch indexes.

So in general, provided there is at least one service instances and we actually have a service index for it (we always do now) we only ever need to watch a single channel.

This saves us from ever falling back to the general index and causing the performance cliff in #4984, but it also means fewer goroutines and work done for every blocking health query.

It also saves some allocations made during the query because we no longer have to populate a WatchSet with 3 chans per service instance which saves the internal map allocation.

This passes all state store tests except the one that explicitly checked for the fallback behaviour we've now optimized away and in general seems safe.
2019-03-15 20:18:48 +00:00
Paul Banks 6458fdd876
Update CHANGELOG.md 2019-03-15 20:16:13 +00:00
Pierre Souchay 88d4383410 Ensure we remove Connect proxy before deregistering the service itself (#5482)
This will fix https://github.com/hashicorp/consul/issues/5351
2019-03-15 20:14:46 +00:00
Alex Mayer 585978ab94 Docs Proofing (#5424)
* Docs: Remove default_policy From Code Example

It is not needed according to:
https://www.consul.io/docs/agent/acl-system.html#configuring-acls

* Docs: Cleanup Commands And Their Output On ACL Guide Page

Remove extra spaces and newlines
Ensure rules match input rules

* Docs: Remove Incomplete "Added In Version" Statement

Version added is specified on parent option

* Docs: Fix Broken Links

* Docs: Minor Sentence Tweaks
2019-03-15 09:35:33 -05:00
Matt Keeler 33d0922db3
Update CHANGELOG.md 2019-03-14 11:10:32 -04:00
Valentin Fritz 21f149de8b Fix checks removal when removing service (#5457)
Fix my recently discovered issue described here: #5456
2019-03-14 11:02:49 -04:00
R.B. Boyer cd96af4fc0
acl: reduce complexity of token resolution process with alternative singleflighting (#5480)
acl: reduce complexity of token resolution process with alternative singleflighting

Switches acl resolution to use golang.org/x/sync/singleflight. For the
identity/legacy lookups this is a drop-in replacement with the same
overall approach to request coalescing.

For policies this is technically a change in behavior, but when
considered holistically is approximately performance neutral (with the
benefit of less code).

There are two goals with this blob of code (speaking specifically of
policy resolution here):

  1) Minimize cross-DC requests.
  2) Minimize client-to-server LAN requests.

The previous iteration of this code was optimizing for the case of many
possibly different tokens being resolved concurrently that have a
significant overlap in linked policies such that deduplication would be
worth the complexity. While this is laudable there are some things to
consider that can help to adjust expectations:

  1) For v1.4+ policies are always replicated, and once a single policy
  shows up in a secondary DC the replicated data is considered
  authoritative for requests made in that DC. This means that our
  earlier concerns about minimizing cross-DC requests are irrelevant
  because there will be no cross-DC policy reads that occur.

  2) For Server nodes the in-memory ACL policy cache is capped at zero,
  meaning it has no caching. Only Client nodes run with a cache. This
  means that instead of having an entire DC's worth of tokens (what a
  Server might see) that can have policy resolutions coalesced these
  nodes will only ever be seeing node-local token resolutions. In a
  reasonable worst-case scenario where a scheduler like Kubernetes has
  "filled" a node with Connect services, even that will only schedule
  ~100 connect services per node. If every service has a unique token
  there will only be 100 tokens to coalesce and even then those requests
  have to occur concurrently AND be hitting an empty consul cache.

Instead of seeing a great coalescing opportunity for cutting down on
redundant Policy resolutions, in practice it's far more likely given
node densities that you'd see requests for the same token concurrently
than you would for two tokens sharing a policy concurrently (to a degree
that would warrant the overhead of the current variation of
singleflighting.

Given that, this patch switches the Policy resolution process to only
singleflight by requesting token (but keeps the cache as by-policy).
2019-03-14 09:35:34 -05:00
kaitlincarter-hc aec25fde59
[docs] Deploying Consul with Kubernetes (#5471)
* Adding new K8s guide.

* Update website/source/docs/guides/kuberenetes-deployment.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Update website/source/docs/guides/kuberenetes-deployment.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* updating based on feedback.

* Couple updates based on feedback.

* Update website/source/docs/guides/kuberenetes-deployment.html.md

* updating value file.
2019-03-13 16:56:00 -05:00
Rebecca Zanzig 34e9eab0d6 Add docs for using Helm `--set` to create extraConfig variables (#5474)
* Add docs for using Helm `--set` to create extraConfig variables

Based on info provided for `consul-helm` issue 74.

* fixing formatting
2019-03-13 16:25:09 -05:00
Alvin Huang 31ae343dba
add sentinel redir (#5484) 2019-03-13 14:11:24 -04:00
kaitlincarter-hc 51acd28d3b
[docs] Move Sentinel documentation (#5478)
* Moving sentinel doc

* updating links, fixing headings.

* Update website/source/docs/agent/acl-rules.html.md
2019-03-13 12:47:25 -05:00
Alvin Huang cb1967259e
Merge pull request #5483 from hashicorp/add-bootstrap-redir
update bootstrap redirect
2019-03-13 11:53:45 -04:00
Alvin Huang d5d586af96
update bootstrap redirect 2019-03-13 11:25:54 -04:00
kaitlincarter-hc 1333bfe324
[docs] Bootstrapping Guide -> Install docs (#5473)
* moved the bootstrapping guide to the docs.

* More edits for consistency.

* Added arch link
2019-03-13 10:12:52 -05:00
Paul Banks a7528db560
Update CHANGELOG.md 2019-03-13 13:18:55 +00:00
Hans Hasselberg 7e11dd82aa
agent: enable reloading of tls config (#5419)
This PR introduces reloading tls configuration. Consul will now be able to reload the TLS configuration which previously required a restart. It is not yet possible to turn TLS ON or OFF with these changes. Only when TLS is already turned on, the configuration can be reloaded. Most importantly the certificates and CAs.
2019-03-13 10:29:06 +01:00
Reid Beels cd1aa9b426 Remove misleading encrypt param documentation (#5452)
According to https://www.consul.io/docs/agent/options.html#_encrypt, the `encrypt` param specifies the 16-byte key to use, not the path to a config file containing the key.
2019-03-12 10:26:40 -05:00
R.B. Boyer 2e175be41b
acl: correctly extend the cache for acl identities during resolution (#5475) 2019-03-12 10:23:43 -05:00
Alvin Huang 21fcfcad7f
Merge pull request #5451 from hashicorp/update_go_discover_for_azure
Update go-discover vendor
2019-03-11 16:39:39 -04:00
Lowe Schmidt e293045751 Typo fix (segement > segment) (#5469) 2019-03-11 16:25:19 +01:00
Paul Banks ec7d700bf4
Update CHANGELOG.md 2019-03-11 14:49:49 +00:00
Aestek 4bea29f15a [catalog] Update the node's services indexes on update (#5458)
Node updates were not updating the service indexes, which are used for
service related queries. This caused the X-Consul-Index to stay the same
after a node update as seen from a service query even though the node
data is returned in heath queries. If that happened in between queries
the client would miss this change.
We now update the indexes of the services on the node when it is
updated.

Fixes: #5450
2019-03-11 14:48:19 +00:00
Masato Yamazaki 23bc8636c1 website: delete duplication of "are" (#5464) 2019-03-11 10:42:15 +01:00
petems a505e6e9da Update go-discover vendor
* Adds note about use of ENV variables for auto-join on Azure
2019-03-08 22:57:48 +00:00
Alvin Huang 9c08893ae4
Merge pull request #5453 from hashicorp/circleci2.0-config
refactor circleci config to 2.0
2019-03-08 16:10:57 -05:00
Alvin Huang 329d8b7cfb refactor circleci config to 2.0 2019-03-08 16:03:40 -05:00
Rebecca Zanzig 8d98032ed9
Merge pull request #5445 from hashicorp/docs/helm-annotations
Add docs for new Helm `annotations` options
2019-03-08 12:11:30 -08:00
kaitlincarter-hc 4699423a18
[Docs] ACL Bootstrap Guide (#5399)
* Adding updates for consul reload of token config.

* Update website/source/docs/guides/acl.html.md
2019-03-08 13:12:16 -06:00
kaitlincarter-hc f4c7b84500
[doc] New Ports Documentation (#5442)
* Adding a ports table.

* Updating layout based on feedback.
2019-03-08 13:10:35 -06:00
Rebecca Zanzig 3ac9e57efe Add docs for new Helm `annotations` options 2019-03-08 10:10:25 -08:00
Rebecca Zanzig 25c9f0e4aa
Merge pull request #5444 from hashicorp/docs/helm-priorityClassName
Add docs about new Helm `priorityClassName` options
2019-03-08 10:07:49 -08:00
Rebecca Zanzig 6c7245ce84 Add docs about new Helm `priorityClassName` options 2019-03-08 09:42:53 -08:00
Rebecca Zanzig 7d62c8fbec
Merge pull request #5443 from hashicorp/docs/acl-to-sync
Move aclSyncToken docs under `syncCatalog`
2019-03-08 09:06:43 -08:00
Rebecca Zanzig 3dbd73ee23 Move aclSyncToken docs under `syncCatalog`
Additionally updates the anchors to follow the established convention.
2019-03-07 16:54:11 -08:00
Judith Malnick 80194732c5
[docs] fix link to prepared query rules (#5435)
* [docs] fix link to prepared query rules

* Update website/source/api/query.html.md

Co-Authored-By: judithpatudith <judith@hashicorp.com>
2019-03-07 12:10:40 -08:00
Rebecca Zanzig f1864b128e
Merge pull request #5431 from hashicorp/docs/helm-extraConfig
[docs] Add examples for the `extraConfig` options in the Helm chart
2019-03-06 14:25:25 -08:00
Rebecca Zanzig c07b7cc154 Add examples for the `extraConfig` options in the Helm chart 2019-03-06 13:01:17 -08:00
Alvin Huang 77727d23ae
Merge pull request #5436 from hashicorp/fix-typo
fix typos
2019-03-06 15:00:17 -05:00
Alvin Huang 8cb8108b1b fix typos 2019-03-06 14:47:33 -05:00
R.B. Boyer f4a3b9d518
fix typos reported by golangci-lint:misspell (#5434) 2019-03-06 11:13:28 -06:00
kaitlincarter-hc 9b1bc8d96d
[Docs] Production Guide for ACLs (#5385)
* New guide for ACLs

* Fixing some formatting issues.

* Update website/source/docs/guides/production-acls.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Update website/source/docs/guides/production-acls.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Update website/source/docs/guides/production-acls.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Resolving PR comments.

* Closing the rest of the PR comments

* Updates for persistence.

* Updating commands.

* Update website/source/docs/guides/production-acls.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Update website/source/docs/guides/production-acls.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>
2019-03-06 10:46:07 -06:00
Chip Vaughn f658748a79
Merge pull request #5420 from hashicorp/f-catalog-changes
Catalog API Doc Changes
2019-03-06 11:00:37 -05:00
Chip Vaughn ea38ad18f1 Update to registering services via Catalog API 2019-03-06 09:41:12 -05:00
Chip Vaughn ad25767416 Update to registering services via Catalog API 2019-03-06 09:23:37 -05:00
Hans Hasselberg eb0895c5fb
tlsutil: don't use `server_name` config for RPC connections (#5394)
* server name only for outgoing https for checks
2019-03-05 21:35:43 +01:00
R.B. Boyer 2ffbea41c8 improve flaky LANReap tests by expliciting configuring the tombstone timeout
In TestServer_LANReap autopilot is running, so the alternate flow
through the serf reaping function is possible. In that situation the
ReconnectTimeout is not relevant so for parity also override the
TombstoneTimeout value as well.

For additional parity update the TestServer_WANReap and
TestClient_LANReap versions of this test in the same way even though
autopilot is irrelevant here .
2019-03-05 14:34:03 -06:00
R.B. Boyer 5bea49ecb0 tests: avoid leaking child processes from agent/proxyprocess package 2019-03-05 14:29:25 -06:00
R.B. Boyer a99f7aaa25 website: fix broken links 2019-03-05 14:24:33 -06:00
Hans Hasselberg feaece034b
website: fix gemfile.lock (#5429) 2019-03-05 20:55:04 +01:00
Matt Keeler a4e2fe67eb Putting source back into Dev Mode 2019-03-05 19:26:42 +00:00