This PR causes the skaffold debug helper images to be built for linux/arm64 and linux/amd64:
It configured Travis to (1) install a newer release of Docker on Bionic and (2) configure Docker for Buildkit.
It configures Skaffold to use Buildkit: Buildkit exposes the BUILD{PLATFORM,OS,ARCH} and TARGET{PLATFORM,OS,ARCH} arguments, which we combine with Go's cross-compilation for fast building of multi-platform images.
It configures Skaffold to use docker buildx to build for multiple platforms at once: buildx will push images as a manifest-list when pushing to a registry.
As the bitnami/kubectl image is not multi-platform, this PR creates a custom test image called kubectl based on the multi-platform curlimages/curl image and which installs kubectl.
It reworks the Go tests (the integration/k8s-test/go*.yaml manifests) to avoid needing kubectl port-forward to connect the testing job and the pod, and to use a Service instead. Unfortunately the NodeJS inspect port uses websockets which either hangs, reports connection refused, or a 400 error when exposed via a Service 🤷♂️
This PR causes the
skaffold debug
helper images to be built for linux/arm64 and linux/amd64:docker buildx
to build for multiple platforms at once: buildx will push images as a manifest-list when pushing to a registry.bitnami/kubectl
image is not multi-platform, this PR creates a custom test image calledkubectl
based on the multi-platformcurlimages/curl
image and which installskubectl
.integration/k8s-test/go*.yaml
manifests) to avoid needingkubectl port-forward
to connect the testing job and the pod, and to use a Service instead. Unfortunately the NodeJS inspect port uses websockets which either hangs, reports connection refused, or a 400 error when exposed via a Service 🤷♂️