Skip to content

Commit d874a23

Browse files
Ghost Userso-sahu
authored andcommitted
Added multi-arch image support (ironcore-dev#651)
Signed-off-by: Lukas Frank <[email protected]>
1 parent ee159a2 commit d874a23

File tree

9 files changed

+167
-112
lines changed

9 files changed

+167
-112
lines changed

cmd/libvirt-provider/app/app.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
"github.com/ironcore-dev/libvirt-provider/internal/metrics"
4242
"github.com/ironcore-dev/libvirt-provider/internal/networkinterfaceplugin"
4343
"github.com/ironcore-dev/libvirt-provider/internal/oci"
44+
ociutils "github.com/ironcore-dev/libvirt-provider/internal/oci/utils"
4445
volumeplugin "github.com/ironcore-dev/libvirt-provider/internal/plugins/volume"
4546
"github.com/ironcore-dev/libvirt-provider/internal/plugins/volume/ceph"
4647
"github.com/ironcore-dev/libvirt-provider/internal/plugins/volume/emptydisk"
@@ -286,7 +287,14 @@ func Run(ctx context.Context, opts Options) error {
286287
return err
287288
}
288289

289-
reg, err := remote.DockerRegistry(nil)
290+
platform, err := ociutils.Platform()
291+
if err != nil {
292+
setupLog.Error(err, "failed to get host platform: %w", err)
293+
return err
294+
}
295+
setupLog.Info("Current platform", "architecture", platform.Architecture)
296+
297+
reg, err := remote.DockerRegistryWithPlatform(nil, platform)
290298
if err != nil {
291299
setupLog.Error(err, "failed to initialize registry")
292300
return err
@@ -298,7 +306,7 @@ func Run(ctx context.Context, opts Options) error {
298306
return err
299307
}
300308

301-
imgCache, err := oci.NewLocalCache(log.WithName("oci-local-cache"), reg, ociStore)
309+
imgCache, err := oci.NewLocalCache(log.WithName("oci-local-cache"), reg, ociStore, nil)
302310
if err != nil {
303311
setupLog.Error(err, "failed to initialize oci manager")
304312
return err

go.mod

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.24.0
44

55
require (
66
github.com/blang/semver/v4 v4.0.0
7-
github.com/containerd/containerd v1.7.28
87
github.com/digitalocean/go-libvirt v0.0.0-20250616175656-5843751af96c
98
github.com/docker/go-units v0.5.0
109
github.com/go-chi/chi/v5 v5.2.3
@@ -13,13 +12,12 @@ require (
1312
github.com/google/uuid v1.6.0
1413
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1
1514
github.com/ironcore-dev/controller-utils v0.10.0
16-
github.com/ironcore-dev/ironcore v0.2.4-0.20250704085741-9036bfe3b718
17-
github.com/ironcore-dev/ironcore-image v0.2.4
15+
github.com/ironcore-dev/ironcore v0.2.4
16+
github.com/ironcore-dev/ironcore-image v0.2.5
1817
github.com/ironcore-dev/ironcore-net v0.2.3
1918
github.com/moby/term v0.5.2
20-
github.com/onsi/ginkgo/v2 v2.25.3
19+
github.com/onsi/ginkgo/v2 v2.26.0
2120
github.com/onsi/gomega v1.38.2
22-
github.com/opencontainers/image-spec v1.1.1
2321
github.com/prometheus/client_golang v1.23.2
2422
github.com/prometheus/client_model v0.6.2
2523
github.com/shirou/gopsutil/v3 v3.24.5
@@ -29,9 +27,9 @@ require (
2927
google.golang.org/grpc v1.75.1
3028
google.golang.org/protobuf v1.36.8
3129
gopkg.in/yaml.v3 v3.0.1
32-
k8s.io/api v0.33.3
33-
k8s.io/apimachinery v0.33.3
34-
k8s.io/client-go v0.33.3
30+
k8s.io/api v0.33.4
31+
k8s.io/apimachinery v0.33.4
32+
k8s.io/client-go v0.33.4
3533
k8s.io/kubectl v0.33.3
3634
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
3735
libvirt.org/go/libvirtxml v1.11007.0
@@ -43,19 +41,19 @@ require (
4341
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
4442
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
4543
github.com/Masterminds/semver/v3 v3.4.0 // indirect
46-
github.com/Microsoft/hcsshim v0.13.0 // indirect
4744
github.com/beorn7/perks v1.0.1 // indirect
4845
github.com/cespare/xxhash/v2 v2.3.0 // indirect
46+
github.com/containerd/containerd v1.7.28
4947
github.com/containerd/errdefs v1.0.0 // indirect
5048
github.com/containerd/log v0.1.0 // indirect
5149
github.com/containerd/platforms v0.2.1 // indirect
5250
github.com/creack/pty v1.1.21 // indirect
5351
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
5452
github.com/distribution/reference v0.6.0 // indirect
55-
github.com/docker/cli v28.0.1+incompatible // indirect
53+
github.com/docker/cli v28.0.4+incompatible // indirect
5654
github.com/docker/distribution v2.8.3+incompatible // indirect
57-
github.com/docker/docker v28.0.1+incompatible // indirect
58-
github.com/docker/docker-credential-helpers v0.9.2 // indirect
55+
github.com/docker/docker v28.0.4+incompatible // indirect
56+
github.com/docker/docker-credential-helpers v0.9.3 // indirect
5957
github.com/docker/go-connections v0.5.0 // indirect
6058
github.com/docker/go-metrics v0.0.1 // indirect
6159
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
@@ -74,7 +72,6 @@ require (
7472
github.com/go-playground/universal-translator v0.18.1 // indirect
7573
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
7674
github.com/gogo/protobuf v1.3.2 // indirect
77-
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
7875
github.com/google/btree v1.1.3 // indirect
7976
github.com/google/gnostic-models v0.6.9 // indirect
8077
github.com/google/go-cmp v0.7.0 // indirect
@@ -99,6 +96,7 @@ require (
9996
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
10097
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
10198
github.com/opencontainers/go-digest v1.0.0 // indirect
99+
github.com/opencontainers/image-spec v1.1.1
102100
github.com/pkg/errors v0.9.1 // indirect
103101
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
104102
github.com/prometheus/common v0.66.1 // indirect
@@ -120,6 +118,7 @@ require (
120118
go.yaml.in/yaml/v2 v2.4.2 // indirect
121119
go.yaml.in/yaml/v3 v3.0.4 // indirect
122120
golang.org/x/crypto v0.41.0 // indirect
121+
golang.org/x/mod v0.27.0 // indirect
123122
golang.org/x/net v0.43.0 // indirect
124123
golang.org/x/oauth2 v0.30.0 // indirect
125124
golang.org/x/sys v0.35.0 // indirect
@@ -140,5 +139,5 @@ require (
140139
oras.land/oras-go v1.2.6 // indirect
141140
sigs.k8s.io/randfill v1.0.0 // indirect
142141
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
143-
sigs.k8s.io/yaml v1.5.0 // indirect
142+
sigs.k8s.io/yaml v1.6.0 // indirect
144143
)

0 commit comments

Comments
 (0)