The Envoy versions in these three files need to be compatible:
Golang Envoy API headers in go.mod file
Istio proxy version that our custom image builds off of.
So the older version of Envoy in the go.mod file is the one that Istio loads. It's necessary to use this version so that the StreamFilter API that is implemented by our Golang filter, and the resulting .so file, can be loaded and executed by the Envoy proxy inside Istio. Otherwise we get linker and runtime errors.
The Envoy versions in these three files need to be compatible:
So the older version of Envoy in the go.mod file is the one that Istio loads. It's necessary to use this version so that the StreamFilter API that is implemented by our Golang filter, and the resulting .so file, can be loaded and executed by the Envoy proxy inside Istio. Otherwise we get linker and runtime errors.