diff --git a/internal/distro/fedora/distro.go b/internal/distro/fedora/distro.go index e5a741b31..de5f9d18f 100644 --- a/internal/distro/fedora/distro.go +++ b/internal/distro/fedora/distro.go @@ -231,6 +231,16 @@ var ( environment: &environment.Azure{}, } + vmdkDefaultImageConfig = &distro.ImageConfig{ + Locale: common.ToPtr("en_US.UTF-8"), + EnabledServices: []string{ + "cloud-init.service", + "cloud-config.service", + "cloud-final.service", + "cloud-init-local.service", + }, + } + vmdkImgType = imageType{ name: "vmdk", filename: "disk.vmdk", @@ -238,15 +248,7 @@ var ( packageSets: map[string]packageSetFunc{ osPkgsKey: vmdkCommonPackageSet, }, - defaultImageConfig: &distro.ImageConfig{ - Locale: common.ToPtr("en_US.UTF-8"), - EnabledServices: []string{ - "cloud-init.service", - "cloud-config.service", - "cloud-final.service", - "cloud-init-local.service", - }, - }, + defaultImageConfig: vmdkDefaultImageConfig, kernelOptions: defaultKernelOptions, bootable: true, defaultSize: 2 * common.GibiByte, @@ -257,6 +259,24 @@ var ( basePartitionTables: defaultBasePartitionTables, } + ovaImgType = imageType{ + name: "ova", + filename: "image.ova", + mimeType: "application/ovf", + packageSets: map[string]packageSetFunc{ + osPkgsKey: vmdkCommonPackageSet, + }, + defaultImageConfig: vmdkDefaultImageConfig, + kernelOptions: defaultKernelOptions, + bootable: true, + defaultSize: 2 * common.GibiByte, + image: liveImage, + buildPipelines: []string{"build"}, + payloadPipelines: []string{"os", "image", "vmdk", "ovf", "archive"}, + exports: []string{"archive"}, + basePartitionTables: defaultBasePartitionTables, + } + openstackImgType = imageType{ name: "openstack", filename: "disk.qcow2", @@ -946,6 +966,16 @@ func newDistro(version int) distro.Distro { }, vmdkImgType, ) + x86_64.addImageTypes( + &platform.X86{ + BIOS: true, + UEFIVendor: "fedora", + BasePlatform: platform.BasePlatform{ + ImageFormat: platform.FORMAT_OVA, + }, + }, + ovaImgType, + ) x86_64.addImageTypes( &platform.X86{ BIOS: true, diff --git a/internal/distro/fedora/distro_test.go b/internal/distro/fedora/distro_test.go index 9742a6c6f..b6fc29546 100644 --- a/internal/distro/fedora/distro_test.go +++ b/internal/distro/fedora/distro_test.go @@ -92,6 +92,14 @@ func TestFilenameFromType(t *testing.T) { mimeType: "application/x-vmdk", }, }, + { + name: "ova", + args: args{"ova"}, + want: wantResult{ + filename: "image.ova", + mimeType: "application/ovf", + }, + }, { name: "container", args: args{"container"}, @@ -268,6 +276,7 @@ func TestImageType_Name(t *testing.T) { "openstack", "vhd", "vmdk", + "ova", "ami", "iot-commit", "iot-container", @@ -446,6 +455,7 @@ func TestArchitecture_ListImageTypes(t *testing.T) { "openstack", "vhd", "vmdk", + "ova", "ami", "iot-commit", "iot-container",