emissary-ingress / emissary

open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
https://www.getambassador.io
Apache License 2.0
4.32k stars 683 forks source link

Chainsaw, part 1 #5694

Closed kflynn closed 1 month ago

kflynn commented 1 month ago

This is part 1 of taking a chainsaw to a bunch of stuff we don't need. There's more to come.

NOTE: you'll need to have a v4.0.0-test.0 tag to do much with these changes, but please don't push such a tag yet.

There are three commits in this PR. I strongly recommend reading the review notes below.

This is a monster commit. DON'T try to review it in the GitHub UI; there are some 1200 deleted files, since this commit deletes the _cxx, api/envoy, and pkg/envoy-control-plane directories completely: we simply don't need these if we're no longer building our own Envoy. Of course, that means that we need to change a bunch of Go imports to use the stock Envoy packages rather than the ones we compile.

To see just the changes in this commit, the easiest way is probably

git show 6fb669364bd7c70fcffb92afd2da7f6155575bea -- \
$(git show --name-only 6fb669364bd7c70fcffb92afd2da7f6155575bea | fgrep -v '_cxx
api/envoy
pkg/envoy-control-plane')

We also don't need to screw around with the base-python, base-pip, and base-envoy Docker images at all. base-envoy goes away because we're not building our own Envoy; base-python and base-pip go away because using distroless rather than Alpine simplifies the world enough that the complexity of these two images isn't worth it: I can do a full rebuild in about five minutes on my laptop.

This commit is OK to review in GitHub, it's only a dozen files or so.

Finally, this commit switches to using goreleaser to build other Docker images. I think this gets the ones we need to actually run tests, but maybe I'm wrong.

Once this commit lands, then goreleaser release should build multiarch images for everything.

the-wondersmith commented 1 month ago

Been a long time coming, awesome to see this happening



... taking a chainsaw to a bunch of stuff we don't need. ...