Waypoint-entrypoint: Why is the embedded entrypoint always linux/amd64?

I’m currently packaging Waypoint for Void Linux and trying to work out the build process for it. It seems relatively straight-forward going by the Makefile, but the embedded copy of waypoint-entrypoint has me a little confused. It appears to always be built for linux/amd64 (GOOS/GOARCH), even on Windows, and I’m trying to understand why that is.

My first assumption was that it would be the same architecture as the system running Waypoint for injection during builds. That said, if a build happens on a different architecture than linux/amd64, that doesn’t really make sense because the embedded entrypoint will be unusable. So, if anyone can share, what’s the reason for it? How is the embedded entrypoint used?

The most common deployment artifact created is Linux/amd64.

The entrypoint has to match the deployment artifact system not the system running the Waypoint CLI. If you’re building images to deploy on operating systems other than 64-bit Linux then yes this will fail.

We did this to start because its the most common. We recognize this won’t last forever.

If you are using an alternate system, you’ll have to manually inject the image for now. Note that this is just the system you’re building TO not the system you’re running ON. You can run Waypoint on Windows just fine as long as the images you’re making are Linux images.

1 Like