Documentation ¶
Overview ¶
Package blueprint contains primitives for representing weldr blueprints
Index ¶
- func CheckDirectoryCustomizationsPolicy(dirs []DirectoryCustomization, pathPolicy *pathpolicy.PathPolicies) error
- func CheckDiskMountpointsPolicy(partitioning *DiskCustomization, mountpointAllowList *pathpolicy.PathPolicies) error
- func CheckFileCustomizationsPolicy(files []FileCustomization, pathPolicy *pathpolicy.PathPolicies) error
- func CheckMountpointsPolicy(mountpoints []FilesystemCustomization, ...) error
- func DirectoryCustomizationsToFsNodeDirectories(dirs []DirectoryCustomization) ([]*fsnode.Directory, error)
- func FileCustomizationsToFsNodeFiles(files []FileCustomization) ([]*fsnode.File, error)
- func RepoCustomizationsToRepoConfigAndGPGKeyFiles(repos []RepositoryCustomization) (map[string][]rpmmd.RepoConfig, []*fsnode.File, error)
- func ValidateDirFileCustomizations(dirs []DirectoryCustomization, files []FileCustomization) error
- type AnacondaModules
- type Blueprint
- type BtrfsSubvolumeCustomization
- type BtrfsVolumeCustomization
- type CACustomization
- type Container
- type ContainerStorageCustomization
- type CustomizationError
- type Customizations
- func (c *Customizations) CheckAllowed(allowed ...string) error
- func (c *Customizations) GetCACerts() (*CACustomization, error)
- func (c *Customizations) GetContainerStorage() *ContainerStorageCustomization
- func (c *Customizations) GetDirectories() []DirectoryCustomization
- func (c *Customizations) GetFDO() *FDOCustomization
- func (c *Customizations) GetFIPS() bool
- func (c *Customizations) GetFiles() []FileCustomization
- func (c *Customizations) GetFilesystems() []FilesystemCustomization
- func (c *Customizations) GetFilesystemsMinSize() uint64
- func (c *Customizations) GetFirewall() *FirewallCustomization
- func (c *Customizations) GetGroups() []GroupCustomization
- func (c *Customizations) GetHostname() *string
- func (c *Customizations) GetIgnition() *IgnitionCustomization
- func (c *Customizations) GetInstallationDevice() string
- func (c *Customizations) GetInstaller() (*InstallerCustomization, error)
- func (c *Customizations) GetKernel() *KernelCustomization
- func (c *Customizations) GetOpenSCAP() *OpenSCAPCustomization
- func (c *Customizations) GetPartitioning() (*DiskCustomization, error)
- func (c *Customizations) GetPrimaryLocale() (*string, *string)
- func (c *Customizations) GetRHSM() *RHSMCustomization
- func (c *Customizations) GetRPM() *RPMCustomization
- func (c *Customizations) GetRepositories() ([]RepositoryCustomization, error)
- func (c *Customizations) GetServices() *ServicesCustomization
- func (c *Customizations) GetTimezoneSettings() (*string, []string)
- func (c *Customizations) GetUsers() []UserCustomization
- type DNFPluginConfig
- type DirectoryCustomization
- type DiskCustomization
- type EmbeddedIgnitionCustomization
- type FDOCustomization
- type FileCustomization
- type FilesystemCustomization
- type FilesystemTypedCustomization
- type FirewallCustomization
- type FirewallServicesCustomization
- type FirewallZoneCustomization
- type FirstBootIgnitionCustomization
- type Group
- type GroupCustomization
- type IgnitionCustomization
- type InstallerCustomization
- type KernelCustomization
- type Kickstart
- type LVCustomization
- type LocaleCustomization
- type OpenSCAPCustomization
- type OpenSCAPJSONTailoringCustomizations
- type OpenSCAPTailoringCustomizations
- type Package
- type PartitionCustomization
- type RHSMConfig
- type RHSMCustomization
- type RPMCustomization
- type RPMImportKeys
- type RepositoryCustomization
- type SSHKeyCustomization
- type ServicesCustomization
- type SubManConfig
- type SubManDNFPluginsConfig
- type SubManRHSMCertdConfig
- type SubManRHSMConfig
- type TimezoneCustomization
- type UserCustomization
- type VGCustomization
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckDirectoryCustomizationsPolicy ¶
func CheckDirectoryCustomizationsPolicy(dirs []DirectoryCustomization, pathPolicy *pathpolicy.PathPolicies) error
CheckDirectoryCustomizationsPolicy checks if the given Directory customizations are allowed by the path policy. If any of the customizations are not allowed by the path policy, an error is returned. Otherwise, nil is returned.
func CheckDiskMountpointsPolicy ¶ added in v0.100.0
func CheckDiskMountpointsPolicy(partitioning *DiskCustomization, mountpointAllowList *pathpolicy.PathPolicies) error
CheckDiskMountpointsPolicy checks if the mountpoints under a DiskCustomization are allowed by the policy.
func CheckFileCustomizationsPolicy ¶
func CheckFileCustomizationsPolicy(files []FileCustomization, pathPolicy *pathpolicy.PathPolicies) error
CheckFileCustomizationsPolicy checks if the given File customizations are allowed by the path policy. If any of the customizations are not allowed by the path policy, an error is returned. Otherwise, nil is returned.
func CheckMountpointsPolicy ¶
func CheckMountpointsPolicy(mountpoints []FilesystemCustomization, mountpointAllowList *pathpolicy.PathPolicies) error
CheckMountpointsPolicy checks if the mountpoints are allowed by the policy
func DirectoryCustomizationsToFsNodeDirectories ¶
func DirectoryCustomizationsToFsNodeDirectories(dirs []DirectoryCustomization) ([]*fsnode.Directory, error)
DirectoryCustomizationsToFsNodeDirectories converts a slice of DirectoryCustomizations to a slice of fsnode.Directories
func FileCustomizationsToFsNodeFiles ¶
func FileCustomizationsToFsNodeFiles(files []FileCustomization) ([]*fsnode.File, error)
FileCustomizationsToFsNodeFiles converts a slice of FileCustomization to a slice of *fsnode.File
func RepoCustomizationsToRepoConfigAndGPGKeyFiles ¶
func RepoCustomizationsToRepoConfigAndGPGKeyFiles(repos []RepositoryCustomization) (map[string][]rpmmd.RepoConfig, []*fsnode.File, error)
func ValidateDirFileCustomizations ¶
func ValidateDirFileCustomizations(dirs []DirectoryCustomization, files []FileCustomization) error
ValidateDirFileCustomizations validates the given Directory and File customizations. If the customizations are invalid, an error is returned. Otherwise, nil is returned.
It currently ensures that: - No file path is a prefix of another file or directory path - There are no duplicate file or directory paths in the customizations
Types ¶
type AnacondaModules ¶ added in v0.74.0
type Blueprint ¶
type Blueprint struct { Name string `json:"name" toml:"name"` Description string `json:"description" toml:"description"` Version string `json:"version,omitempty" toml:"version,omitempty"` Packages []Package `json:"packages" toml:"packages"` Modules []Package `json:"modules" toml:"modules"` Groups []Group `json:"groups" toml:"groups"` Containers []Container `json:"containers,omitempty" toml:"containers,omitempty"` Customizations *Customizations `json:"customizations,omitempty" toml:"customizations"` Distro string `json:"distro" toml:"distro"` // EXPERIMENTAL Minimal bool `json:"minimal" toml:"minimal"` }
A Blueprint is a high-level description of an image.
func (*Blueprint) GetPackages ¶
packages, modules, and groups all resolve to rpm packages right now. This function returns a combined list of "name-version" strings.
func (*Blueprint) GetPackagesEx ¶
type BtrfsSubvolumeCustomization ¶ added in v0.100.0
type BtrfsSubvolumeCustomization struct { // The name of the subvolume, which defines the location (path) on the // root volume (required). // See https://btrfs.readthedocs.io/en/latest/Subvolumes.html Name string `json:"name" toml:"name"` // Mountpoint for the subvolume. Mountpoint string `json:"mountpoint" toml:"mountpoint"` }
type BtrfsVolumeCustomization ¶ added in v0.100.0
type BtrfsVolumeCustomization struct {
Subvolumes []BtrfsSubvolumeCustomization
}
A btrfs volume consisting of one or more subvolumes.
type CACustomization ¶ added in v0.100.0
type CACustomization struct {
PEMCerts []string `json:"pem_certs,omitempty" toml:"pem_certs,omitempty"`
}
type ContainerStorageCustomization ¶ added in v0.30.0
type ContainerStorageCustomization struct { // destination is always `containers-storage`, so we won't expose this StoragePath *string `json:"destination-path,omitempty" toml:"destination-path,omitempty"` }
Configure the container storage separately from containers, since we most likely would like to use the same storage path for all of the containers.
type CustomizationError ¶
type CustomizationError struct {
Message string
}
func (*CustomizationError) Error ¶
func (e *CustomizationError) Error() string
type Customizations ¶
type Customizations struct { Hostname *string `json:"hostname,omitempty" toml:"hostname,omitempty"` Kernel *KernelCustomization `json:"kernel,omitempty" toml:"kernel,omitempty"` User []UserCustomization `json:"user,omitempty" toml:"user,omitempty"` Group []GroupCustomization `json:"group,omitempty" toml:"group,omitempty"` Timezone *TimezoneCustomization `json:"timezone,omitempty" toml:"timezone,omitempty"` Locale *LocaleCustomization `json:"locale,omitempty" toml:"locale,omitempty"` Firewall *FirewallCustomization `json:"firewall,omitempty" toml:"firewall,omitempty"` Services *ServicesCustomization `json:"services,omitempty" toml:"services,omitempty"` Filesystem []FilesystemCustomization `json:"filesystem,omitempty" toml:"filesystem,omitempty"` Disk *DiskCustomization `json:"disk,omitempty" toml:"disk,omitempty"` InstallationDevice string `json:"installation_device,omitempty" toml:"installation_device,omitempty"` FDO *FDOCustomization `json:"fdo,omitempty" toml:"fdo,omitempty"` OpenSCAP *OpenSCAPCustomization `json:"openscap,omitempty" toml:"openscap,omitempty"` Ignition *IgnitionCustomization `json:"ignition,omitempty" toml:"ignition,omitempty"` Directories []DirectoryCustomization `json:"directories,omitempty" toml:"directories,omitempty"` Files []FileCustomization `json:"files,omitempty" toml:"files,omitempty"` Repositories []RepositoryCustomization `json:"repositories,omitempty" toml:"repositories,omitempty"` FIPS *bool `json:"fips,omitempty" toml:"fips,omitempty"` ContainersStorage *ContainerStorageCustomization `json:"containers-storage,omitempty" toml:"containers-storage,omitempty"` Installer *InstallerCustomization `json:"installer,omitempty" toml:"installer,omitempty"` RPM *RPMCustomization `json:"rpm,omitempty" toml:"rpm,omitempty"` RHSM *RHSMCustomization `json:"rhsm,omitempty" toml:"rhsm,omitempty"` CACerts *CACustomization `json:"cacerts,omitempty" toml:"ca,omitempty"` }
func (*Customizations) CheckAllowed ¶
func (c *Customizations) CheckAllowed(allowed ...string) error
CheckCustomizations returns an error of type `CustomizationError` if `c` has any customizations not specified in `allowed`
func (*Customizations) GetCACerts ¶ added in v0.100.0
func (c *Customizations) GetCACerts() (*CACustomization, error)
func (*Customizations) GetContainerStorage ¶ added in v0.30.0
func (c *Customizations) GetContainerStorage() *ContainerStorageCustomization
func (*Customizations) GetDirectories ¶
func (c *Customizations) GetDirectories() []DirectoryCustomization
func (*Customizations) GetFDO ¶
func (c *Customizations) GetFDO() *FDOCustomization
func (*Customizations) GetFIPS ¶ added in v0.18.0
func (c *Customizations) GetFIPS() bool
func (*Customizations) GetFiles ¶
func (c *Customizations) GetFiles() []FileCustomization
func (*Customizations) GetFilesystems ¶
func (c *Customizations) GetFilesystems() []FilesystemCustomization
func (*Customizations) GetFilesystemsMinSize ¶
func (c *Customizations) GetFilesystemsMinSize() uint64
func (*Customizations) GetFirewall ¶
func (c *Customizations) GetFirewall() *FirewallCustomization
func (*Customizations) GetGroups ¶
func (c *Customizations) GetGroups() []GroupCustomization
func (*Customizations) GetHostname ¶
func (c *Customizations) GetHostname() *string
func (*Customizations) GetIgnition ¶
func (c *Customizations) GetIgnition() *IgnitionCustomization
func (*Customizations) GetInstallationDevice ¶
func (c *Customizations) GetInstallationDevice() string
func (*Customizations) GetInstaller ¶ added in v0.38.0
func (c *Customizations) GetInstaller() (*InstallerCustomization, error)
func (*Customizations) GetKernel ¶
func (c *Customizations) GetKernel() *KernelCustomization
func (*Customizations) GetOpenSCAP ¶
func (c *Customizations) GetOpenSCAP() *OpenSCAPCustomization
func (*Customizations) GetPartitioning ¶ added in v0.100.0
func (c *Customizations) GetPartitioning() (*DiskCustomization, error)
func (*Customizations) GetPrimaryLocale ¶
func (c *Customizations) GetPrimaryLocale() (*string, *string)
func (*Customizations) GetRHSM ¶ added in v0.75.0
func (c *Customizations) GetRHSM() *RHSMCustomization
func (*Customizations) GetRPM ¶ added in v0.74.0
func (c *Customizations) GetRPM() *RPMCustomization
func (*Customizations) GetRepositories ¶
func (c *Customizations) GetRepositories() ([]RepositoryCustomization, error)
func (*Customizations) GetServices ¶
func (c *Customizations) GetServices() *ServicesCustomization
func (*Customizations) GetTimezoneSettings ¶
func (c *Customizations) GetTimezoneSettings() (*string, []string)
func (*Customizations) GetUsers ¶
func (c *Customizations) GetUsers() []UserCustomization
type DNFPluginConfig ¶ added in v0.75.0
type DNFPluginConfig struct {
Enabled *bool `json:"enabled,omitempty" toml:"enabled,omitempty"`
}
type DirectoryCustomization ¶
type DirectoryCustomization struct { // Absolute path to the directory Path string `json:"path" toml:"path"` // Owner of the directory specified as a string (user name), int64 (UID) or nil User interface{} `json:"user,omitempty" toml:"user,omitempty"` // Owner of the directory specified as a string (group name), int64 (UID) or nil Group interface{} `json:"group,omitempty" toml:"group,omitempty"` // Permissions of the directory specified as an octal number Mode string `json:"mode,omitempty" toml:"mode,omitempty"` // EnsureParents ensures that all parent directories of the directory exist EnsureParents bool `json:"ensure_parents,omitempty" toml:"ensure_parents,omitempty"` }
DirectoryCustomization represents a directory to be created in the image
func (DirectoryCustomization) ToFsNodeDirectory ¶
func (d DirectoryCustomization) ToFsNodeDirectory() (*fsnode.Directory, error)
ToFsNodeDirectory converts the DirectoryCustomization to an fsnode.Directory
func (*DirectoryCustomization) UnmarshalJSON ¶
func (d *DirectoryCustomization) UnmarshalJSON(data []byte) error
Custom JSON unmarshalling for DirectoryCustomization with validation
func (*DirectoryCustomization) UnmarshalTOML ¶
func (d *DirectoryCustomization) UnmarshalTOML(data interface{}) error
Custom TOML unmarshalling for DirectoryCustomization with validation
type DiskCustomization ¶ added in v0.100.0
type DiskCustomization struct { // TODO: Add partition table type: gpt or dos MinSize uint64 Partitions []PartitionCustomization }
func (*DiskCustomization) UnmarshalJSON ¶ added in v0.101.0
func (dc *DiskCustomization) UnmarshalJSON(data []byte) error
func (*DiskCustomization) UnmarshalTOML ¶ added in v0.101.0
func (dc *DiskCustomization) UnmarshalTOML(data any) error
func (*DiskCustomization) Validate ¶ added in v0.100.0
func (p *DiskCustomization) Validate() error
Validate checks for customization combinations that are generally not supported or can create conflicts, regardless of specific distro or image type policies. The validator ensures all of the following properties:
- All mountpoints are valid
- All mountpoints are unique
- All LVM volume group names are unique
- All LVM logical volume names are unique within a given volume group
- All btrfs subvolume names are unique within a given btrfs volume
- All btrfs subvolume names are valid and non-empty
- All filesystems are valid for their mountpoints (e.g. xfs or ext4 for /boot)
- No LVM logical volume has an invalid mountpoint (/boot or /boot/efi)
- Plain filesystem types are valid for the partition type
- All non-empty properties are valid for the partition type (e.g. LogicalVolumes is empty when the type is "plain" or "btrfs")
- Filesystems with FSType set to "swap" do not specify a mountpoint.
Note that in *addition* consumers should also call ValidateLayoutConstraints() to validate that the policy for disk customizations is met.
func (*DiskCustomization) ValidateLayoutConstraints ¶ added in v0.100.0
func (p *DiskCustomization) ValidateLayoutConstraints() error
ValidateLayoutConstraints checks that at most one LVM Volume Group or btrfs volume is defined. Returns an error if both LVM and btrfs are set and if either has more than one element.
Note that this is a *policy* validation, in theory the "disk" code does support the constraints but we choose not to allow them for now. Each consumer of "DiskCustomization" should call this *unless* it's very low-level and not end-user-facing.
type EmbeddedIgnitionCustomization ¶
type EmbeddedIgnitionCustomization struct {
Config string `json:"config,omitempty" toml:"config,omitempty"`
}
type FDOCustomization ¶
type FDOCustomization struct { ManufacturingServerURL string `json:"manufacturing_server_url,omitempty" toml:"manufacturing_server_url,omitempty"` DiunPubKeyInsecure string `json:"diun_pub_key_insecure,omitempty" toml:"diun_pub_key_insecure,omitempty"` // This is the output of: // echo "sha256:$(openssl x509 -fingerprint -sha256 -noout -in diun_cert.pem | cut -d"=" -f2 | sed 's/://g')" DiunPubKeyHash string `json:"diun_pub_key_hash,omitempty" toml:"diun_pub_key_hash,omitempty"` DiunPubKeyRootCerts string `json:"diun_pub_key_root_certs,omitempty" toml:"diun_pub_key_root_certs,omitempty"` DiMfgStringTypeMacIface string `json:"di_mfg_string_type_mac_iface,omitempty" toml:"di_mfg_string_type_mac_iface,omitempty"` }
type FileCustomization ¶
type FileCustomization struct { // Absolute path to the file Path string `json:"path" toml:"path"` // Owner of the directory specified as a string (user name), int64 (UID) or nil User interface{} `json:"user,omitempty" toml:"user,omitempty"` // Owner of the directory specified as a string (group name), int64 (UID) or nil Group interface{} `json:"group,omitempty" toml:"group,omitempty"` // Permissions of the file specified as an octal number Mode string `json:"mode,omitempty" toml:"mode,omitempty"` // Data is the file content in plain text Data string `json:"data,omitempty" toml:"data,omitempty"` }
FileCustomization represents a file to be created in the image
func (FileCustomization) ToFsNodeFile ¶
func (f FileCustomization) ToFsNodeFile() (*fsnode.File, error)
ToFsNodeFile converts the FileCustomization to an fsnode.File
func (*FileCustomization) UnmarshalJSON ¶
func (f *FileCustomization) UnmarshalJSON(data []byte) error
Custom JSON unmarshalling for FileCustomization with validation
func (*FileCustomization) UnmarshalTOML ¶
func (f *FileCustomization) UnmarshalTOML(data interface{}) error
Custom TOML unmarshalling for FileCustomization with validation
type FilesystemCustomization ¶
func (*FilesystemCustomization) UnmarshalJSON ¶
func (fsc *FilesystemCustomization) UnmarshalJSON(data []byte) error
func (*FilesystemCustomization) UnmarshalTOML ¶
func (fsc *FilesystemCustomization) UnmarshalTOML(data any) error
type FilesystemTypedCustomization ¶ added in v0.100.0
type FilesystemTypedCustomization struct { Mountpoint string `json:"mountpoint" toml:"mountpoint"` Label string `json:"label,omitempty" toml:"label,omitempty"` FSType string `json:"fs_type,omitempty" toml:"fs_type,omitempty"` }
A filesystem on a plain partition or LVM logical volume. Note the differences from FilesystemCustomization:
- Adds a label.
- Adds a filesystem type (fs_type).
- Does not define a size. The size is defined by its container: a partition (PartitionCustomization) or LVM logical volume (LVCustomization).
Setting the FSType to "swap" creates a swap area (and the Mountpoint must be empty).
type FirewallCustomization ¶
type FirewallCustomization struct { Ports []string `json:"ports,omitempty" toml:"ports,omitempty"` Services *FirewallServicesCustomization `json:"services,omitempty" toml:"services,omitempty"` Zones []FirewallZoneCustomization `json:"zones,omitempty" toml:"zones,omitempty"` }
type FirstBootIgnitionCustomization ¶
type FirstBootIgnitionCustomization struct {
ProvisioningURL string `json:"url,omitempty" toml:"url,omitempty"`
}
type Group ¶
type Group struct {
Name string `json:"name" toml:"name"`
}
A group specifies an package group.
type GroupCustomization ¶
type IgnitionCustomization ¶
type IgnitionCustomization struct { Embedded *EmbeddedIgnitionCustomization `json:"embedded,omitempty" toml:"embedded,omitempty"` FirstBoot *FirstBootIgnitionCustomization `json:"firstboot,omitempty" toml:"firstboot,omitempty"` }
type InstallerCustomization ¶ added in v0.38.0
type InstallerCustomization struct { Unattended bool `json:"unattended,omitempty" toml:"unattended,omitempty"` SudoNopasswd []string `json:"sudo-nopasswd,omitempty" toml:"sudo-nopasswd,omitempty"` Kickstart *Kickstart `json:"kickstart,omitempty" toml:"kickstart,omitempty"` Modules *AnacondaModules `json:"modules,omitempty" toml:"modules,omitempty"` }
type KernelCustomization ¶
type Kickstart ¶ added in v0.62.0
type Kickstart struct {
Contents string `json:"contents" toml:"contents"`
}
type LVCustomization ¶ added in v0.100.0
type LVCustomization struct { // Logical volume name Name string `json:"name,omitempty" toml:"name,omitempty"` // Minimum size of the logical volume MinSize uint64 `json:"minsize,omitempty" toml:"minsize,omitempty"` FilesystemTypedCustomization }
func (*LVCustomization) UnmarshalJSON ¶ added in v0.100.0
func (lv *LVCustomization) UnmarshalJSON(data []byte) error
Custom JSON unmarshaller for LVCustomization for handling the conversion of data sizes (minsize) expressed as strings to uint64.
type LocaleCustomization ¶
type OpenSCAPCustomization ¶
type OpenSCAPCustomization struct { DataStream string `json:"datastream,omitempty" toml:"datastream,omitempty"` ProfileID string `json:"profile_id,omitempty" toml:"profile_id,omitempty"` Tailoring *OpenSCAPTailoringCustomizations `json:"tailoring,omitempty" toml:"tailoring,omitempty"` JSONTailoring *OpenSCAPJSONTailoringCustomizations `json:"json_tailoring,omitempty" toml:"json_tailoring,omitempty"` }
type OpenSCAPJSONTailoringCustomizations ¶ added in v0.74.0
type Package ¶
type Package struct { Name string `json:"name" toml:"name"` Version string `json:"version,omitempty" toml:"version,omitempty"` }
A Package specifies an RPM package.
func (Package) ToNameVersion ¶
type PartitionCustomization ¶ added in v0.100.0
type PartitionCustomization struct { // The type of payload for the partition (optional, defaults to "plain"). Type string `json:"type" toml:"type"` // Minimum size of the partition that contains the filesystem (for "plain" // filesystem), volume group ("lvm"), or btrfs volume ("btrfs"). The final // size of the partition will be larger than the minsize if the sum of the // contained volumes (logical volumes or subvolumes) is larger. In // addition, certain mountpoints have required minimum sizes. See // https://osbuild.org/docs/user-guide/partitioning for more details. // (optional, defaults depend on payload and mountpoints). MinSize uint64 `json:"minsize" toml:"minsize"` BtrfsVolumeCustomization VGCustomization FilesystemTypedCustomization }
PartitionCustomization defines a single partition on a disk. The Type defines the kind of "payload" for the partition: plain, lvm, or btrfs.
- plain: the payload will be a filesystem on a partition (e.g. xfs, ext4). See FilesystemTypedCustomization for extra fields.
- lvm: the payload will be an LVM volume group. See VGCustomization for extra fields
- btrfs: the payload will be a btrfs volume. See BtrfsVolumeCustomization for extra fields.
func (*PartitionCustomization) UnmarshalJSON ¶ added in v0.100.0
func (v *PartitionCustomization) UnmarshalJSON(data []byte) error
Custom JSON unmarshaller that first reads the value of the "type" field and then deserialises the whole object into a struct that only contains the fields valid for that partition type. This ensures that no fields are set for the substructure of a different type than the one defined in the "type" fields.
func (*PartitionCustomization) UnmarshalTOML ¶ added in v0.100.0
func (v *PartitionCustomization) UnmarshalTOML(data any) error
Custom TOML unmarshaller that first reads the value of the "type" field and then deserialises the whole object into a struct that only contains the fields valid for that partition type. This ensures that no fields are set for the substructure of a different type than the one defined in the "type" fields.
type RHSMConfig ¶ added in v0.75.0
type RHSMConfig struct { DNFPlugins *SubManDNFPluginsConfig `json:"dnf_plugins,omitempty" toml:"dnf_plugins,omitempty"` SubscriptionManager *SubManConfig `json:"subscription_manager,omitempty" toml:"subscription_manager,omitempty"` }
type RHSMCustomization ¶ added in v0.75.0
type RHSMCustomization struct {
Config *RHSMConfig `json:"config,omitempty" toml:"config,omitempty"`
}
type RPMCustomization ¶ added in v0.74.0
type RPMCustomization struct {
ImportKeys *RPMImportKeys `json:"import_keys,omitempty" toml:"import_keys,omitempty"`
}
type RPMImportKeys ¶ added in v0.74.0
type RPMImportKeys struct { // File paths in the image to import keys from Files []string `json:"files,omitempty" toml:"files,omitempty"` }
type RepositoryCustomization ¶
type RepositoryCustomization struct { Id string `json:"id" toml:"id"` BaseURLs []string `json:"baseurls,omitempty" toml:"baseurls,omitempty"` GPGKeys []string `json:"gpgkeys,omitempty" toml:"gpgkeys,omitempty"` Metalink string `json:"metalink,omitempty" toml:"metalink,omitempty"` Mirrorlist string `json:"mirrorlist,omitempty" toml:"mirrorlist,omitempty"` Name string `json:"name,omitempty" toml:"name,omitempty"` Priority *int `json:"priority,omitempty" toml:"priority,omitempty"` Enabled *bool `json:"enabled,omitempty" toml:"enabled,omitempty"` GPGCheck *bool `json:"gpgcheck,omitempty" toml:"gpgcheck,omitempty"` RepoGPGCheck *bool `json:"repo_gpgcheck,omitempty" toml:"repo_gpgcheck,omitempty"` SSLVerify *bool `json:"sslverify,omitempty" toml:"sslverify,omitempty"` ModuleHotfixes *bool `json:"module_hotfixes,omitempty" toml:"module_hotfixes,omitempty"` Filename string `json:"filename,omitempty" toml:"filename,omitempty"` }
type SSHKeyCustomization ¶
type ServicesCustomization ¶
type SubManConfig ¶ added in v0.75.0
type SubManConfig struct { RHSMConfig *SubManRHSMConfig `json:"rhsm,omitempty" toml:"rhsm,omitempty"` RHSMCertdConfig *SubManRHSMCertdConfig `json:"rhsmcertd,omitempty" toml:"rhsmcertd,omitempty"` }
Subscription Manager 'rhsm.conf' configuration
type SubManDNFPluginsConfig ¶ added in v0.75.0
type SubManDNFPluginsConfig struct { ProductID *DNFPluginConfig `json:"product_id,omitempty" toml:"product_id,omitempty"` SubscriptionManager *DNFPluginConfig `json:"subscription_manager,omitempty" toml:"subscription_manager,omitempty"` }
type SubManRHSMCertdConfig ¶ added in v0.75.0
type SubManRHSMCertdConfig struct {
AutoRegistration *bool `json:"auto_registration,omitempty" toml:"auto_registration,omitempty"`
}
Subscription Manager [rhsmcertd] configuration
type SubManRHSMConfig ¶ added in v0.75.0
type SubManRHSMConfig struct {
ManageRepos *bool `json:"manage_repos,omitempty" toml:"manage_repos,omitempty"`
}
Subscription Manager [rhsm] configuration
type TimezoneCustomization ¶
type UserCustomization ¶
type UserCustomization struct { Name string `json:"name" toml:"name"` Description *string `json:"description,omitempty" toml:"description,omitempty"` Password *string `json:"password,omitempty" toml:"password,omitempty"` Key *string `json:"key,omitempty" toml:"key,omitempty"` Home *string `json:"home,omitempty" toml:"home,omitempty"` Shell *string `json:"shell,omitempty" toml:"shell,omitempty"` Groups []string `json:"groups,omitempty" toml:"groups,omitempty"` UID *int `json:"uid,omitempty" toml:"uid,omitempty"` GID *int `json:"gid,omitempty" toml:"gid,omitempty"` ExpireDate *int `json:"expiredate,omitempty" toml:"expiredate,omitempty"` ForcePasswordReset *bool `json:"force_password_reset,omitempty" toml:"force_password_reset,omitempty"` }
type VGCustomization ¶ added in v0.100.0
type VGCustomization struct { // Volume group name (optional, default will be automatically generated). Name string `json:"name" toml:"name"` LogicalVolumes []LVCustomization `json:"logical_volumes,omitempty" toml:"logical_volumes,omitempty"` }
An LVM volume group with one or more logical volumes.