-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minimize the stock extension set for the test server #425
Conversation
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
(quick experiment to check how this affects CI build time, cuts down the number of build actions from ~ 6K to 4K) |
cool, this seems to speed up the build CI task 2X: |
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Requesting a high level review for this first; as this needs tidying up before this is suitable for landing.
It might also be possible to diverge in different build types to produce a release with all extensions |
Some more CI numbers. The slowest running tests are asan and coverage.
to make sure, triggered another run: |
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Made some changes as discussed in an offline chat:
As there was consensus that there are multiple upsides to this, and this is |
CI time taken per task with the minimised extension set as of d3c6a7b:
|
@dubious90 please review and assign back to me once done. |
source/server/README.md
Outdated
@@ -8,6 +8,11 @@ A test-server filter which is capable of generating test responses. | |||
bazel test -c dbg //test/server:http_test_server_filter_integration_test | |||
``` | |||
|
|||
It is possible to enable |
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.
Should this be in the build section below, rather than the testing section?
source/server/README.md
Outdated
@@ -8,6 +8,11 @@ A test-server filter which is capable of generating test responses. | |||
bazel test -c dbg //test/server:http_test_server_filter_integration_test | |||
``` | |||
|
|||
It is possible to enable |
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.
nit: can we say "enable additional envoy extensions"?
extensions_build_config.bzl
Outdated
@@ -0,0 +1,9 @@ | |||
# See https://github.com/envoyproxy/envoy/blob/master/bazel/README.md for details on how this system works. |
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.
The link here provides an avalanche of information. Do you have objections to using this link instead, which I think is to the more relevant section?
https://github.com/envoyproxy/envoy/blob/master/bazel/README.md#disabling-extensions
"envoy.filters.listener.tls_inspector": "//source/extensions/filters/listener/tls_inspector:config", | ||
"envoy.filters.network.http_connection_manager": "//source/extensions/filters/network/http_connection_manager:config", | ||
"envoy.tracers.zipkin": "//source/extensions/tracers/zipkin:config", | ||
"envoy.transport_sockets.raw_buffer": "//source/extensions/transport_sockets/raw_buffer:config", |
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 is just my own ignorance of this, but why don't we need to include our test server filter here?
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.
It's a good question, that didn't occur to me before. Tests are passing, so I think it is safe to assume that "foreign" extensions don't play along with this feature. We could look into proposing a feature over at the Envoy repository if that is desired?
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.
(with "foreign", I meant extensions not residing in Envoy's own code base)
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.
My area of interest with this is partially on our own documentation around it. If others want to add in their own test server equivalent building on what we already have, how would they do that? But that's only tangentially related to this. So it's probably best to move on.
…uration Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@dubious90 review feedback applied in 06dc01e |
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. Assigning to mumak for approval.
"envoy.filters.listener.tls_inspector": "//source/extensions/filters/listener/tls_inspector:config", | ||
"envoy.filters.network.http_connection_manager": "//source/extensions/filters/network/http_connection_manager:config", | ||
"envoy.tracers.zipkin": "//source/extensions/tracers/zipkin:config", | ||
"envoy.transport_sockets.raw_buffer": "//source/extensions/transport_sockets/raw_buffer:config", |
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.
My area of interest with this is partially on our own documentation around it. If others want to add in their own test server equivalent building on what we already have, how would they do that? But that's only tangentially related to this. So it's probably best to move on.
@@ -0,0 +1,9 @@ | |||
# See https://github.com/envoyproxy/envoy/blob/master/bazel/README.md#disabling-extensions for details on how this system works. | |||
EXTENSIONS = { |
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.
Is there a complete list of extensions somewhere? I would like to take a look at what we are disabling and cross-check it with the functionality we are promising and using.
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.
The full set is contained over at https://github.com/envoyproxy/envoy/blob/master/source/extensions/extensions_build_config.bzl
- Updates the extension build config to add ADDITIONAL_VISIBILITY - Allows fixing of envoyproxy#399: use the right include path for the fault filter. Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@mum4k I added 7cdda88 in here, which updates Envoy and fixes build breakage against the latest; what
|
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
In e863df4 there's a change that leaves in all the extensions that can be enabled as comments. That might be helpful, but it also puts a burden on us to maintain that list. @dubious90 @mum4k wdyt? Also, optimized CI parallellism, complete CI cycles now complete close to 4X faster. clang-tidy speeds up 5X because of the update to gen_compilation_database.py: we no longer actually build the project, as we don't need that. |
Summarising CI timings for master vs current state of this PR
|
I respun CI a few times and I think this helps stabilize coverage and asan; we should see less flakes upon merging this. Also, running clang-tidy locally is going to be a much more frictionless thing. |
Having trouble responding directly to your comment, but re: #425 (comment) I think that it is much more desirable to have your original behavior, rather than this, because of the lower overhead of mainenance, and it is in my opinion, harder to read for pertinent information, in my opinion. |
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@dubious90 backed out the full commented list of available extensions in e198c0b |
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.
The numbers showing the improvement of CI are awesome, thank you!
Signed-off-by: Otto van der Schaaf oschaaf@we-amp.com