blueprint

package
v0.104.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2024 License: Apache-2.0 Imports: 21 Imported by: 6

Documentation

Overview

Package blueprint contains primitives for representing weldr blueprints

Index

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 AnacondaModules struct {
	Enable  []string `json:"enable,omitempty" toml:"enable,omitempty"`
	Disable []string `json:"disable,omitempty" toml:"disable,omitempty"`
}

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

func (b *Blueprint) GetPackages() []string

packages, modules, and groups all resolve to rpm packages right now. This function returns a combined list of "name-version" strings.

func (*Blueprint) GetPackagesEx

func (b *Blueprint) GetPackagesEx(bootable bool) []string

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 Container

type Container struct {
	Source string `json:"source" toml:"source"`
	Name   string `json:"name,omitempty" toml:"name,omitempty"`

	TLSVerify    *bool `json:"tls-verify,omitempty" toml:"tls-verify,omitempty"`
	LocalStorage bool  `json:"local-storage,omitempty" toml:"local-storage,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

type FilesystemCustomization struct {
	Mountpoint string
	MinSize    uint64
}

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 FirewallServicesCustomization

type FirewallServicesCustomization struct {
	Enabled  []string `json:"enabled,omitempty" toml:"enabled,omitempty"`
	Disabled []string `json:"disabled,omitempty" toml:"disabled,omitempty"`
}

type FirewallZoneCustomization

type FirewallZoneCustomization struct {
	Name    *string  `json:"name,omitempty" toml:"name,omitempty"`
	Sources []string `json:"sources,omitempty" toml:"sources,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 GroupCustomization struct {
	Name string `json:"name" toml:"name"`
	GID  *int   `json:"gid,omitempty" toml:"gid,omitempty"`
}

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 KernelCustomization struct {
	Name   string `json:"name,omitempty" toml:"name,omitempty"`
	Append string `json:"append" toml:"append"`
}

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 LocaleCustomization struct {
	Languages []string `json:"languages,omitempty" toml:"languages,omitempty"`
	Keyboard  *string  `json:"keyboard,omitempty" toml:"keyboard,omitempty"`
}

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 OpenSCAPJSONTailoringCustomizations struct {
	ProfileID string `json:"profile_id,omitempty" toml:"profile_id,omitempty"`
	Filepath  string `json:"filepath,omitempty" toml:"filepath,omitempty"`
}

type OpenSCAPTailoringCustomizations

type OpenSCAPTailoringCustomizations struct {
	Selected   []string `json:"selected,omitempty" toml:"selected,omitempty"`
	Unselected []string `json:"unselected,omitempty" toml:"unselected,omitempty"`
}

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

func (p Package) ToNameVersion() string

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.

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 SSHKeyCustomization struct {
	User string `json:"user" toml:"user"`
	Key  string `json:"key" toml:"key"`
}

type ServicesCustomization

type ServicesCustomization struct {
	Enabled  []string `json:"enabled,omitempty" toml:"enabled,omitempty"`
	Disabled []string `json:"disabled,omitempty" toml:"disabled,omitempty"`
	Masked   []string `json:"masked,omitempty" toml:"masked,omitempty"`
}

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 TimezoneCustomization struct {
	Timezone   *string  `json:"timezone,omitempty" toml:"timezone,omitempty"`
	NTPServers []string `json:"ntpservers,omitempty" toml:"ntpservers,omitempty"`
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL