Documentation ¶
Overview ¶
Package manifest is used to define an osbuild manifest as a series of pipelines with content. Typically, a Manifest is created using manifest.New() and pipelines are defined and added to it using the pipeline constructors (e.g., NewBuild()) with the manifest as the first argument. The pipelines are added in the order they are called.
The package implements a standard set of osbuild pipelines. A pipeline conceptually represents a named filesystem tree, optionally generated in a provided build root (represented by another pipeline). All inputs to a pipeline must be explicitly specified, either in terms of another pipeline, in terms of content addressable inputs or in terms of static parameters to the inherited Pipeline structs.
Index ¶
- Constants
- type AnacondaInstaller
- type AnacondaInstallerISOTree
- type AnacondaInstallerType
- type AnacondaInteractiveDefaults
- type Arch
- type Base
- type Build
- type BuildOptions
- type BuildrootFromContainer
- type BuildrootFromPackages
- type ContentTest
- type CoreOSISOTree
- type CoreOSInstaller
- type Distro
- type EFIBootTree
- type FilePipeline
- type ISO
- type ISORootfsImg
- type Manifest
- func (m Manifest) GetCheckpoints() []string
- func (m Manifest) GetContainerSourceSpecs() map[string][]container.SourceSpec
- func (m Manifest) GetExports() []string
- func (m Manifest) GetOSTreeSourceSpecs() map[string][]ostree.SourceSpec
- func (m Manifest) GetPackageSetChains() map[string][]rpmmd.PackageSet
- func (m Manifest) Serialize(packageSets map[string][]rpmmd.PackageSpec, ...) (OSBuildManifest, error)
- type OCIContainer
- type OS
- type OSBuildManifest
- type OSCustomizations
- type OSTreeCommit
- type OSTreeCommitServer
- type OSTreeDeployment
- type OSTreeDeploymentCustomizations
- type OSTreeEncapsulate
- type OVF
- type PackageSelector
- type Pipeline
- type QCOW2
- type RawBootcImage
- type RawImage
- type RawOSTreeImage
- type Subscription
- type Tar
- type TreePipeline
- type VMDK
- type VPC
- type XZ
Constants ¶
const ( DISTRO_NULL = iota DISTRO_EL10 DISTRO_EL9 DISTRO_EL8 DISTRO_EL7 DISTRO_FEDORA )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnacondaInstaller ¶
type AnacondaInstaller struct { Base // The type of the Anaconda installer tree to prepare, this can be either // a 'live' or a 'payload' and it controls which stages are added to the // manifest. Type AnacondaInstallerType // Packages to install and/or exclude in addition to the ones required by the // pipeline. ExtraPackages []string ExcludePackages []string // Extra repositories to install packages from ExtraRepos []rpmmd.RepoConfig // Biosdevname indicates whether or not biosdevname should be used to // name network devices when booting the installer. This may affect // the naming of network devices on the target system. Biosdevname bool // Variant is the variant of the product being installed, if applicable. Variant string // Interactive defaults is a kickstart stage that can be provided, it // will be written to /usr/share/anaconda/interactive-defaults InteractiveDefaults *AnacondaInteractiveDefaults // Kickstart options that will be written to the interactive defaults // kickstart file. Currently only supports Users and Groups. Other // properties are ignored. InteractiveDefaultsKickstart *kickstart.Options // Additional anaconda modules to enable AdditionalAnacondaModules []string // Anaconda modules to explicitly disable DisabledAnacondaModules []string // Additional dracut modules and drivers to enable AdditionalDracutModules []string AdditionalDrivers []string Files []*fsnode.File // Temporary UseRHELLoraxTemplates bool // Uses the old, deprecated, Anaconda config option "kickstart-modules". // Only for RHEL 8. UseLegacyAnacondaConfig bool // SELinux policy, when set it enables the labeling of the installer // tree with the selected profile and selects the required package // for depsolving SElinux string // contains filtered or unexported fields }
An Anaconda represents the installer tree as found on an ISO this can be either a payload installer or a live installer depending on `Type`.
func NewAnacondaInstaller ¶
func NewAnacondaInstaller(installerType AnacondaInstallerType, buildPipeline Build, platform platform.Platform, repos []rpmmd.RepoConfig, kernelName, product, version string, preview bool) *AnacondaInstaller
func (*AnacondaInstaller) Platform ¶
func (p *AnacondaInstaller) Platform() platform.Platform
type AnacondaInstallerISOTree ¶
type AnacondaInstallerISOTree struct { Base // TODO: review optional and mandatory fields and their meaning Release string PartitionTable *disk.PartitionTable // The path where the payload (tarball, ostree repo, or container) will be stored. PayloadPath string // If set the skopeo stage will remove signatures during copy PayloadRemoveSignatures bool SquashfsCompression string OSPipeline *OS OSTreeCommitSource *ostree.SourceSpec ContainerSource *container.SourceSpec // Kernel options for the ISO image KernelOpts []string // Enable ISOLinux stage ISOLinux bool Kickstart *kickstart.Options Files []*fsnode.File // Pipeline object where subscription-related files are created for copying // onto the ISO. SubscriptionPipeline *Subscription // contains filtered or unexported fields }
An AnacondaInstallerISOTree represents a tree containing the anaconda installer, configuration in terms of a kickstart file, as well as an embedded payload to be installed, this payload can either be an ostree CommitSpec or OSPipeline for an OS.
func NewAnacondaInstallerISOTree ¶
func NewAnacondaInstallerISOTree(buildPipeline Build, anacondaPipeline *AnacondaInstaller, rootfsPipeline *ISORootfsImg, bootTreePipeline *EFIBootTree) *AnacondaInstallerISOTree
type AnacondaInstallerType ¶
type AnacondaInstallerType int
const ( AnacondaInstallerTypeLive AnacondaInstallerType = iota + 1 AnacondaInstallerTypePayload )
type AnacondaInteractiveDefaults ¶
type AnacondaInteractiveDefaults struct {
TarPath string
}
func NewAnacondaInteractiveDefaults ¶
func NewAnacondaInteractiveDefaults(tarPath string) *AnacondaInteractiveDefaults
type Base ¶
type Base struct {
// contains filtered or unexported fields
}
A Base represents the core functionality shared between each of the pipeline implementations, and the Base struct must be embedded in each of them.
func NewBase ¶
NewBase returns a generic Pipeline object. The name is mandatory, immutable and must be unique among all the pipelines used in a manifest, which is currently not enforced. The build argument is a pipeline representing a build root in which the rest of the pipeline is built. In order to ensure reproducibility a build pipeline must always be provided, except for int he build pipeline itself. When a build pipeline is not provided the build host's filesystem is used as the build root. The runner specifies how to use this pipeline as a build pipeline, by naming the distro it contains. When the host system is used as a build root, then the necessary runner is autodetected.
func (Base) BuildPipeline ¶
func (*Base) Checkpoint ¶
func (p *Base) Checkpoint()
type Build ¶
type Build interface { Name() string Checkpoint() Manifest() *Manifest // contains filtered or unexported methods }
func NewBuild ¶
func NewBuild(m *Manifest, runner runner.Runner, repos []rpmmd.RepoConfig, opts *BuildOptions) Build
NewBuild creates a new build pipeline from the repositories in repos and the specified packages.
func NewBuildFromContainer ¶ added in v0.30.0
func NewBuildFromContainer(m *Manifest, runner runner.Runner, containerSources []container.SourceSpec, opts *BuildOptions) Build
NewBuildFromContainer creates a new build pipeline from the given containers specs
type BuildOptions ¶ added in v0.23.0
type BuildOptions struct { // ContainerBuildable tweaks the buildroot to be container friendly, // i.e. to not rely on an installed osbuild-selinux ContainerBuildable bool }
type BuildrootFromContainer ¶ added in v0.30.0
type BuildrootFromContainer struct { Base // contains filtered or unexported fields }
type BuildrootFromPackages ¶ added in v0.30.0
type BuildrootFromPackages struct { Base // contains filtered or unexported fields }
type ContentTest ¶
type ContentTest struct { Base // contains filtered or unexported fields }
A ContentTest can be used to define content sources without generating pipelines. It is useful for testing but not much else.
func NewContentTest ¶
func NewContentTest(m *Manifest, name string, packageSets []rpmmd.PackageSet, containers []container.SourceSpec, commits []ostree.SourceSpec) *ContentTest
NewContentTest creates a new ContentTest pipeline with a given name and content sources.
type CoreOSISOTree ¶
type CoreOSISOTree struct { Base // TODO: review optional and mandatory fields and their meaning OSName string Release string Users []users.User Groups []users.Group PartitionTable *disk.PartitionTable // The path where the payload (tarball or ostree repo) will be stored. PayloadPath string // Enable ISOLinux stage ISOLinux bool KernelOpts []string // contains filtered or unexported fields }
func NewCoreOSISOTree ¶
func NewCoreOSISOTree( buildPipeline Build, payloadPipeline *XZ, coiPipeline *CoreOSInstaller, bootTreePipeline *EFIBootTree) *CoreOSISOTree
type CoreOSInstaller ¶
type CoreOSInstaller struct { Base // Packages to install or exclude in addition to the ones required by the // pipeline. ExtraPackages []string ExcludePackages []string // Extra repositories to install packages from ExtraRepos []rpmmd.RepoConfig Variant string // Biosdevname indicates whether or not biosdevname should be used to // name network devices when booting the installer. This may affect // the naming of network devices on the target system. Biosdevname bool FDO *fdo.Options // For the coreos-installer we only have EmbeddedOptions for ignition Ignition *ignition.EmbeddedOptions AdditionalDracutModules []string // contains filtered or unexported fields }
func NewCoreOSInstaller ¶
func NewCoreOSInstaller(buildPipeline Build, platform platform.Platform, repos []rpmmd.RepoConfig, kernelName, product, version string) *CoreOSInstaller
NewCoreOSInstaller creates an CoreOS installer pipeline object.
func (*CoreOSInstaller) Platform ¶
func (p *CoreOSInstaller) Platform() platform.Platform
type EFIBootTree ¶
type EFIBootTree struct { Base Platform platform.Platform UEFIVendor string ISOLabel string KernelOpts []string // contains filtered or unexported fields }
func NewEFIBootTree ¶
func NewEFIBootTree(buildPipeline Build, product, version string) *EFIBootTree
type FilePipeline ¶
FilePipeline is any pipeline that produces a single file (typically an image file).
type ISO ¶
An ISO represents a bootable ISO file created from an an existing ISOTreePipeline.
func (*ISO) SetFilename ¶
type ISORootfsImg ¶
func NewISORootfsImg ¶
func NewISORootfsImg(buildPipeline Build, installerPipeline Pipeline) *ISORootfsImg
type Manifest ¶
type Manifest struct { // Distro defines the distribution of the image that this manifest will // generate. It is used for determining package names that differ between // different distributions and version. Distro Distro // contains filtered or unexported fields }
Manifest represents a manifest initialised with all the information required to generate the pipelines but no content. The content type sources (PackageSetChains, ContainerSourceSpecs, OSTreeSourceSpecs) must be retrieved through their corresponding Getters and resolved before serializing.
func (Manifest) GetCheckpoints ¶
func (Manifest) GetContainerSourceSpecs ¶
func (m Manifest) GetContainerSourceSpecs() map[string][]container.SourceSpec
func (Manifest) GetExports ¶
func (Manifest) GetOSTreeSourceSpecs ¶
func (m Manifest) GetOSTreeSourceSpecs() map[string][]ostree.SourceSpec
func (Manifest) GetPackageSetChains ¶
func (m Manifest) GetPackageSetChains() map[string][]rpmmd.PackageSet
func (Manifest) Serialize ¶
func (m Manifest) Serialize(packageSets map[string][]rpmmd.PackageSpec, containerSpecs map[string][]container.Spec, ostreeCommits map[string][]ostree.CommitSpec, rpmRepos map[string][]rpmmd.RepoConfig) (OSBuildManifest, error)
type OCIContainer ¶
type OCIContainer struct { Base Cmd []string ExposedPorts []string // contains filtered or unexported fields }
An OCIContainer represents an OCI container, containing a filesystem tree created by another Pipeline.
func NewOCIContainer ¶
func NewOCIContainer(buildPipeline Build, treePipeline TreePipeline) *OCIContainer
func (*OCIContainer) Export ¶
func (p *OCIContainer) Export() *artifact.Artifact
func (OCIContainer) Filename ¶
func (p OCIContainer) Filename() string
func (*OCIContainer) SetFilename ¶
func (p *OCIContainer) SetFilename(filename string)
type OS ¶
type OS struct { Base // Customizations to apply to the base OS OSCustomizations // Environment the system will run in Environment environment.Environment // Workload to install on top of the base system Workload workload.Workload // Ref of ostree commit (optional). If empty the tree cannot be in an ostree commit OSTreeRef string // OSTreeParent source spec (optional). If nil the new commit (if // applicable) will have no parent OSTreeParent *ostree.SourceSpec // Enabling Bootupd runs bootupctl generate-update-metadata in the tree to // transform /usr/lib/ostree-boot into a bootupd-compatible update // payload. Only works with ostree-based images. Bootupd bool // Add a bootc config file to the image (for bootable containers) BootcConfig *bootc.Config // Partition table, if nil the tree cannot be put on a partitioned disk PartitionTable *disk.PartitionTable OSProduct string OSVersion string OSNick string // InstallWeakDeps enables installation of weak dependencies for packages // that are statically defined for the pipeline. // Defaults to True. InstallWeakDeps bool // contains filtered or unexported fields }
OS represents the filesystem tree of the target image. This roughly corresponds to the root filesystem once an instance of the image is running.
type OSBuildManifest ¶
type OSBuildManifest []byte
An OSBuildManifest is an opaque JSON object, which is a valid input to osbuild
func (OSBuildManifest) MarshalJSON ¶
func (m OSBuildManifest) MarshalJSON() ([]byte, error)
func (*OSBuildManifest) UnmarshalJSON ¶
func (m *OSBuildManifest) UnmarshalJSON(payload []byte) error
type OSCustomizations ¶
type OSCustomizations struct { // Packages to install in addition to the ones required by the // pipeline. ExtraBasePackages []string // Packages to exclude from the base package set. This is useful in // case of weak dependencies, comps groups, or where multiple packages // can satisfy a dependency. Must not conflict with the included base // package set. ExcludeBasePackages []string // Additional repos to install the base packages from. ExtraBaseRepos []rpmmd.RepoConfig // Containers to embed in the image (source specification) // TODO: move to workload Containers []container.SourceSpec // KernelName indicates that a kernel is installed, and names the kernel // package. KernelName string // KernelOptionsAppend are appended to the kernel commandline KernelOptionsAppend []string // KernelOptionsBootloader controls whether kernel command line options // should be specified in the bootloader grubenv configuration. Otherwise // they are specified in /etc/kernel/cmdline (default). // // NB: The kernel options need to be still specified in /etc/default/grub // under the GRUB_CMDLINE_LINUX variable. The reason is that it is used by // the 10_linux script executed by grub2-mkconfig to override the kernel // options in /etc/kernel/cmdline if the file has older timestamp than // /etc/default/grub. // // This should only be used for RHEL 8 and CentOS 8 images that use grub // (non s390x). Newer releases (9+) should keep this disabled. KernelOptionsBootloader bool GPGKeyFiles []string Language string Keyboard *string X11KeymapLayouts []string Hostname string Timezone string EnabledServices []string DisabledServices []string MaskedServices []string DefaultTarget string // SELinux policy, when set it enables the labeling of the tree with the // selected profile SElinux string SELinuxForceRelabel *bool // Do not install documentation ExcludeDocs bool Groups []users.Group Users []users.User ShellInit []shell.InitFile // TODO: drop osbuild types from the API Firewall *osbuild.FirewallStageOptions Grub2Config *osbuild.GRUB2Config Sysconfig []*osbuild.SysconfigStageOptions SystemdLogind []*osbuild.SystemdLogindStageOptions CloudInit []*osbuild.CloudInitStageOptions Modprobe []*osbuild.ModprobeStageOptions DracutConf []*osbuild.DracutConfStageOptions SystemdUnit []*osbuild.SystemdUnitStageOptions Authselect *osbuild.AuthselectStageOptions SELinuxConfig *osbuild.SELinuxConfigStageOptions Tuned *osbuild.TunedStageOptions Tmpfilesd []*osbuild.TmpfilesdStageOptions PamLimitsConf []*osbuild.PamLimitsConfStageOptions Sysctld []*osbuild.SysctldStageOptions DNFConfig []*osbuild.DNFConfigStageOptions DNFAutomaticConfig *osbuild.DNFAutomaticConfigStageOptions YUMConfig *osbuild.YumConfigStageOptions YUMRepos []*osbuild.YumReposStageOptions SshdConfig *osbuild.SshdConfigStageOptions GCPGuestAgentConfig *osbuild.GcpGuestAgentConfigOptions AuthConfig *osbuild.AuthconfigStageOptions PwQuality *osbuild.PwqualityConfStageOptions NTPServers []osbuild.ChronyConfigServer WAAgentConfig *osbuild.WAAgentConfStageOptions UdevRules *osbuild.UdevRulesStageOptions WSLConfig *osbuild.WSLConfStageOptions LeapSecTZ *string Presets []osbuild.Preset ContainersStorage *string // OpenSCAP config OpenSCAPRemediationConfig *oscap.RemediationConfig Subscription *subscription.ImageOptions // The final RHSM config to be applied to the image RHSMConfig *subscription.RHSMConfig RHSMFacts *facts.ImageOptions // Custom directories and files to create in the image Directories []*fsnode.Directory Files []*fsnode.File FIPS bool // NoBLS configures the image bootloader with traditional menu entries // instead of BLS. Required for legacy systems like RHEL 7. NoBLS bool }
OSCustomizations encapsulates all configuration applied to the base operating system independently of where and how it is integrated and what workload it is running. TODO: move out kernel/bootloader/cloud-init/... to other
abstractions, this should ideally only contain things that can always be applied.
type OSTreeCommit ¶
OSTreeCommit represents an ostree with one commit.
func NewOSTreeCommit ¶
func NewOSTreeCommit(buildPipeline Build, treePipeline *OS, ref string) *OSTreeCommit
NewOSTreeCommit creates a new OSTree commit pipeline. The treePipeline is the tree representing the content of the commit. ref is the ref to create the commit under.
type OSTreeCommitServer ¶
type OSTreeCommitServer struct { Base // Packages to install in addition to the ones required by the // pipeline. ExtraPackages []string // Extra repositories to install packages from ExtraRepos []rpmmd.RepoConfig // TODO: should this be configurable? Language string // contains filtered or unexported fields }
An OSTreeCommitServer contains an nginx server serving an embedded ostree commit.
func NewOSTreeCommitServer ¶
func NewOSTreeCommitServer(buildPipeline Build, platform platform.Platform, repos []rpmmd.RepoConfig, commitPipeline *OSTreeCommit, nginxConfigPath, listenPort string) *OSTreeCommitServer
NewOSTreeCommitServer creates a new pipeline. The content is built from repos and packages, which must contain nginx. commitPipeline is a pipeline producing an ostree commit to be served. nginxConfigPath is the path to the main nginx config file and listenPort is the port nginx will be listening on.
func (*OSTreeCommitServer) Platform ¶
func (p *OSTreeCommitServer) Platform() platform.Platform
type OSTreeDeployment ¶
type OSTreeDeployment struct { Base // Customizations to apply to the deployment OSTreeDeploymentCustomizations Remote ostree.Remote OSVersion string PartitionTable *disk.PartitionTable EnabledServices []string DisabledServices []string // Use bootupd instead of grub2 as the bootloader UseBootupd bool // contains filtered or unexported fields }
OSTreeDeployment represents the filesystem tree of a target image based on a deployed ostree commit.
func NewOSTreeCommitDeployment ¶ added in v0.20.0
func NewOSTreeCommitDeployment(buildPipeline Build, commit *ostree.SourceSpec, osName string, platform platform.Platform) *OSTreeDeployment
NewOSTreeCommitDeployment creates a pipeline for an ostree deployment from a commit.
func NewOSTreeContainerDeployment ¶ added in v0.20.0
func NewOSTreeContainerDeployment(buildPipeline Build, container *container.SourceSpec, ref string, osName string, platform platform.Platform) *OSTreeDeployment
NewOSTreeDeployment creates a pipeline for an ostree deployment from a container
type OSTreeDeploymentCustomizations ¶ added in v0.54.0
type OSTreeDeploymentCustomizations struct { SysrootReadOnly bool KernelOptionsAppend []string Keyboard string Locale string Users []users.User Groups []users.Group // Specifies the ignition platform to use. // If empty, ignition is not enabled. IgnitionPlatform string Directories []*fsnode.Directory Files []*fsnode.File FIPS bool CustomFileSystems []string // Lock the root account in the deployment unless the user defined root // user options in the build configuration. LockRoot bool }
OSTreeDeploymentCustomizations encapsulates all configuration applied to an OSTree deployment independently of where and how it is integrated and what workload it is running.
type OSTreeEncapsulate ¶ added in v0.20.0
type OSTreeEncapsulate struct { Base // contains filtered or unexported fields }
func NewOSTreeEncapsulate ¶ added in v0.20.0
func NewOSTreeEncapsulate(buildPipeline Build, inputPipeline Pipeline, pipelinename string) *OSTreeEncapsulate
func (*OSTreeEncapsulate) Export ¶ added in v0.20.0
func (p *OSTreeEncapsulate) Export() *artifact.Artifact
func (OSTreeEncapsulate) Filename ¶ added in v0.20.0
func (p OSTreeEncapsulate) Filename() string
func (*OSTreeEncapsulate) SetFilename ¶ added in v0.20.0
func (p *OSTreeEncapsulate) SetFilename(filename string)
type OVF ¶
type OVF struct { Base // contains filtered or unexported fields }
A OVF copies a vmdk image to it's own tree and generates an OVF descriptor
type PackageSelector ¶
type PackageSelector func([]rpmmd.PackageSet) []rpmmd.PackageSet
type Pipeline ¶
type Pipeline interface { // Name of the pipeline. Name() string // Checkpoint this pipeline when osbuild is called. Checkpoint() // Export this tree of this pipeline as an artifact when osbuild is called. Export() *artifact.Artifact // BuildPipeline returns a reference to the pipeline that creates the build // root for this pipeline. For build pipelines, it should return nil. BuildPipeline() Build // Manifest returns a reference to the Manifest which this Pipeline belongs to. Manifest() *Manifest // contains filtered or unexported methods }
Pipeline serializes to a series of stages that modify a file system tree when used as input to osbuild. Different Pipelines serialize to different sequences of stages depending on their type and configuration.
type QCOW2 ¶
A QCOW2 turns a raw image file into qcow2 image.
func NewQCOW2 ¶
func NewQCOW2(buildPipeline Build, imgPipeline FilePipeline) *QCOW2
NewQCOW2 createsa new QCOW2 pipeline. imgPipeline is the pipeline producing the raw image. The pipeline name is the name of the new pipeline. Filename is the name of the produced qcow2 image.
func (*QCOW2) SetFilename ¶
type RawBootcImage ¶ added in v0.52.0
type RawBootcImage struct { Base // customizations go here because there is no intermediate // tree, with `bootc install to-filesystem` we can only work // with the image itself PartitionTable *disk.PartitionTable KernelOptionsAppend []string // The users to put into the image, note that /etc/paswd (and friends) // will become unmanaged state by bootc when used Users []users.User Groups []users.Group // SELinux policy, when set it enables the labeling of the tree with the // selected profile SELinux string // contains filtered or unexported fields }
A RawBootcImage represents a raw bootc image file which can be booted in a hypervisor.
func NewRawBootcImage ¶ added in v0.52.0
func NewRawBootcImage(buildPipeline Build, containers []container.SourceSpec, platform platform.Platform) *RawBootcImage
func (*RawBootcImage) Export ¶ added in v0.52.0
func (p *RawBootcImage) Export() *artifact.Artifact
XXX: copied from raw.go
func (RawBootcImage) Filename ¶ added in v0.52.0
func (p RawBootcImage) Filename() string
func (*RawBootcImage) SetFilename ¶ added in v0.52.0
func (p *RawBootcImage) SetFilename(filename string)
type RawImage ¶
A RawImage represents a raw image file which can be booted in a hypervisor. It is created from an existing OSPipeline.
func NewRawImage ¶
func (*RawImage) SetFilename ¶
type RawOSTreeImage ¶
type RawOSTreeImage struct { Base // contains filtered or unexported fields }
A RawOSTreeImage represents a raw ostree image file which can be booted in a hypervisor. It is created from an existing OSTreeDeployment.
func NewRawOStreeImage ¶
func NewRawOStreeImage(buildPipeline Build, treePipeline *OSTreeDeployment, platform platform.Platform) *RawOSTreeImage
func (*RawOSTreeImage) Export ¶
func (p *RawOSTreeImage) Export() *artifact.Artifact
func (RawOSTreeImage) Filename ¶
func (p RawOSTreeImage) Filename() string
func (*RawOSTreeImage) SetFilename ¶
func (p *RawOSTreeImage) SetFilename(filename string)
type Subscription ¶ added in v0.83.0
type Subscription struct { Base Subscription *subscription.ImageOptions // Custom directories and files to create in the pipeline Directories []*fsnode.Directory Files []*fsnode.File }
func NewSubscription ¶ added in v0.83.0
func NewSubscription(buildPipeline Build, subOptions *subscription.ImageOptions) *Subscription
NewSubscription creates a new subscription pipeline for creating files required to register a system on first boot. The pipeline is intended to be used to create the files necessary for registering a system, but outside the OS tree, so they can be copied to other locations in the tree after they're created (for example, to an ISO).
type Tar ¶
type Tar struct { Base Format osbuild.TarArchiveFormat RootNode osbuild.TarRootNode Paths []string ACLs *bool SELinux *bool Xattrs *bool // contains filtered or unexported fields }
A Tar represents the contents of another pipeline in a tar file
func NewTar ¶
NewTar creates a new TarPipeline. The inputPipeline represents the filesystem tree which will be the contents of the tar file. The pipelinename is the name of the pipeline. The filename is the name of the output tar file.
func (*Tar) SetFilename ¶
type TreePipeline ¶
type TreePipeline interface { Name() string Manifest() *Manifest BuildPipeline() Build Platform() platform.Platform }
TreePipeline is any pipeline that produces a directory tree.
type VMDK ¶
type VMDK struct { Base // contains filtered or unexported fields }
A VMDK turns a raw image file or a raw ostree image file into vmdk image.
func NewVMDK ¶
func NewVMDK(buildPipeline Build, imgPipeline FilePipeline) *VMDK
NewVMDK creates a new VMDK pipeline. imgPipeline is the pipeline producing the raw image. imgOstreePipeline is the pipeline producing the raw ostree image. Either imgPipeline or imgOStreePipeline are required, but not both at the same time. Filename is the name of the produced image.
func (*VMDK) SetFilename ¶
type VPC ¶
A VPC turns a raw image file into qemu-based image format, such as qcow2.
func NewVPC ¶
NewVPC createsa new Qemu pipeline. imgPipeline is the pipeline producing the raw image. The pipeline name is the name of the new pipeline. Filename is the name of the produced image.
func (*VPC) SetFilename ¶
type XZ ¶
type XZ struct { Base // contains filtered or unexported fields }
The XZ pipeline compresses a raw image file using xz.
func NewXZ ¶
func NewXZ(buildPipeline Build, imgPipeline FilePipeline) *XZ
NewXZ creates a new XZ pipeline. imgPipeline is the pipeline producing the raw image that will be xz compressed.
func (*XZ) SetFilename ¶
Source Files ¶
- anaconda_installer.go
- anaconda_installer_iso_tree.go
- build.go
- coi_iso_tree.go
- commit.go
- commit_server_tree.go
- coreos_installer.go
- efi_boot_tree.go
- empty.go
- iso.go
- iso_rootfs.go
- manifest.go
- oci_container.go
- os.go
- ostree_deployment.go
- ostree_encapsulate.go
- ovf.go
- pipeline.go
- qcow2.go
- raw.go
- raw_bootc.go
- raw_ostree.go
- subscription.go
- tar.go
- vmdk.go
- vpc.go
- xz.go