Skip to content

Commit e6be04e

Browse files
committed
Added multi-arch image support
Signed-off-by: Lukas Frank <[email protected]>
1 parent b326928 commit e6be04e

File tree

6 files changed

+104
-431
lines changed

6 files changed

+104
-431
lines changed

cmd/libvirt-provider/app/app.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
libvirtutils "github.com/ironcore-dev/libvirt-provider/internal/libvirt/utils"
3232
"github.com/ironcore-dev/libvirt-provider/internal/mcr"
3333
"github.com/ironcore-dev/libvirt-provider/internal/networkinterfaceplugin"
34-
"github.com/ironcore-dev/libvirt-provider/internal/oci"
3534
volumeplugin "github.com/ironcore-dev/libvirt-provider/internal/plugins/volume"
3635
"github.com/ironcore-dev/libvirt-provider/internal/plugins/volume/ceph"
3736
"github.com/ironcore-dev/libvirt-provider/internal/plugins/volume/emptydisk"
@@ -40,6 +39,8 @@ import (
4039
"github.com/ironcore-dev/libvirt-provider/internal/strategy"
4140
"github.com/ironcore-dev/provider-utils/eventutils/event"
4241
"github.com/ironcore-dev/provider-utils/eventutils/recorder"
42+
ocihostutils "github.com/ironcore-dev/provider-utils/ociutils/host"
43+
ociutils "github.com/ironcore-dev/provider-utils/ociutils/oci"
4344
hostutils "github.com/ironcore-dev/provider-utils/storeutils/host"
4445
"github.com/prometheus/client_golang/prometheus/promhttp"
4546
"github.com/spf13/cobra"
@@ -220,7 +221,14 @@ func Run(ctx context.Context, opts Options) error {
220221
return err
221222
}
222223

223-
reg, err := remote.DockerRegistry(nil)
224+
platform, err := ocihostutils.Platform()
225+
if err != nil {
226+
setupLog.Error(err, "failed to get host platform: %w", err)
227+
return err
228+
}
229+
setupLog.Info("Current platform", "architecture", platform.Architecture)
230+
231+
reg, err := remote.DockerRegistryWithPlatform(nil, platform)
224232
if err != nil {
225233
setupLog.Error(err, "failed to initialize registry")
226234
return err
@@ -232,7 +240,7 @@ func Run(ctx context.Context, opts Options) error {
232240
return err
233241
}
234242

235-
imgCache, err := oci.NewLocalCache(log, reg, ociStore)
243+
imgCache, err := ociutils.NewLocalCache(log, reg, ociStore, nil)
236244
if err != nil {
237245
setupLog.Error(err, "failed to initialize oci manager")
238246
return err

go.mod

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,27 @@ toolchain go1.24.1
66

77
require (
88
github.com/blang/semver/v4 v4.0.0
9-
github.com/containerd/containerd v1.7.28
109
github.com/digitalocean/go-libvirt v0.0.0-20250616175656-5843751af96c
1110
github.com/go-chi/chi/v5 v5.2.3
1211
github.com/go-logr/logr v1.4.3
1312
github.com/google/uuid v1.6.0
1413
github.com/ironcore-dev/controller-utils v0.10.0
15-
github.com/ironcore-dev/ironcore v0.2.4-0.20250704085741-9036bfe3b718
16-
github.com/ironcore-dev/ironcore-image v0.2.4
14+
github.com/ironcore-dev/ironcore v0.2.4
15+
github.com/ironcore-dev/ironcore-image v0.2.5
1716
github.com/ironcore-dev/ironcore-net v0.2.3
18-
github.com/ironcore-dev/provider-utils v0.0.0-20250829073857-ee02a09dd769
17+
github.com/ironcore-dev/provider-utils v0.0.0-20251010114402-394db8015df4
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/shirou/gopsutil/v3 v3.24.5
2523
github.com/spf13/cobra v1.10.1
2624
github.com/spf13/pflag v1.0.10
2725
golang.org/x/sync v0.17.0
2826
google.golang.org/grpc v1.75.1
29-
k8s.io/api v0.33.3
30-
k8s.io/apimachinery v0.33.3
31-
k8s.io/client-go v0.33.3
27+
k8s.io/api v0.33.4
28+
k8s.io/apimachinery v0.33.4
29+
k8s.io/client-go v0.33.4
3230
k8s.io/kubectl v0.33.3
3331
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
3432
libvirt.org/go/libvirtxml v1.11007.0
@@ -39,24 +37,21 @@ require (
3937
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
4038
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
4139
github.com/Masterminds/semver/v3 v3.4.0 // indirect
42-
github.com/Microsoft/hcsshim v0.13.0 // indirect
4340
github.com/beorn7/perks v1.0.1 // indirect
4441
github.com/cespare/xxhash/v2 v2.3.0 // indirect
45-
github.com/containerd/cgroups/v3 v3.0.5 // indirect
46-
github.com/containerd/continuity v0.4.5 // indirect
42+
github.com/containerd/containerd v1.7.28 // indirect
4743
github.com/containerd/errdefs v1.0.0 // indirect
44+
github.com/containerd/errdefs/pkg v0.3.0 // indirect
4845
github.com/containerd/log v0.1.0 // indirect
4946
github.com/containerd/platforms v0.2.1 // indirect
50-
github.com/containerd/typeurl/v2 v2.2.3 // indirect
5147
github.com/creack/pty v1.1.21 // indirect
5248
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
5349
github.com/distribution/reference v0.6.0 // indirect
54-
github.com/docker/cli v28.0.1+incompatible // indirect
50+
github.com/docker/cli v28.0.4+incompatible // indirect
5551
github.com/docker/distribution v2.8.3+incompatible // indirect
56-
github.com/docker/docker v28.0.1+incompatible // indirect
57-
github.com/docker/docker-credential-helpers v0.9.2 // indirect
52+
github.com/docker/docker v28.0.4+incompatible // indirect
53+
github.com/docker/docker-credential-helpers v0.9.3 // indirect
5854
github.com/docker/go-connections v0.5.0 // indirect
59-
github.com/docker/go-events v0.0.0-20250114142523-c867878c5e32 // indirect
6055
github.com/docker/go-metrics v0.0.1 // indirect
6156
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
6257
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
@@ -71,7 +66,6 @@ require (
7166
github.com/go-openapi/swag v0.23.1 // indirect
7267
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
7368
github.com/gogo/protobuf v1.3.2 // indirect
74-
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
7569
github.com/google/btree v1.1.3 // indirect
7670
github.com/google/gnostic-models v0.6.9 // indirect
7771
github.com/google/go-cmp v0.7.0 // indirect
@@ -88,12 +82,12 @@ require (
8882
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
8983
github.com/moby/locker v1.0.1 // indirect
9084
github.com/moby/spdystream v0.5.0 // indirect
91-
github.com/moby/sys/mountinfo v0.7.2 // indirect
9285
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
9386
github.com/modern-go/reflect2 v1.0.2 // indirect
9487
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
9588
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
9689
github.com/opencontainers/go-digest v1.0.0 // indirect
90+
github.com/opencontainers/image-spec v1.1.1 // indirect
9791
github.com/pkg/errors v0.9.1 // indirect
9892
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
9993
github.com/prometheus/client_model v0.6.2 // indirect
@@ -116,6 +110,7 @@ require (
116110
go.yaml.in/yaml/v2 v2.4.2 // indirect
117111
go.yaml.in/yaml/v3 v3.0.4 // indirect
118112
golang.org/x/crypto v0.41.0 // indirect
113+
golang.org/x/mod v0.27.0 // indirect
119114
golang.org/x/net v0.43.0 // indirect
120115
golang.org/x/oauth2 v0.30.0 // indirect
121116
golang.org/x/sys v0.35.0 // indirect
@@ -129,7 +124,6 @@ require (
129124
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
130125
gopkg.in/inf.v0 v0.9.1 // indirect
131126
gopkg.in/yaml.v3 v3.0.1 // indirect
132-
gotest.tools/v3 v3.5.1 // indirect
133127
k8s.io/apiextensions-apiserver v0.33.3 // indirect
134128
k8s.io/apiserver v0.33.3 // indirect
135129
k8s.io/cli-runtime v0.33.3 // indirect
@@ -139,5 +133,5 @@ require (
139133
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
140134
sigs.k8s.io/randfill v1.0.0 // indirect
141135
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
142-
sigs.k8s.io/yaml v1.5.0 // indirect
136+
sigs.k8s.io/yaml v1.6.0 // indirect
143137
)

0 commit comments

Comments
 (0)