diff --git a/pkg/image/bootc_disk.go b/pkg/image/bootc_disk.go index a1037e6cc5..49ddaceaea 100644 --- a/pkg/image/bootc_disk.go +++ b/pkg/image/bootc_disk.go @@ -3,7 +3,9 @@ package image import ( "fmt" "math/rand" + "regexp" + "github.com/osbuild/images/internal/common" "github.com/osbuild/images/pkg/container" "github.com/osbuild/images/pkg/customizations/users" "github.com/osbuild/images/pkg/disk" @@ -89,5 +91,17 @@ func (img *BootcDiskImage) InstantiateManifestFromContainers(m *manifest.Manifes fmt.Sprintf("%s.vmdk", fileBasename), fmt.Sprintf("%s.vhd", fileBasename), } + + // XXX: copied from https://github.com/osbuild/images/blob/v0.85.0/pkg/image/disk.go#L102 + gcePipeline := manifest.NewTar(buildPipeline, rawImage, "gce") + gcePipeline.Format = osbuild.TarArchiveFormatOldgnu + gcePipeline.RootNode = osbuild.TarRootNodeOmit + // these are required to successfully import the image to GCP + gcePipeline.ACLs = common.ToPtr(false) + gcePipeline.SELinux = common.ToPtr(false) + gcePipeline.Xattrs = common.ToPtr(false) + gcePipeline.Transform = fmt.Sprintf(`s/%s/disk.raw/`, regexp.QuoteMeta(rawImage.Filename())) + gcePipeline.SetFilename("image.tgz") + return nil } diff --git a/pkg/image/bootc_disk_test.go b/pkg/image/bootc_disk_test.go index f0937625eb..941e0075a5 100644 --- a/pkg/image/bootc_disk_test.go +++ b/pkg/image/bootc_disk_test.go @@ -201,6 +201,10 @@ func TestBootcDiskImageExportPipelines(t *testing.T) { // tar pipeline for ova tarPipeline := findPipelineFromOsbuildManifest(t, osbuildManifest, "archive") require.NotNil(tarPipeline) + + // raw-tgz pipeline + gcePipeline := findPipelineFromOsbuildManifest(t, osbuildManifest, "gce") + require.NotNil(gcePipeline) } func TestBootcDiskImageInstantiateUsers(t *testing.T) {