Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Breaking changes
In addition to the changes listed below, this release may bring unexpected breaking changes, ironically due to support for ARM.
Previously, if you built a Docker image based on Geodesic on an ARM machine like an Apple M1, because Geodesic was only available in
linux/amd64
architecture, your build would have been forced intolinux/amd64
architecture and your installations, whether fromapt-get
or other sources, would have had to have been the samelinux/amd64
architecture to work. (The build and run of the resulting Docker image would have been run under emulation.) Now, if you are building on an Apple M1 or M2, you will get the Geodesiclinux/arm64
architecture (using native, not emulated code for build and execution, with potentially huge performance benefits), and the rest of your Dockerfile will need to be updated to install architecture-specific packages, some of which may not exist. You will need to decide if you want to go on without them or rather stick tolinux/amd64
emulation to retain them.Furthermore, if you built and pushed a Geodesic image in the past, you would always get a single architecture (
linux/amd64
) image. Now, if you are not careful, you may overwrite that with alinux/arm64
image, causing slowdowns for people using your image on Intel/AMD/X86_64 hardware. If you want to support both architectures in a shared image, you will need to use Dockerbuildx
to generate a multi-platform image.If you want to avoid all this, you can convert your
FROM
statement in your Dockerfile fromto
For more information on multi-platform (a.k.a. multi-architecture) builds, see:
what
arm64
as well asamd64
architecturecloudposse/geodesic:latest
image Debian instead of Alpinearm64
or are just outdated:kops
awless
cfssl
rakkess
tfenv
tfmask
init-terraform
script meant to be used with obsoletedirenv
/tfenv
configurationpython
from "official" pre-built docker images rather than compiling it ourselveswhy
notes
This is our initial support of
arm64
and can be expected to have some bugs to shake out.We are only supporting
arm64
on Debian at this time. We will not support it on Alpine. Will consider supporting CentOS (or its successor) if we have sufficient demand.Geodesic relies heavily on Cloud Posse's packages distribution, and it has not yet been updated to automatically generate
arm64
packages. As a result, for most packages, only the latest version is available inarm64
. We have historical versions ofatmos
,kubectl
, andterraform
published. If you need historical versions of other packages, you can request them by opening an issue in packages, but please consider either staying onamd64
or updating to the latest version of the binary instead. Please also give us a few weeks to getarm64
packages automated.references