Skip to content

Enable configuration of "enable_trailers" protocol setting#78

Closed
yabberyabber wants to merge 1 commit intoaristanetworks:masterfrom
yabberyabber:enable-trailers
Closed

Enable configuration of "enable_trailers" protocol setting#78
yabberyabber wants to merge 1 commit intoaristanetworks:masterfrom
yabberyabber:enable-trailers

Conversation

@yabberyabber
Copy link
Copy Markdown

@yabberyabber yabberyabber commented Dec 16, 2022

Description

envoyproxy/envoy#8667 This change in envoy creates the new http_protocol_options.enable_trailers flag which preserves HTTP trailers when bridging between http{1,2}.

This PR adds a way to set this flag via ambassador config.

Just set the enable_trailers flag in the ambassador annotation and it should be propagated to the underlying envoy config.

This implementation is heavily inspired by this PR https://github.com/emissary-ingress/emissary/pull/1484/files which implements a similar change for the enable_http10 flag which also goes under http_protocol_options.

Related Issues

List related issues.

Testing

I've added a unit test for this and will be testing in arista's infra cluster.

Checklist

  • Does my change need to be backported to a previous release?

    • What backport versions were discussed with the Maintainers in the Issue?
  • I made sure to update CHANGELOG.md.

    Remember, the CHANGELOG needs to mention:

    • Any new features
    • Any changes to our included version of Envoy
    • Any non-backward-compatible changes
    • Any deprecations
  • This is unlikely to impact how Ambassador performs at scale.

    Remember, things that might have an impact at scale include:

    • Any significant changes in memory use that might require adjusting the memory limits
    • Any significant changes in CPU use that might require adjusting the CPU limits
    • Anything that might change how many replicas users should use
    • Changes that impact data-plane latency/scalability
  • My change is adequately tested.

    Remember when considering testing:

    • Your change needs to be specifically covered by tests.
      • Tests need to cover all the states where your change is relevant: for example, if you add a behavior that can be enabled or disabled, you'll need tests that cover the enabled case and tests that cover the disabled case. It's not sufficient just to test with the behavior enabled.
    • You also need to make sure that the entire area being changed has adequate test coverage.
      • If existing tests don't actually cover the entire area being changed, add tests.
      • This applies even for aspects of the area that you're not changing – check the test coverage, and improve it if needed!
    • We should lean on the bulk of code being covered by unit tests, but...
    • ... an end-to-end test should cover the integration points
  • I updated DEVELOPING.md with any any special dev tricks I had to use to work on this code efficiently.

  • The changes in this PR have been reviewed for security concerns and adherence to security best practices.

@yabberyabber yabberyabber marked this pull request as ready for review December 20, 2022 01:18
@dethi dethi deleted the branch aristanetworks:master January 29, 2026 00:12
@dethi dethi closed this Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants