16510 Commits

Author SHA1 Message Date
freddygv
cbea3d203c Fix race of upstreams with same passthrough ip
Due to timing, a transparent proxy could have two upstreams to dial
directly with the same address.

For example:
- The orders service can dial upstreams shipping and payment directly.
- An instance of shipping at address 10.0.0.1 is deregistered.
- Payments is scaled up and scheduled to have address 10.0.0.1.
- The orders service receives the event for the new payments instance
before seeing the deregistration for the shipping instance. At this
point two upstreams have the same passthrough address and Envoy will
reject the listener configuration.

To disambiguate this commit considers the Raft index when storing
passthrough addresses. In the example above, 10.0.0.1 would only be
associated with the newer payments service instance.
2022-02-10 17:01:57 -07:00
freddygv
659ebc05a9 Ensure passthrough addresses get cleaned up
Transparent proxies can set up filter chains that allow direct
connections to upstream service instances. Services that can be dialed
directly are stored in the PassthroughUpstreams map of the proxycfg
snapshot.

Previously these addresses were not being cleaned up based on new
service health data. The list of addresses associated with an upstream
service would only ever grow.

As services scale up and down, eventually they will have instances
assigned to an IP that was previously assigned to a different service.
When IP addresses are duplicated across filter chain match rules the
listener config will be rejected by Envoy.

This commit updates the proxycfg snapshot management so that passthrough
addresses can get cleaned up when no longer associated with a given
upstream.

There is still the possibility of a race condition here where due to
timing an address is shared between multiple passthrough upstreams.
That concern is mitigated by #12195, but will be further addressed
in a follow-up.
2022-02-10 17:01:57 -07:00
freddygv
c31c1158a6 Add failing test
The updated test fails because passthrough upstream addresses are not
being cleaned up.
2022-01-27 18:56:47 -07:00
trujillo-adam
43af9b0972
Merge pull request #11951 from hashicorp/docs/api-gateway-beta
API gateway docs going live for beta
2022-01-27 13:38:08 -08:00
trujillo-adam
98a280ef9a added min supported kubectl 2022-01-27 13:31:03 -08:00
Iryna Shustava
ea375742e1
docs: Add annotations for consul-sidecar resource overrides (#12142) 2022-01-27 14:25:06 -07:00
trujillo-adam
97e79e99db more feedback about helm chart from Jeff 2022-01-27 13:02:21 -08:00
trujillo-adam
9e4fa4d9ac added link to tutorial 2022-01-27 12:21:19 -08:00
trujillo-adam
f859700031 formatting 2022-01-27 12:02:48 -08:00
trujillo-adam
7c65dec35a fixed formatting, applied Jeff's feedback 2022-01-27 11:46:14 -08:00
Daniel Nephin
2dc662347a
Merge pull request #11706 from hashicorp/dnephin/ca-remove-provider-active-root
ca: remove Provider.ActiveRoot, return the root from Provider.GenerateRoot
2022-01-27 14:34:02 -05:00
Thomas Kula
61b30afa72 Fix #service-rules link in reference table 2022-01-27 11:32:53 -08:00
trujillo-adam
f74921283e still trying to fix formatting 2022-01-27 10:55:13 -08:00
trujillo-adam
5d1560560d removed extra quotation mark typo 2022-01-27 10:44:14 -08:00
trujillo-adam
9d1fbd871c fixed formatting 2022-01-27 10:33:39 -08:00
trujillo-adam
ed6fd46edb reordered the installation steps 2022-01-27 10:31:02 -08:00
Daniel Nephin
9b7468f99e ca/provider: remove ActiveRoot from Provider 2022-01-27 13:07:37 -05:00
trujillo-adam
1aba658402 applying additional feedback 2022-01-27 10:01:29 -08:00
Paul Glass
ada84f1272
Merge pull request #11825 from hashicorp/pglass/ecs-merge-arch-into-overview
docs: ECS 0.3.0 Updates
2022-01-27 11:57:41 -06:00
Daniel Nephin
c2b9c81a55 ca: update MockProvider for new interface 2022-01-27 12:51:35 -05:00
Daniel Nephin
f05bad4a1d ca: update GenerateRoot godoc 2022-01-27 12:51:35 -05:00
Daniel Nephin
9a59733b7d
Merge pull request #11663 from hashicorp/dnephin/ca-remove-one-call-to-active-root-2
ca: remove second call to Provider.ActiveRoot
2022-01-27 12:41:05 -05:00
Paul Glass
3fe88783e0 docs: Add configuration reference for ECS 2022-01-27 11:34:49 -06:00
Paul Glass
8c8292a9d1 docs: Fixes to ECS manual secure configuration
Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com>
2022-01-27 11:34:49 -06:00
Paul Glass
08c046b3b0 docs: Manual secure configuration for ECS 2022-01-27 11:34:49 -06:00
Paul Glass
5ccc1fdcca docs: Refine ECS installation docs
Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com>
2022-01-27 11:34:49 -06:00
Paul Glass
296fbaf5b1 docs: Improving ECS installation docs 2022-01-27 11:34:49 -06:00
Paul Glass
bb4a035254 docs: Apply suggestions to ECS docs from code review
Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com>
2022-01-27 11:34:48 -06:00
Paul Glass
919b659c98 docs: Correct ECS filename -> manual-installation.mdx 2022-01-27 11:34:48 -06:00
Paul Glass
485069db78 docs: Improving ECS manual installation page 2022-01-27 11:34:48 -06:00
Paul Glass
b8d4876d05 docs: Apply suggestions for manual ECS installation
Co-authored-by: Luke Kysow <1034429+lkysow@users.noreply.github.com>
2022-01-27 11:34:48 -06:00
Paul Glass
4414cb395c docs: Manual installation of Consul on ECS 2022-01-27 11:34:48 -06:00
Paul Glass
e4c90cc2b8 docs: Unmerge ECS architecture from overview 2022-01-27 11:34:48 -06:00
Paul Glass
5fd955dfab docs: Flatten ECS "Getting Started" navigation 2022-01-27 11:34:48 -06:00
Paul Glass
474e03f0d2 docs: Merge ECS Architecture into overview 2022-01-27 11:34:48 -06:00
Mike Morris
1c7a9c6885 website: fix ordering of list with nested code blocks 2022-01-27 11:34:11 -05:00
Mike Morris
3324bea829 website: fix indentation to resolve CodeBlockConfig syntax error 2022-01-27 11:12:32 -05:00
trujillo-adam
4d97b68526
Apply suggestions from code review
Thanks for catching my typos!

Co-authored-by: Nathan Coleman <nathandanielcoleman@gmail.com>
2022-01-27 08:06:54 -08:00
Chris S. Kim
c1d438ed03
ci: Update CI to stash changes before checkout (#12210) 2022-01-27 10:59:05 -05:00
John Cowen
de13e207e5
ui: css-prop modifier (#12205)
Get the value for a single specific CSS Property from the modified element.
returns can be specified either as a second parameter or an option.
2022-01-27 11:27:38 +00:00
John Cowen
eac0f5b860
ui: class-map helper (#12202)
{{class-map}} is used to easily add a list of classes, conditionally, and
have them all formatted nicely ready to be printed in a DOM class attribute.

For ease, as well as using entries, you can also just provide a simple string
without the boolean and that class will always be added.
2022-01-27 11:21:12 +00:00
trujillo-adam
c7ac8b0eae integrated TLS info 2022-01-26 16:04:24 -08:00
trujillo-adam
f2f0c5156b
Apply suggestions from code review
Adding content and feedback from @mikemorris

Co-authored-by: Mike Morris <mikemorris@users.noreply.github.com>
2022-01-26 15:16:22 -08:00
Daniel Nephin
db0478265b
Merge pull request #12109 from hashicorp/dnephin/blocking-query-1
rpc: make blockingQuery easier to read
2022-01-26 18:13:55 -05:00
trujillo-adam
f28f0375a5 added more complete spec info and applied feedback 2022-01-26 15:11:40 -08:00
Luke Kysow
c198c7408b
Update docs for new client daemonset name (#12200) 2022-01-26 14:22:12 -08:00
Daniel Nephin
7125fec346
Merge pull request #11221 from hashicorp/dnephin/acl-resolver-5
acl: extract a backend type for the ACLResolverBackend
2022-01-26 16:57:03 -05:00
Blake Covarrubias
2f291df412 docs: Clarify docs for providing multiple join addresses
Rephrase the comment about specifying multiple join addresses to
clarify that it pertains to joining a single cluster by attempting to
contact one or more nodes.
2022-01-26 13:11:51 -08:00
Daniel Nephin
3d657376e1
Merge pull request #11686 from hashicorp/dnephin/remove-demo
Remove demo directory
2022-01-26 13:58:56 -05:00
Luke Kysow
4df488b1d3
Update distributed-tracing.mdx with caveat on 128 bit IDs (#12196)
* Update distributed-tracing.mdx
2022-01-26 10:39:33 -08:00