-
Notifications
You must be signed in to change notification settings - Fork 385
Support transparent proxy in the Consul Helm chart #905
Conversation
6a7a441
to
27ef46b
Compare
27ef46b
to
ec1c79e
Compare
* Add new connectInject.transparentProxy.defaultEnabled value (default to true) that will allow users to enable or disable tproxy for each helm installation. * Add acceptance tests for connect-inject to test with tproxy
ec1c79e
to
57cec48
Compare
72a6f07
to
1fbed26
Compare
ec05f15
to
4208a98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great. Looking at the failures in the acceptance, I think those fixtures need to be updated in order to ensure they start to use the t-proxy clients/addresses to the remote server.
Great job with this test though. It was super easy to understand!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!! Just had a few non-blocking questions.
@@ -90,6 +90,9 @@ spec: | |||
-release-name="{{ .Release.Name }}" \ | |||
-release-namespace="{{ .Release.Namespace }}" \ | |||
-listen=:8080 \ | |||
{{- if .Values.connectInject.transparentProxy.defaultEnabled }} | |||
-enable-transparent-proxy \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm just noticing this now and it's not a blocker for the release, but should this flag be renamed -default-enable-transparent-proxy in consul-k8s after the release? That's how the metrics flag defaults are named.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good catch! I'll a task to rename.
[]string{ | ||
"curl: (52) Empty reply from server", | ||
"curl: (7) Failed to connect to static-server port 80: Connection refused", | ||
"curl: (7) Failed to connect to static-server.ns1 port 80: Connection refused", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, did you see these additional errors when testing out tproxy?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, when with iptables we now get a connection refused. This is most likely because envoy itself will now reject the connection, whereas previously this error was coming from the upstream proxy that verifies intentions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exquisite!!
Support transparent proxy in the consul helm chart * Add new connectInject.transparentProxy.defaultEnabled value (default to true) that will allow users to enable or disable tproxy for each helm installation. * Add acceptance tests for connect-inject to test with tproxy * Acceptance tests default to tproxy not enabled since we don't fully support it for all features yet.
Support transparent proxy in the consul helm chart * Add new connectInject.transparentProxy.defaultEnabled value (default to true) that will allow users to enable or disable tproxy for each helm installation. * Add acceptance tests for connect-inject to test with tproxy * Acceptance tests default to tproxy not enabled since we don't fully support it for all features yet.
Changes proposed in this PR:
that will allow users to enable or disable tproxy for each helm installation.
How I've tested this PR:
How I expect reviewers to test this PR:
Note that for beta we're only enabling connect tests to run with tproxy. Before GA, ideally, we can default to tproxy all the time and test non-tproxy cases explicitly instead.
Checklist: