• k8s-merge-robot's avatar
    Merge pull request #21617 from luxas/hyperkube_for_arm · b8d00085
    k8s-merge-robot authored
    Automatic merge from submit-queue
    
    Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image
    
    We have to be able to build complex docker images too on `amd64` hosts.
    Right now we can't build Dockerfiles with `RUN` commands when building for other architectures e.g. ARM.
    
    Resin has a tutorial about this here: https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/
    But it's a bit clumsy syntax.
    
    The other alternative would be running this command in a Makefile:
    ```
    # This registers in the kernel that ARM binaries should be run by /usr/bin/qemu-{ARCH}-static
    docker run --rm --privileged multiarch/qemu-user-static:register --reset
    ```
    and 
    ```
    ADD https://github.com/multiarch/qemu-user-static/releases/download/v2.5.0/x86_64_qemu-arm-static.tar.xz /usr/bin
    ```
    Then the kernel will be able to differ ARM binaries from amd64. When it finds a ARM binary, it will invoke `/usr/bin/qemu-arm-static` first and lets `qemu` translate the ARM syscalls to amd64 ones.
    Some code here: https://github.com/multiarch
    
    WDYT is the best approach? If registering `binfmt_misc` in the kernels of the machines is OK, then I think we should go with that.
    Otherwise, we'll have to wait for resin's patch to be merged into mainline qemu before we may use the code I have here now.
    
    @fgrzadkowski @david-mcmahon @brendandburns @zmerlynn @ixdy @ihmccreery @thockin 
    b8d00085
Name
Last commit
Last update
..
build-image Loading commit data...
debian-iptables Loading commit data...
pause Loading commit data...
OWNERS Loading commit data...
README.md Loading commit data...
common.sh Loading commit data...
copy-output.sh Loading commit data...
json-extractor.py Loading commit data...
make-build-image.sh Loading commit data...
make-clean.sh Loading commit data...
make-release-notes.sh Loading commit data...
push-ci-build.sh Loading commit data...
push-devel-build.sh Loading commit data...
push-official-release.sh Loading commit data...
release.sh Loading commit data...
run.sh Loading commit data...
shell.sh Loading commit data...
versionize-docs.sh Loading commit data...