GoogleContainerTools / skaffold

Easy and Repeatable Kubernetes Development
https://skaffold.dev/
Apache License 2.0
14.95k stars 1.62k forks source link

Cloud Native Buildpacks with arm64 #9508

Open michielboekhoff opened 1 month ago

michielboekhoff commented 1 month ago

Expected behavior

When running skaffold run / skaffold build, I expect the image to be built for linux/arm64 (when the Kubernetes nodes are running linux/arm64). This should behave, effectively, the same as a pack build which now supports arm64

Actual behavior

The following warning is printed to stdout:

WARN[0000] builder for artifact "app" doesn't support building for target platforms: "linux/arm64". Building for supported platforms "linux/amd64" instead.  subtask=app task=Build

after which the container is built for linux/amd64.

I suspect this is related to this line which enforces amd64 for Buildpacks (which is no longer true).

Information

apiVersion: skaffold/v4beta11
kind: Config
metadata:
  name: app
build:
  artifacts:
    - image: app
      buildpacks:
        builder: heroku/builder:24
        buildpacks:
          - docker://docker.io/heroku/buildpack-dotnet:0.1.1
manifests:
  rawYaml:
    - deploy/deployment.yml
    - deploy/service.yml

Steps to reproduce the behavior

skaffold build on an arm64 arch (like an M1 or a linux/arm64 machine)