From da9349ce4271241145e827792206f780ed9b0611 Mon Sep 17 00:00:00 2001 From: Brent Baude Date: Wed, 22 Nov 2023 13:17:29 -0600 Subject: [PATCH] podman machine image from oci updates It makes more sense to key off the hypervisor/provider when pulling disks from oci registries. i.e. quay.io/libpod/podman-machine-images:5.0-qemu Also, now that we are in 5.0-dev, I also removed the overrides always making the podman version 4.6. [NO NEW TESTS NEEDED] Signed-off-by: Brent Baude --- pkg/machine/ocipull/oci.go | 10 ++-------- pkg/machine/ocipull/versioned.go | 10 +++++----- pkg/machine/pull.go | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/pkg/machine/ocipull/oci.go b/pkg/machine/ocipull/oci.go index abc7d4234259..52ac3088080b 100644 --- a/pkg/machine/ocipull/oci.go +++ b/pkg/machine/ocipull/oci.go @@ -67,12 +67,6 @@ func StripOCIReference(input string) string { func getVersion() *OSVersion { v := version.Version - - // OVERRIDES FOR DEV ONLY - v.Minor = 6 - v.Pre = nil - // OVERRIDES FOR DEV ONLY - return &OSVersion{&v} } @@ -80,8 +74,8 @@ func (o *OSVersion) majorMinor() string { return fmt.Sprintf("%d.%d", o.Major, o.Minor) } -func (o *OSVersion) diskImage(diskFlavor define.ImageFormat) string { - return fmt.Sprintf("%s/%s/%s:%s-%s", registry, repo, diskImages, o.majorMinor(), diskFlavor.Kind()) +func (o *OSVersion) diskImage(vmType string) string { + return fmt.Sprintf("%s/%s/%s:%s-%s", registry, repo, diskImages, o.majorMinor(), vmType) } func unpackOCIDir(ociTb, machineImageDir string) (*define.VMFile, error) { diff --git a/pkg/machine/ocipull/versioned.go b/pkg/machine/ocipull/versioned.go index 9cc5e630aa42..59a8d560100a 100644 --- a/pkg/machine/ocipull/versioned.go +++ b/pkg/machine/ocipull/versioned.go @@ -20,20 +20,20 @@ type Versioned struct { blobDirPath string cacheDir string ctx context.Context - imageFormat define.ImageFormat imageName string machineImageDir string machineVersion *OSVersion vmName string + vmType string } -func NewVersioned(ctx context.Context, machineImageDir, vmName string) (*Versioned, error) { +func NewVersioned(ctx context.Context, machineImageDir, vmName string, vmType string) (*Versioned, error) { imageCacheDir := filepath.Join(machineImageDir, "cache") if err := os.MkdirAll(imageCacheDir, 0777); err != nil { return nil, err } o := getVersion() - return &Versioned{ctx: ctx, cacheDir: imageCacheDir, machineImageDir: machineImageDir, machineVersion: o, vmName: vmName}, nil + return &Versioned{ctx: ctx, cacheDir: imageCacheDir, machineImageDir: machineImageDir, machineVersion: o, vmName: vmName, vmType: vmType}, nil } func (d *Versioned) LocalBlob() *types.BlobInfo { @@ -41,7 +41,7 @@ func (d *Versioned) LocalBlob() *types.BlobInfo { } func (d *Versioned) DiskEndpoint() string { - return d.machineVersion.diskImage(d.imageFormat) + return d.machineVersion.diskImage(d.vmType) } func (d *Versioned) versionedOCICacheDir() string { @@ -74,7 +74,7 @@ func (d *Versioned) Pull() error { remoteDescriptor *v1.Descriptor ) - remoteDiskImage := d.machineVersion.diskImage(define.Qcow) + remoteDiskImage := d.machineVersion.diskImage(d.vmType) logrus.Debugf("podman disk image name: %s", remoteDiskImage) // is there a valid oci dir in our cache diff --git a/pkg/machine/pull.go b/pkg/machine/pull.go index 83ae5067478c..538d67f99c71 100644 --- a/pkg/machine/pull.go +++ b/pkg/machine/pull.go @@ -270,7 +270,7 @@ func Pull(input, machineName string, vp VirtProvider) (*define.VMFile, FCOSStrea if len(strippedInput) > 0 { return nil, 0, errors.New("image names are not supported yet") } - disk, err = ocipull.NewVersioned(context.Background(), dataDir, machineName) + disk, err = ocipull.NewVersioned(context.Background(), dataDir, machineName, vp.VMType().String()) if err != nil { return nil, 0, err }