Skip to content
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

[NET-5622] build: consolidate Envoy version management #421

Open
3 of 6 tasks
dhiaayachi opened this issue Sep 26, 2024 · 0 comments
Open
3 of 6 tasks

[NET-5622] build: consolidate Envoy version management #421

dhiaayachi opened this issue Sep 26, 2024 · 0 comments

Comments

@dhiaayachi
Copy link
Owner

Description

Consolidate Envoy versions into a single canonical file to enable simpler management and avoid missed updates in the future.

This effort is motivated by repeated experience struggling to ensure that we updated Envoy "everywhere" we needed to. Even moreso than managing our Go versions, there's a significant amount of sprawl when it comes to Envoy, and addressing that will enable us to more confidently update versions as well as automate the toil of doing so when new releases are available.

Note that if it weren't for returning full x.y.z Envoy versions in v1/agent/self output, I'm pretty sure we could just store the "major" x.y versions going forward and dynamically test against the latest of each in CI, since we only validate major versions in the consul connect envoy command. For now, I've kept the existing pattern of explicitly source-controlled minor Envoy releases that we'll have to keep updated - but we can at least automate that more effectively now.

I've opened manual backports through 1.15 Ent to ensure that the ENVOY_VERSIONS file is available on all actively tested branches; this is necessary for sourcing in nightly integration tests on main, so required for this PR prior to merge.

This change also includes:

  • Fix to Go version branch sourcing aligned with this PR (missed in previous Go version work).
  • Some missed component version updates in integration tests.

I have not removed or changed defunct uses of Envoy in Windows integration tests as I think that would be best accomplished as a separate holistic Windows cleanup PR.

Testing & Reproduction steps

  • get-envoy-versions output matches file
  • Integration tests use 1.29.5
  • Nightly main versions match expected
  • Nightly 1.19 versions match expected (workflow dispatch test branch used to target 1.19 PR branch for sourcing Envoy version to emulate post-1.19-backport nightly run)
  • Nightly 1.15 versions match expected (workflow dispatch test branch used to target 1.15 PR branch for sourcing Envoy version to emulate post-1.15-backport nightly run)

Local agent test:
main

❯ curl -s localhost:8500/v1/agent/self | jq '.xDS.SupportedProxies'
{
  "envoy": [
    "1.29.5",
    "1.28.4",
    "1.27.6",
    "1.26.8"
  ]
}

PR branch

❯ curl -s localhost:8500/v1/agent/self | jq '.xDS.SupportedProxies'
{
  "envoy": [
    "1.29.5",
    "1.28.4",
    "1.27.6",
    "1.26.8"
  ]
}

Follow-ups

  • Update release guide to call out upgrade test Envoy version adjustments
  • Verify nightly Ent tests are not broken after merge

Links

Manual backport PRs:

PR Checklist

  • updated test coverage
  • external facing docs updated
  • appropriate backport labels added
  • not a security concern
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

No branches or pull requests

1 participant