GoogleContainerTools / GoogleContainerTools/skaffold

Cloud Native Buildpacks with arm64

Open
#9,508 4 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
15.9k
Forks
1.7k
Avg merge
3d 9h
Merged PRs (30d)
10

Description

### 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
](https://buildpacks.io/docs/for-app-developers/tutorials/basic-app/#what-about-arm-apps)

### 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](https://github.com/GoogleContainerTools/skaffold/blob/01bf56187622532f1aab5d1385f6d22b4016dc55/pkg/skaffold/build/buildpacks/build.go#L55) which enforces amd64 for Buildpacks (which is no longer true).

### Information

- Skaffold version: v2.13.2
- Operating system: Apple M1 - Sonoma 14.4.1
- Installed via: Homebrew
- Contents of skaffold.yaml:

```yaml
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)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.