Skip to content

Provide download URLs for tarballs #16830

@codefromthecrypt

Description

@codefromthecrypt

Title:

Provide download URLs for tarballs

Description:
Right now, "getenvoy" has to redundantly build envoy in order to provide download urls to binaries. This is unnecessary work and leads to confusion as to what is official. Right now there are few good choices, whether it is curl, or version managers that operate like nvm, pyenv, gimme, jabba etc (specifically the getenvoy CLI). Helper scripts or tools either build redundantly to what envoy already does, or do hacks like extract the binary from the docker images.

The current state here is that Azure pipeline jobs produce Docker images. To do this, they execute builds and create intermediate binaries. Once the Docker images are complete, these binaries are not retained. If these binaries weren't dropped on the floor, others could reference "official" builds.

The following docker "platforms" would be ideal to publish as tarballs for latest patches of non EOL versions:
linux/amd64
linux/arm64
darwin/amd64
darwin/arm64
windows/amd64

The ideal tarball would be "tar.xz" not "tar.gz" as the former is significantly less storage and bandwidth. However, .gz is fine. The ideal tarball would have a base directory including the envoy version, ex "envoy-1.18.3" and minimally the envoy binary. Ex "envoy-1.18.3/bin/envoy". There have been requests for other contents as well, but this would get things started and deprecate custom builds getenvoy is doing. It would also be nice to have a checksum files or literal for each tarball, regardless of the hash algo.

Once this is complete, "getenvoy cli" would prefer upstream builds and ideally be able to stop building envoy. A potential gap is around the aggressive EOL policy. We've heard users as recent as last week pinned to 1.12. If all versions are available, we can remove custom build download URLs and mention the official ones for all releases.

Other things like RPMs could be follow-up or independent issues. Hope this helps gets the wheels turning!

Relevant Links:

schema of the func-e version manager CLI: https://archive.tetratelabs.io/release-versions-schema.json
current contents we'd like to replace with "official" tarballs: https://github.com/tetratelabs/getenvoy/blob/master/site/envoy-versions.json

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions