Right now we're running three versions of Envoy in production: 1.15.4 and 1.15.5 (mixed across appservers and misc services hosts), and 1.18.3 (on cp hosts for T271421). On Kubernetes we're using 1.15.4 and 1.18.3.
None of these versions is currently supported; we should update to either 1.20.x or 1.21.x. (All else being equal, we might as well just get all the way up-to-date and use 1.21, but if there are feature/compatibility issues, or just a preference to use the version with more miles on it, 1.20 is still viable.)
Prereqs:
- Use v3 configuration API everywhere (done in https://gerrit.wikimedia.org/r/754460)
- Check all the intermediate release notes for any other compatibility issues in our config that need to be resolved before we begin
-
Choose a target version, 1.20.x or 1.21.x. I'll inquire with Traffic and with the API Gateway folks about any preference between the two.We'll go with v1.21.3.
Here's one way the rollout might go, exact plan still TBD:
- Update everything to 1.15.5, the current master version at operations/debs/envoyproxy - that is, clean up 1.15.4 first
- Advance the master branch to 1.18.3 (the current envoy-future version)
- Test 1.18.3 in the helm-linter image, to verify the config is compatible and check for deprecation warnings
- Roll out 1.18.3 to all Envoy environments
- Test 1.21.3 in the helm-linter image
- Advance the envoy-future branch to 1.21.3
- Roll out 1.21.3 to all environments that use envoy-future
- Advance the master branch to 1.21.3
- Roll out 1.21.3 everywhere