-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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 #21245
[NET-5622] build: consolidate Envoy version management #21245
Conversation
e5a280f
to
cd32bc8
Compare
# this is further going to multiplied in envoy-integration tests by the | ||
# other dimensions in the matrix. Currently TOTAL_RUNNERS would be | ||
# 14 based on these values: | ||
# envoy-version: ["1.22.11", "1.23.12", "1.24.12", "1.25.11", "1.26.8", "1.27.5", "1.28.3"] | ||
# xds-target: ["server", "client"] | ||
TOTAL_RUNNERS: 7 | ||
# TEST_SPLITS sets the number of test case splits to use in the matrix. This will be | ||
# further multiplied in envoy-integration tests by the other dimensions in the matrix | ||
# to determine the total number of runners used. | ||
TEST_SPLITS: 4 |
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 took me until this PR to realize that this number does not need to be changed after every Envoy version introduction - the comment was simply noting that the total runners is one of 3 factors in the matrix that multiply to get the total effective runner count. I've updated the env var here to TEST_SPLITS
to try to make that more obvious, and restored the original count of 4.
consul-version: ["1.15", "1.16", "1.17"] | ||
consul-version: ["1.15", "1.16", "1.17", "1.18"] |
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.
Noticed this was missing, so added here
9e86e92
to
42efa0f
Compare
cc @dduzgun-security @sarahalsmiller that this PR is in draft. I'm not sure it'll be ready by the time you do Envoy bumps for the latest set of patches, but wanted to keep you in the loop esp. if I'm OOO and this looks worth pushing through. I'll do my best to kick it along for now. |
@zalimeni this is awesome and will save a ton of time while bringing better visibility on the envoy versions we use 🙌 Thanks a lot! |
42efa0f
to
8aeae52
Compare
8aeae52
to
6dbe438
Compare
@@ -0,0 +1,14 @@ | |||
# This file represents the canonical list of supported Envoy versions for this version of Consul. |
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.
🚀
6dbe438
to
94699b2
Compare
234c8f9
to
e9779c4
Compare
with: | ||
ref: ${{ inputs.branch }} |
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.
Added in this PR to come along for the backport ride since I was already making changes to support nightly branch targeting, and noticed these were missing.
@@ -27,18 +79,28 @@ var EnvoyVersions = []string{ | |||
// see: https://www.consul.io/docs/connect/proxies/envoy#supported-versions | |||
var UnsupportedEnvoyVersions = []string{} | |||
|
|||
// GetMaxEnvoyMinorVersion grabs the first value in EnvoyVersions and strips the patch number off in order | |||
// to return the maximum supported Envoy minor version | |||
// GetMaxEnvoyMajorVersion grabs the first value in EnvoyVersions and strips the last number off in order |
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.
Here and below, aligning these functions to Envoy's own "major/minor" non-semver naming conventions, similar to Consul and Go.
These are not used in Ent-specific code.
This will result in a (small) breaking change in the envoyextensions
submodule for anyone who's consuming these fields; the submodule is v0.x
so this is allowed.
Supports nightly tests.
cb498be
to
91d1fbf
Compare
Manual backport of #21245 into release/1.19.x.
@zalimeni, a backport is missing for this PR [21245] for versions [1.15] please perform the backport manually and add the following snippet to your backport PR description:
|
2 similar comments
@zalimeni, a backport is missing for this PR [21245] for versions [1.15] please perform the backport manually and add the following snippet to your backport PR description:
|
@zalimeni, a backport is missing for this PR [21245] for versions [1.15] please perform the backport manually and add the following snippet to your backport PR description:
|
* build: consolidate Envoy version management Simplify Envoy version management by consolidating all runtime, build, and CI sources of Envoy versions into a single plaintext file. The goal of this change is to avoid common mistakes missing an update of some Envoy versions (both in general and due to release branch inconsistency), and enable automated Envoy version updates in the future. * ci: add missing ref argument for get-go-version Supports nightly tests.
@zalimeni, a backport is missing for this PR [21245] for versions [1.15] please perform the backport manually and add the following snippet to your backport PR description:
|
* build: consolidate Envoy version management Simplify Envoy version management by consolidating all runtime, build, and CI sources of Envoy versions into a single plaintext file. The goal of this change is to avoid common mistakes missing an update of some Envoy versions (both in general and due to release branch inconsistency), and enable automated Envoy version updates in the future. * ci: add missing ref argument for get-go-version Supports nightly tests.
* build: consolidate Envoy version management Simplify Envoy version management by consolidating all runtime, build, and CI sources of Envoy versions into a single plaintext file. The goal of this change is to avoid common mistakes missing an update of some Envoy versions (both in general and due to release branch inconsistency), and enable automated Envoy version updates in the future. * ci: add missing ref argument for get-go-version Supports nightly tests.
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.
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 onmain
, so required for this PR prior to merge.This change also includes:
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 filemain
versions match expectedLocal agent test:
main
PR branch
Follow-ups
Links
Manual backport PRs:
PR Checklist