Port osbuild/images v0.33.0 with dot-notation to composer
Update the osbuild/images to the version which introduces "dot notation" for distro release versions. - Replace all uses of distroregistry by distrofactory. - Delete local version of reporegistry and use the one from the osbuild/images. - Weldr: unify `createWeldrAPI()` and `createWeldrAPI2()` into a single `createTestWeldrAPI()` function`. - store/fixture: rework fixtures to allow overriding the host distro name and host architecture name. A cleanup function to restore the host distro and arch names is always part of the fixture struct. - Delete `distro_mock` package, since it is no longer used. - Bump the required version of osbuild to 98, because the OSCAP customization is using the 'compress_results' stage option, which is not available in older versions of osbuild. Signed-off-by: Tomáš Hozza <thozza@redhat.com>
This commit is contained in:
parent
f6ff8c40dd
commit
625b1578fa
1166 changed files with 154457 additions and 5508 deletions
134
vendor/github.com/osbuild/images/pkg/image/anaconda_container_installer.go
generated
vendored
Normal file
134
vendor/github.com/osbuild/images/pkg/image/anaconda_container_installer.go
generated
vendored
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
package image
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/pkg/arch"
|
||||
"github.com/osbuild/images/pkg/artifact"
|
||||
"github.com/osbuild/images/pkg/container"
|
||||
"github.com/osbuild/images/pkg/customizations/users"
|
||||
"github.com/osbuild/images/pkg/manifest"
|
||||
"github.com/osbuild/images/pkg/platform"
|
||||
"github.com/osbuild/images/pkg/rpmmd"
|
||||
"github.com/osbuild/images/pkg/runner"
|
||||
)
|
||||
|
||||
type AnacondaContainerInstaller struct {
|
||||
Base
|
||||
Platform platform.Platform
|
||||
ExtraBasePackages rpmmd.PackageSet
|
||||
Users []users.User
|
||||
Groups []users.Group
|
||||
|
||||
SquashfsCompression string
|
||||
|
||||
ISOLabelTempl string
|
||||
Product string
|
||||
Variant string
|
||||
OSName string
|
||||
Ref string
|
||||
OSVersion string
|
||||
Release string
|
||||
|
||||
ContainerSource container.SourceSpec
|
||||
|
||||
Filename string
|
||||
|
||||
AdditionalDracutModules []string
|
||||
AdditionalAnacondaModules []string
|
||||
AdditionalDrivers []string
|
||||
FIPS bool
|
||||
}
|
||||
|
||||
func NewAnacondaContainerInstaller(container container.SourceSpec, ref string) *AnacondaContainerInstaller {
|
||||
return &AnacondaContainerInstaller{
|
||||
Base: NewBase("container-installer"),
|
||||
ContainerSource: container,
|
||||
Ref: ref,
|
||||
}
|
||||
}
|
||||
|
||||
func (img *AnacondaContainerInstaller) InstantiateManifest(m *manifest.Manifest,
|
||||
repos []rpmmd.RepoConfig,
|
||||
runner runner.Runner,
|
||||
rng *rand.Rand) (*artifact.Artifact, error) {
|
||||
buildPipeline := manifest.NewBuild(m, runner, repos, &manifest.BuildOptions{ContainerBuildable: true})
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
anacondaPipeline := manifest.NewAnacondaInstaller(
|
||||
manifest.AnacondaInstallerTypePayload,
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
"kernel",
|
||||
img.Product,
|
||||
img.OSVersion,
|
||||
)
|
||||
|
||||
// This is only built with ELN for now
|
||||
anacondaPipeline.UseRHELLoraxTemplates = true
|
||||
|
||||
anacondaPipeline.ExtraPackages = img.ExtraBasePackages.Include
|
||||
anacondaPipeline.ExcludePackages = img.ExtraBasePackages.Exclude
|
||||
anacondaPipeline.ExtraRepos = img.ExtraBasePackages.Repositories
|
||||
anacondaPipeline.Users = img.Users
|
||||
anacondaPipeline.Groups = img.Groups
|
||||
anacondaPipeline.Variant = img.Variant
|
||||
anacondaPipeline.Biosdevname = (img.Platform.GetArch() == arch.ARCH_X86_64)
|
||||
anacondaPipeline.Checkpoint()
|
||||
anacondaPipeline.AdditionalDracutModules = img.AdditionalDracutModules
|
||||
anacondaPipeline.AdditionalAnacondaModules = img.AdditionalAnacondaModules
|
||||
if img.FIPS {
|
||||
anacondaPipeline.AdditionalAnacondaModules = append(
|
||||
anacondaPipeline.AdditionalAnacondaModules,
|
||||
"org.fedoraproject.Anaconda.Modules.Security",
|
||||
)
|
||||
}
|
||||
anacondaPipeline.AdditionalDrivers = img.AdditionalDrivers
|
||||
|
||||
// TODO: replace isoLabelTmpl with more high-level properties
|
||||
isoLabel := fmt.Sprintf(img.ISOLabelTempl, img.Platform.GetArch())
|
||||
|
||||
rootfsImagePipeline := manifest.NewISORootfsImg(buildPipeline, anacondaPipeline)
|
||||
rootfsImagePipeline.Size = 4 * common.GibiByte
|
||||
|
||||
bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline.Platform = img.Platform
|
||||
bootTreePipeline.UEFIVendor = img.Platform.GetUEFIVendor()
|
||||
bootTreePipeline.ISOLabel = isoLabel
|
||||
bootTreePipeline.KernelOpts = []string{fmt.Sprintf("inst.stage2=hd:LABEL=%s", isoLabel), fmt.Sprintf("inst.ks=hd:LABEL=%s:%s", isoLabel, kspath)}
|
||||
if img.FIPS {
|
||||
bootTreePipeline.KernelOpts = append(bootTreePipeline.KernelOpts, "fips=1")
|
||||
}
|
||||
|
||||
// enable ISOLinux on x86_64 only
|
||||
isoLinuxEnabled := img.Platform.GetArch() == arch.ARCH_X86_64
|
||||
|
||||
isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, anacondaPipeline, rootfsImagePipeline, bootTreePipeline)
|
||||
isoTreePipeline.PartitionTable = efiBootPartitionTable(rng)
|
||||
isoTreePipeline.Release = img.Release
|
||||
isoTreePipeline.OSName = img.OSName
|
||||
isoTreePipeline.Users = img.Users
|
||||
isoTreePipeline.Groups = img.Groups
|
||||
|
||||
isoTreePipeline.SquashfsCompression = img.SquashfsCompression
|
||||
|
||||
// For ostree installers, always put the kickstart file in the root of the ISO
|
||||
isoTreePipeline.KSPath = kspath
|
||||
isoTreePipeline.PayloadPath = "/container"
|
||||
|
||||
isoTreePipeline.ContainerSource = &img.ContainerSource
|
||||
isoTreePipeline.ISOLinux = isoLinuxEnabled
|
||||
if img.FIPS {
|
||||
isoTreePipeline.KernelOpts = append(isoTreePipeline.KernelOpts, "fips=1")
|
||||
}
|
||||
|
||||
isoPipeline := manifest.NewISO(buildPipeline, isoTreePipeline, isoLabel)
|
||||
isoPipeline.SetFilename(img.Filename)
|
||||
isoPipeline.ISOLinux = isoLinuxEnabled
|
||||
artifact := isoPipeline.Export()
|
||||
|
||||
return artifact, nil
|
||||
}
|
||||
25
vendor/github.com/osbuild/images/pkg/image/anaconda_live_installer.go
generated
vendored
25
vendor/github.com/osbuild/images/pkg/image/anaconda_live_installer.go
generated
vendored
|
|
@ -9,7 +9,6 @@ import (
|
|||
"github.com/osbuild/images/internal/workload"
|
||||
"github.com/osbuild/images/pkg/arch"
|
||||
"github.com/osbuild/images/pkg/artifact"
|
||||
"github.com/osbuild/images/pkg/disk"
|
||||
"github.com/osbuild/images/pkg/manifest"
|
||||
"github.com/osbuild/images/pkg/platform"
|
||||
"github.com/osbuild/images/pkg/rpmmd"
|
||||
|
|
@ -49,14 +48,15 @@ func (img *AnacondaLiveInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
livePipeline := manifest.NewAnacondaInstaller(m,
|
||||
livePipeline := manifest.NewAnacondaInstaller(
|
||||
manifest.AnacondaInstallerTypeLive,
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
"kernel",
|
||||
img.Product,
|
||||
img.OSVersion)
|
||||
img.OSVersion,
|
||||
)
|
||||
|
||||
livePipeline.ExtraPackages = img.ExtraBasePackages.Include
|
||||
livePipeline.ExcludePackages = img.ExtraBasePackages.Exclude
|
||||
|
|
@ -66,28 +66,13 @@ func (img *AnacondaLiveInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
|
||||
livePipeline.Checkpoint()
|
||||
|
||||
rootfsPartitionTable := &disk.PartitionTable{
|
||||
Size: 20 * common.MebiByte,
|
||||
Partitions: []disk.Partition{
|
||||
{
|
||||
Start: 0,
|
||||
Size: 20 * common.MebiByte,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
Mountpoint: "/",
|
||||
UUID: disk.NewVolIDFromRand(rng),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// TODO: replace isoLabelTmpl with more high-level properties
|
||||
isoLabel := fmt.Sprintf(img.ISOLabelTempl, img.Platform.GetArch())
|
||||
|
||||
rootfsImagePipeline := manifest.NewISORootfsImg(buildPipeline, livePipeline)
|
||||
rootfsImagePipeline.Size = 8 * common.GibiByte
|
||||
|
||||
bootTreePipeline := manifest.NewEFIBootTree(m, buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline.Platform = img.Platform
|
||||
bootTreePipeline.UEFIVendor = img.Platform.GetUEFIVendor()
|
||||
bootTreePipeline.ISOLabel = isoLabel
|
||||
|
|
@ -107,7 +92,7 @@ func (img *AnacondaLiveInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
isoLinuxEnabled := img.Platform.GetArch() == arch.ARCH_X86_64
|
||||
|
||||
isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, livePipeline, rootfsImagePipeline, bootTreePipeline)
|
||||
isoTreePipeline.PartitionTable = rootfsPartitionTable
|
||||
isoTreePipeline.PartitionTable = efiBootPartitionTable(rng)
|
||||
isoTreePipeline.Release = img.Release
|
||||
isoTreePipeline.OSName = img.OSName
|
||||
|
||||
|
|
|
|||
27
vendor/github.com/osbuild/images/pkg/image/anaconda_ostree_installer.go
generated
vendored
27
vendor/github.com/osbuild/images/pkg/image/anaconda_ostree_installer.go
generated
vendored
|
|
@ -8,7 +8,6 @@ import (
|
|||
"github.com/osbuild/images/pkg/arch"
|
||||
"github.com/osbuild/images/pkg/artifact"
|
||||
"github.com/osbuild/images/pkg/customizations/users"
|
||||
"github.com/osbuild/images/pkg/disk"
|
||||
"github.com/osbuild/images/pkg/manifest"
|
||||
"github.com/osbuild/images/pkg/ostree"
|
||||
"github.com/osbuild/images/pkg/platform"
|
||||
|
|
@ -31,6 +30,7 @@ type AnacondaOSTreeInstaller struct {
|
|||
OSName string
|
||||
OSVersion string
|
||||
Release string
|
||||
Remote string
|
||||
|
||||
Commit ostree.SourceSpec
|
||||
|
||||
|
|
@ -56,14 +56,15 @@ func (img *AnacondaOSTreeInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
anacondaPipeline := manifest.NewAnacondaInstaller(m,
|
||||
anacondaPipeline := manifest.NewAnacondaInstaller(
|
||||
manifest.AnacondaInstallerTypePayload,
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
"kernel",
|
||||
img.Product,
|
||||
img.OSVersion)
|
||||
img.OSVersion,
|
||||
)
|
||||
anacondaPipeline.ExtraPackages = img.ExtraBasePackages.Include
|
||||
anacondaPipeline.ExcludePackages = img.ExtraBasePackages.Exclude
|
||||
anacondaPipeline.ExtraRepos = img.ExtraBasePackages.Repositories
|
||||
|
|
@ -82,28 +83,13 @@ func (img *AnacondaOSTreeInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
}
|
||||
anacondaPipeline.AdditionalDrivers = img.AdditionalDrivers
|
||||
|
||||
rootfsPartitionTable := &disk.PartitionTable{
|
||||
Size: 20 * common.MebiByte,
|
||||
Partitions: []disk.Partition{
|
||||
{
|
||||
Start: 0,
|
||||
Size: 20 * common.MebiByte,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
Mountpoint: "/",
|
||||
UUID: disk.NewVolIDFromRand(rng),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// TODO: replace isoLabelTmpl with more high-level properties
|
||||
isoLabel := fmt.Sprintf(img.ISOLabelTempl, img.Platform.GetArch())
|
||||
|
||||
rootfsImagePipeline := manifest.NewISORootfsImg(buildPipeline, anacondaPipeline)
|
||||
rootfsImagePipeline.Size = 4 * common.GibiByte
|
||||
|
||||
bootTreePipeline := manifest.NewEFIBootTree(m, buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline.Platform = img.Platform
|
||||
bootTreePipeline.UEFIVendor = img.Platform.GetUEFIVendor()
|
||||
bootTreePipeline.ISOLabel = isoLabel
|
||||
|
|
@ -116,9 +102,10 @@ func (img *AnacondaOSTreeInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
isoLinuxEnabled := img.Platform.GetArch() == arch.ARCH_X86_64
|
||||
|
||||
isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, anacondaPipeline, rootfsImagePipeline, bootTreePipeline)
|
||||
isoTreePipeline.PartitionTable = rootfsPartitionTable
|
||||
isoTreePipeline.PartitionTable = efiBootPartitionTable(rng)
|
||||
isoTreePipeline.Release = img.Release
|
||||
isoTreePipeline.OSName = img.OSName
|
||||
isoTreePipeline.Remote = img.Remote
|
||||
isoTreePipeline.Users = img.Users
|
||||
isoTreePipeline.Groups = img.Groups
|
||||
|
||||
|
|
|
|||
46
vendor/github.com/osbuild/images/pkg/image/anaconda_tar_installer.go
generated
vendored
46
vendor/github.com/osbuild/images/pkg/image/anaconda_tar_installer.go
generated
vendored
|
|
@ -20,6 +20,24 @@ import (
|
|||
|
||||
const kspath = "/osbuild.ks"
|
||||
|
||||
func efiBootPartitionTable(rng *rand.Rand) *disk.PartitionTable {
|
||||
var efibootImageSize uint64 = 20 * common.MebiByte
|
||||
return &disk.PartitionTable{
|
||||
Size: efibootImageSize,
|
||||
Partitions: []disk.Partition{
|
||||
{
|
||||
Start: 0,
|
||||
Size: efibootImageSize,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
Mountpoint: "/",
|
||||
UUID: disk.NewVolIDFromRand(rng),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type AnacondaTarInstaller struct {
|
||||
Base
|
||||
Platform platform.Platform
|
||||
|
|
@ -66,14 +84,15 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
anacondaPipeline := manifest.NewAnacondaInstaller(m,
|
||||
anacondaPipeline := manifest.NewAnacondaInstaller(
|
||||
manifest.AnacondaInstallerTypePayload,
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
"kernel",
|
||||
img.Product,
|
||||
img.OSVersion)
|
||||
img.OSVersion,
|
||||
)
|
||||
|
||||
anacondaPipeline.ExtraPackages = img.ExtraBasePackages.Include
|
||||
anacondaPipeline.ExcludePackages = img.ExtraBasePackages.Exclude
|
||||
|
|
@ -101,28 +120,13 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
|
||||
anacondaPipeline.Checkpoint()
|
||||
|
||||
rootfsPartitionTable := &disk.PartitionTable{
|
||||
Size: 20 * common.MebiByte,
|
||||
Partitions: []disk.Partition{
|
||||
{
|
||||
Start: 0,
|
||||
Size: 20 * common.MebiByte,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
Mountpoint: "/",
|
||||
UUID: disk.NewVolIDFromRand(rng),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// TODO: replace isoLabelTmpl with more high-level properties
|
||||
isoLabel := fmt.Sprintf(img.ISOLabelTempl, img.Platform.GetArch())
|
||||
|
||||
rootfsImagePipeline := manifest.NewISORootfsImg(buildPipeline, anacondaPipeline)
|
||||
rootfsImagePipeline.Size = 4 * common.GibiByte
|
||||
rootfsImagePipeline.Size = 5 * common.GibiByte
|
||||
|
||||
bootTreePipeline := manifest.NewEFIBootTree(m, buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline.Platform = img.Platform
|
||||
bootTreePipeline.UEFIVendor = img.Platform.GetUEFIVendor()
|
||||
bootTreePipeline.ISOLabel = isoLabel
|
||||
|
|
@ -137,7 +141,7 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
kernelOpts = append(kernelOpts, img.AdditionalKernelOpts...)
|
||||
bootTreePipeline.KernelOpts = kernelOpts
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
osPipeline.Workload = img.Workload
|
||||
|
|
@ -146,7 +150,7 @@ func (img *AnacondaTarInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
isoLinuxEnabled := img.Platform.GetArch() == arch.ARCH_X86_64
|
||||
|
||||
isoTreePipeline := manifest.NewAnacondaInstallerISOTree(buildPipeline, anacondaPipeline, rootfsImagePipeline, bootTreePipeline)
|
||||
isoTreePipeline.PartitionTable = rootfsPartitionTable
|
||||
isoTreePipeline.PartitionTable = efiBootPartitionTable(rng)
|
||||
isoTreePipeline.Release = img.Release
|
||||
isoTreePipeline.OSName = img.OSName
|
||||
isoTreePipeline.Users = img.Users
|
||||
|
|
|
|||
2
vendor/github.com/osbuild/images/pkg/image/archive.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/image/archive.go
generated
vendored
|
|
@ -34,7 +34,7 @@ func (img *Archive) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
osPipeline.Workload = img.Workload
|
||||
|
|
|
|||
72
vendor/github.com/osbuild/images/pkg/image/bootc_disk.go
generated
vendored
Normal file
72
vendor/github.com/osbuild/images/pkg/image/bootc_disk.go
generated
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
package image
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
|
||||
"github.com/osbuild/images/pkg/artifact"
|
||||
"github.com/osbuild/images/pkg/container"
|
||||
"github.com/osbuild/images/pkg/manifest"
|
||||
"github.com/osbuild/images/pkg/platform"
|
||||
"github.com/osbuild/images/pkg/runner"
|
||||
)
|
||||
|
||||
type BootcDiskImage struct {
|
||||
*OSTreeDiskImage
|
||||
}
|
||||
|
||||
func NewBootcDiskImage(container container.SourceSpec) *BootcDiskImage {
|
||||
// XXX: hardcoded for now
|
||||
ref := "ostree/1/1/0"
|
||||
|
||||
return &BootcDiskImage{
|
||||
&OSTreeDiskImage{
|
||||
Base: NewBase("bootc-raw-image"),
|
||||
ContainerSource: &container,
|
||||
Ref: ref,
|
||||
OSName: "default",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (img *BootcDiskImage) InstantiateManifestFromContainers(m *manifest.Manifest,
|
||||
containers []container.SourceSpec,
|
||||
runner runner.Runner,
|
||||
rng *rand.Rand) (*artifact.Artifact, error) {
|
||||
|
||||
buildPipeline := manifest.NewBuildFromContainer(m, runner, containers, &manifest.BuildOptions{ContainerBuildable: true})
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
// don't support compressing non-raw images
|
||||
imgFormat := img.Platform.GetImageFormat()
|
||||
if imgFormat == platform.FORMAT_UNSET {
|
||||
// treat unset as raw for this check
|
||||
imgFormat = platform.FORMAT_RAW
|
||||
}
|
||||
if imgFormat != platform.FORMAT_RAW && img.Compression != "" {
|
||||
panic(fmt.Sprintf("no compression is allowed with %q format for %q", imgFormat, img.name))
|
||||
}
|
||||
|
||||
opts := &baseRawOstreeImageOpts{useBootupd: true}
|
||||
baseImage := baseRawOstreeImage(img.OSTreeDiskImage, buildPipeline, opts)
|
||||
switch imgFormat {
|
||||
case platform.FORMAT_QCOW2:
|
||||
// qcow2 runs without a build pipeline directly from "bib"
|
||||
qcow2Pipeline := manifest.NewQCOW2(nil, baseImage)
|
||||
qcow2Pipeline.Compat = img.Platform.GetQCOW2Compat()
|
||||
qcow2Pipeline.SetFilename(img.Filename)
|
||||
return qcow2Pipeline.Export(), nil
|
||||
}
|
||||
|
||||
switch img.Compression {
|
||||
case "xz":
|
||||
compressedImage := manifest.NewXZ(buildPipeline, baseImage)
|
||||
compressedImage.SetFilename(img.Filename)
|
||||
return compressedImage.Export(), nil
|
||||
case "":
|
||||
baseImage.SetFilename(img.Filename)
|
||||
return baseImage.Export(), nil
|
||||
default:
|
||||
panic(fmt.Sprintf("unsupported compression type %q on %q", img.Compression, img.name))
|
||||
}
|
||||
}
|
||||
2
vendor/github.com/osbuild/images/pkg/image/container.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/image/container.go
generated
vendored
|
|
@ -34,7 +34,7 @@ func (img *BaseContainer) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
osPipeline.Workload = img.Workload
|
||||
|
|
|
|||
2
vendor/github.com/osbuild/images/pkg/image/disk.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/image/disk.go
generated
vendored
|
|
@ -52,7 +52,7 @@ func (img *DiskImage) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.PartitionTable = img.PartitionTable
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
|
|
|
|||
2
vendor/github.com/osbuild/images/pkg/image/ostree_archive.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/image/ostree_archive.go
generated
vendored
|
|
@ -50,7 +50,7 @@ func (img *OSTreeArchive) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
osPipeline.Workload = img.Workload
|
||||
|
|
|
|||
7
vendor/github.com/osbuild/images/pkg/image/ostree_container.go
generated
vendored
7
vendor/github.com/osbuild/images/pkg/image/ostree_container.go
generated
vendored
|
|
@ -47,7 +47,7 @@ func (img *OSTreeContainer) InstantiateManifest(m *manifest.Manifest,
|
|||
buildPipeline := manifest.NewBuild(m, runner, repos, nil)
|
||||
buildPipeline.Checkpoint()
|
||||
|
||||
osPipeline := manifest.NewOS(m, buildPipeline, img.Platform, repos)
|
||||
osPipeline := manifest.NewOS(buildPipeline, img.Platform, repos)
|
||||
osPipeline.OSCustomizations = img.OSCustomizations
|
||||
osPipeline.Environment = img.Environment
|
||||
osPipeline.Workload = img.Workload
|
||||
|
|
@ -60,13 +60,14 @@ func (img *OSTreeContainer) InstantiateManifest(m *manifest.Manifest,
|
|||
nginxConfigPath := "/etc/nginx.conf"
|
||||
listenPort := "8080"
|
||||
|
||||
serverPipeline := manifest.NewOSTreeCommitServer(m,
|
||||
serverPipeline := manifest.NewOSTreeCommitServer(
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
commitPipeline,
|
||||
nginxConfigPath,
|
||||
listenPort)
|
||||
listenPort,
|
||||
)
|
||||
serverPipeline.Language = img.ContainerLanguage
|
||||
|
||||
containerPipeline := manifest.NewOCIContainer(buildPipeline, serverPipeline)
|
||||
|
|
|
|||
24
vendor/github.com/osbuild/images/pkg/image/ostree_disk.go
generated
vendored
24
vendor/github.com/osbuild/images/pkg/image/ostree_disk.go
generated
vendored
|
|
@ -74,13 +74,21 @@ func NewOSTreeDiskImageFromContainer(container container.SourceSpec, ref string)
|
|||
}
|
||||
}
|
||||
|
||||
func baseRawOstreeImage(img *OSTreeDiskImage, m *manifest.Manifest, buildPipeline *manifest.Build) *manifest.RawOSTreeImage {
|
||||
type baseRawOstreeImageOpts struct {
|
||||
useBootupd bool
|
||||
}
|
||||
|
||||
func baseRawOstreeImage(img *OSTreeDiskImage, buildPipeline manifest.Build, opts *baseRawOstreeImageOpts) *manifest.RawOSTreeImage {
|
||||
if opts == nil {
|
||||
opts = &baseRawOstreeImageOpts{}
|
||||
}
|
||||
|
||||
var osPipeline *manifest.OSTreeDeployment
|
||||
switch {
|
||||
case img.CommitSource != nil:
|
||||
osPipeline = manifest.NewOSTreeCommitDeployment(buildPipeline, m, img.CommitSource, img.OSName, img.Platform)
|
||||
osPipeline = manifest.NewOSTreeCommitDeployment(buildPipeline, img.CommitSource, img.OSName, img.Platform)
|
||||
case img.ContainerSource != nil:
|
||||
osPipeline = manifest.NewOSTreeContainerDeployment(buildPipeline, m, img.ContainerSource, img.Ref, img.OSName, img.Platform)
|
||||
osPipeline = manifest.NewOSTreeContainerDeployment(buildPipeline, img.ContainerSource, img.Ref, img.OSName, img.Platform)
|
||||
default:
|
||||
panic("no content source defined for ostree image")
|
||||
}
|
||||
|
|
@ -98,11 +106,13 @@ func baseRawOstreeImage(img *OSTreeDiskImage, m *manifest.Manifest, buildPipelin
|
|||
osPipeline.FIPS = img.FIPS
|
||||
osPipeline.IgnitionPlatform = img.IgnitionPlatform
|
||||
osPipeline.LockRoot = img.LockRoot
|
||||
osPipeline.UseBootupd = opts.useBootupd
|
||||
|
||||
// other image types (e.g. live) pass the workload to the pipeline.
|
||||
osPipeline.EnabledServices = img.Workload.GetServices()
|
||||
osPipeline.DisabledServices = img.Workload.GetDisabledServices()
|
||||
|
||||
if img.Workload != nil {
|
||||
osPipeline.EnabledServices = img.Workload.GetServices()
|
||||
osPipeline.DisabledServices = img.Workload.GetDisabledServices()
|
||||
}
|
||||
return manifest.NewRawOStreeImage(buildPipeline, osPipeline, img.Platform)
|
||||
}
|
||||
|
||||
|
|
@ -126,7 +136,7 @@ func (img *OSTreeDiskImage) InstantiateManifest(m *manifest.Manifest,
|
|||
panic(fmt.Sprintf("no compression is allowed with %q format for %q", imgFormat, img.name))
|
||||
}
|
||||
|
||||
baseImage := baseRawOstreeImage(img, m, buildPipeline)
|
||||
baseImage := baseRawOstreeImage(img, buildPipeline, nil)
|
||||
switch img.Platform.GetImageFormat() {
|
||||
case platform.FORMAT_VMDK:
|
||||
vmdkPipeline := manifest.NewVMDK(buildPipeline, baseImage)
|
||||
|
|
|
|||
28
vendor/github.com/osbuild/images/pkg/image/ostree_simplified_installer.go
generated
vendored
28
vendor/github.com/osbuild/images/pkg/image/ostree_simplified_installer.go
generated
vendored
|
|
@ -4,14 +4,12 @@ import (
|
|||
"fmt"
|
||||
"math/rand"
|
||||
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/internal/environment"
|
||||
"github.com/osbuild/images/internal/workload"
|
||||
"github.com/osbuild/images/pkg/arch"
|
||||
"github.com/osbuild/images/pkg/artifact"
|
||||
"github.com/osbuild/images/pkg/customizations/fdo"
|
||||
"github.com/osbuild/images/pkg/customizations/ignition"
|
||||
"github.com/osbuild/images/pkg/disk"
|
||||
"github.com/osbuild/images/pkg/manifest"
|
||||
"github.com/osbuild/images/pkg/platform"
|
||||
"github.com/osbuild/images/pkg/rpmmd"
|
||||
|
|
@ -79,16 +77,17 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
imageFilename := "image.raw.xz"
|
||||
|
||||
// image in simplified installer is always compressed
|
||||
compressedImage := manifest.NewXZ(buildPipeline, baseRawOstreeImage(img.rawImage, m, buildPipeline))
|
||||
compressedImage := manifest.NewXZ(buildPipeline, baseRawOstreeImage(img.rawImage, buildPipeline, nil))
|
||||
compressedImage.SetFilename(imageFilename)
|
||||
|
||||
coiPipeline := manifest.NewCoreOSInstaller(m,
|
||||
coiPipeline := manifest.NewCoreOSInstaller(
|
||||
buildPipeline,
|
||||
img.Platform,
|
||||
repos,
|
||||
"kernel",
|
||||
img.Product,
|
||||
img.OSVersion)
|
||||
img.OSVersion,
|
||||
)
|
||||
coiPipeline.ExtraPackages = img.ExtraBasePackages.Include
|
||||
coiPipeline.ExcludePackages = img.ExtraBasePackages.Exclude
|
||||
coiPipeline.ExtraRepos = img.ExtraBasePackages.Repositories
|
||||
|
|
@ -100,7 +99,7 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
|
||||
isoLabel := fmt.Sprintf(img.ISOLabelTempl, img.Platform.GetArch())
|
||||
|
||||
bootTreePipeline := manifest.NewEFIBootTree(m, buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline := manifest.NewEFIBootTree(buildPipeline, img.Product, img.OSVersion)
|
||||
bootTreePipeline.Platform = img.Platform
|
||||
bootTreePipeline.UEFIVendor = img.Platform.GetUEFIVendor()
|
||||
bootTreePipeline.ISOLabel = isoLabel
|
||||
|
|
@ -134,27 +133,12 @@ func (img *OSTreeSimplifiedInstaller) InstantiateManifest(m *manifest.Manifest,
|
|||
|
||||
bootTreePipeline.KernelOpts = kernelOpts
|
||||
|
||||
rootfsPartitionTable := &disk.PartitionTable{
|
||||
Size: 20 * common.MebiByte,
|
||||
Partitions: []disk.Partition{
|
||||
{
|
||||
Start: 0,
|
||||
Size: 20 * common.MebiByte,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
Mountpoint: "/",
|
||||
UUID: disk.NewVolIDFromRand(rng),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// enable ISOLinux on x86_64 only
|
||||
isoLinuxEnabled := img.Platform.GetArch() == arch.ARCH_X86_64
|
||||
|
||||
isoTreePipeline := manifest.NewCoreOSISOTree(buildPipeline, compressedImage, coiPipeline, bootTreePipeline)
|
||||
isoTreePipeline.KernelOpts = kernelOpts
|
||||
isoTreePipeline.PartitionTable = rootfsPartitionTable
|
||||
isoTreePipeline.PartitionTable = efiBootPartitionTable(rng)
|
||||
isoTreePipeline.OSName = img.OSName
|
||||
isoTreePipeline.PayloadPath = fmt.Sprintf("/%s", imageFilename)
|
||||
isoTreePipeline.ISOLinux = isoLinuxEnabled
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue