go.mod: update osbuild/images to v0.87.0
Update osbuild/images to include: - blueprint: remove the sshkey customization (https://github.com/osbuild/images/pull/928). - [RHEL-9] Drop RHSM and RHUI-specific config from Azure and EC2 images (COMPOSER-2308) (https://github.com/osbuild/images/pull/857).
This commit is contained in:
parent
f58193dbeb
commit
1f21f8e217
44 changed files with 648 additions and 483 deletions
18
vendor/github.com/osbuild/images/pkg/blueprint/customizations.go
generated
vendored
18
vendor/github.com/osbuild/images/pkg/blueprint/customizations.go
generated
vendored
|
|
@ -12,7 +12,6 @@ import (
|
|||
type Customizations struct {
|
||||
Hostname *string `json:"hostname,omitempty" toml:"hostname,omitempty"`
|
||||
Kernel *KernelCustomization `json:"kernel,omitempty" toml:"kernel,omitempty"`
|
||||
SSHKey []SSHKeyCustomization `json:"sshkey,omitempty" toml:"sshkey,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"`
|
||||
|
|
@ -228,24 +227,11 @@ func (c *Customizations) GetTimezoneSettings() (*string, []string) {
|
|||
}
|
||||
|
||||
func (c *Customizations) GetUsers() []UserCustomization {
|
||||
if c == nil || (c.SSHKey == nil && c.User == nil) {
|
||||
if c == nil || c.User == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
users := []UserCustomization{}
|
||||
|
||||
// prepend sshkey for backwards compat (overridden by users)
|
||||
if len(c.SSHKey) > 0 {
|
||||
for idx := range c.SSHKey {
|
||||
keyc := c.SSHKey[idx]
|
||||
users = append(users, UserCustomization{
|
||||
Name: keyc.User,
|
||||
Key: &keyc.Key,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
users = append(users, c.User...)
|
||||
users := c.User
|
||||
|
||||
// sanitize user home directory in blueprint: if it has a trailing slash,
|
||||
// it might lead to the directory not getting the correct selinux labels
|
||||
|
|
|
|||
19
vendor/github.com/osbuild/images/pkg/customizations/oscap/oscap.go
generated
vendored
19
vendor/github.com/osbuild/images/pkg/customizations/oscap/oscap.go
generated
vendored
|
|
@ -37,11 +37,13 @@ const (
|
|||
StigGui Profile = "xccdf_org.ssgproject.content_profile_stig_gui"
|
||||
|
||||
// datastream fallbacks
|
||||
defaultFedoraDatastream string = "/usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml"
|
||||
defaultCentos8Datastream string = "/usr/share/xml/scap/ssg/content/ssg-centos8-ds.xml"
|
||||
defaultCentos9Datastream string = "/usr/share/xml/scap/ssg/content/ssg-cs9-ds.xml"
|
||||
defaultRHEL8Datastream string = "/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml"
|
||||
defaultRHEL9Datastream string = "/usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml"
|
||||
defaultFedoraDatastream string = "/usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml"
|
||||
defaultCentos8Datastream string = "/usr/share/xml/scap/ssg/content/ssg-centos8-ds.xml"
|
||||
defaultCentos9Datastream string = "/usr/share/xml/scap/ssg/content/ssg-cs9-ds.xml"
|
||||
defaultCentos10Datastream string = "/usr/share/xml/scap/ssg/content/ssg-cs10-ds.xml"
|
||||
defaultRHEL8Datastream string = "/usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml"
|
||||
defaultRHEL9Datastream string = "/usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml"
|
||||
defaultRHEL10Datastream string = "/usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml"
|
||||
|
||||
// oscap related directories
|
||||
DataDir string = "/oscap_data"
|
||||
|
|
@ -139,6 +141,13 @@ func DefaultRHEL9Datastream(isRHEL bool) string {
|
|||
return defaultCentos9Datastream
|
||||
}
|
||||
|
||||
func DefaultRHEL10Datastream(isRHEL bool) string {
|
||||
if isRHEL {
|
||||
return defaultRHEL10Datastream
|
||||
}
|
||||
return defaultCentos10Datastream
|
||||
}
|
||||
|
||||
func IsProfileAllowed(profile string, allowlist []Profile) bool {
|
||||
for _, a := range allowlist {
|
||||
if a.String() == profile {
|
||||
|
|
|
|||
3
vendor/github.com/osbuild/images/pkg/disk/disk.go
generated
vendored
3
vendor/github.com/osbuild/images/pkg/disk/disk.go
generated
vendored
|
|
@ -56,6 +56,9 @@ const (
|
|||
|
||||
// Extended Boot Loader Partition
|
||||
XBootLDRPartitionGUID = "BC13C2FF-59E6-4262-A352-B275FD6F7172"
|
||||
|
||||
// DosFat16B used for the ESP-System partition
|
||||
DosFat16B = "06"
|
||||
)
|
||||
|
||||
// Entity is the base interface for all disk-related entities.
|
||||
|
|
|
|||
4
vendor/github.com/osbuild/images/pkg/distro/fedora/partition_tables.go
generated
vendored
4
vendor/github.com/osbuild/images/pkg/distro/fedora/partition_tables.go
generated
vendored
|
|
@ -224,7 +224,7 @@ var minimalrawPartitionTables = distro.BasePartitionTableMap{
|
|||
Partitions: []disk.Partition{
|
||||
{
|
||||
Size: 200 * common.MebiByte,
|
||||
Type: "06",
|
||||
Type: disk.DosFat16B,
|
||||
Bootable: true,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
|
|
@ -319,7 +319,7 @@ var iotBasePartitionTables = distro.BasePartitionTableMap{
|
|||
Partitions: []disk.Partition{
|
||||
{
|
||||
Size: 501 * common.MebiByte,
|
||||
Type: "06",
|
||||
Type: disk.DosFat16B,
|
||||
Bootable: true,
|
||||
Payload: &disk.Filesystem{
|
||||
Type: "vfat",
|
||||
|
|
|
|||
1
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel10/distro.go
generated
vendored
1
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel10/distro.go
generated
vendored
|
|
@ -65,6 +65,7 @@ func defaultDistroImageConfig(d *rhel.Distribution) *distro.ImageConfig {
|
|||
},
|
||||
},
|
||||
},
|
||||
DefaultOSCAPDatastream: common.ToPtr(oscap.DefaultRHEL10Datastream(d.IsRHEL())),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
168
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/ami.go
generated
vendored
168
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/ami.go
generated
vendored
|
|
@ -2,7 +2,6 @@ package rhel9
|
|||
|
||||
import (
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/pkg/customizations/subscription"
|
||||
"github.com/osbuild/images/pkg/distro"
|
||||
"github.com/osbuild/images/pkg/distro/rhel"
|
||||
"github.com/osbuild/images/pkg/osbuild"
|
||||
|
|
@ -13,7 +12,7 @@ import (
|
|||
const amiKernelOptions = "console=tty0 console=ttyS0,115200n8 net.ifnames=0 nvme_core.io_timeout=4294967295"
|
||||
|
||||
// default EC2 images config (common for all architectures)
|
||||
func baseEc2ImageConfig() *distro.ImageConfig {
|
||||
func defaultEc2ImageConfig() *distro.ImageConfig {
|
||||
return &distro.ImageConfig{
|
||||
Locale: common.ToPtr("en_US.UTF-8"),
|
||||
Timezone: common.ToPtr("UTC"),
|
||||
|
|
@ -142,49 +141,27 @@ func baseEc2ImageConfig() *distro.ImageConfig {
|
|||
}
|
||||
}
|
||||
|
||||
func defaultEc2ImageConfig(osVersion string, rhsm bool) *distro.ImageConfig {
|
||||
ic := baseEc2ImageConfig()
|
||||
if rhsm && common.VersionLessThan(osVersion, "9.1") {
|
||||
ic = appendRHSM(ic)
|
||||
// Disable RHSM redhat.repo management
|
||||
rhsmConf := ic.RHSMConfig[subscription.RHSMConfigNoSubscription]
|
||||
rhsmConf.SubMan.Rhsm = subscription.SubManRHSMConfig{ManageRepos: common.ToPtr(false)}
|
||||
ic.RHSMConfig[subscription.RHSMConfigNoSubscription] = rhsmConf
|
||||
}
|
||||
func appendEC2DracutX86_64(ic *distro.ImageConfig) *distro.ImageConfig {
|
||||
ic.DracutConf = append(ic.DracutConf,
|
||||
&osbuild.DracutConfStageOptions{
|
||||
Filename: "ec2.conf",
|
||||
Config: osbuild.DracutConfigFile{
|
||||
AddDrivers: []string{
|
||||
"nvme",
|
||||
"xen-blkfront",
|
||||
},
|
||||
},
|
||||
})
|
||||
return ic
|
||||
}
|
||||
|
||||
func defaultEc2ImageConfigX86_64(osVersion string, rhsm bool) *distro.ImageConfig {
|
||||
ic := defaultEc2ImageConfig(osVersion, rhsm)
|
||||
func defaultEc2ImageConfigX86_64() *distro.ImageConfig {
|
||||
ic := defaultEc2ImageConfig()
|
||||
return appendEC2DracutX86_64(ic)
|
||||
}
|
||||
|
||||
// Default AMI (custom image built by users) images config.
|
||||
// The configuration does not touch the RHSM configuration at all.
|
||||
// https://issues.redhat.com/browse/COMPOSER-2157
|
||||
func defaultAMIImageConfig() *distro.ImageConfig {
|
||||
return baseEc2ImageConfig()
|
||||
}
|
||||
|
||||
// Default AMI x86_64 (custom image built by users) images config.
|
||||
// The configuration does not touch the RHSM configuration at all.
|
||||
// https://issues.redhat.com/browse/COMPOSER-2157
|
||||
func defaultAMIImageConfigX86_64() *distro.ImageConfig {
|
||||
ic := defaultAMIImageConfig()
|
||||
return appendEC2DracutX86_64(ic)
|
||||
}
|
||||
|
||||
// common ec2 image build package set
|
||||
func ec2BuildPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return distroBuildPackageSet(t).Append(
|
||||
rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"python3-pyyaml",
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func ec2CommonPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
// common ec2 image package set, which is the minimal super set of all ec2 image types
|
||||
func ec2BasePackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ps := rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"@core",
|
||||
|
|
@ -243,23 +220,10 @@ func ec2CommonPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
return ps
|
||||
}
|
||||
|
||||
// common rhel ec2 RHUI image package set
|
||||
func rhelEc2CommonPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ps := ec2CommonPackageSet(t)
|
||||
// Include "redhat-cloud-client-configuration" on 9.1+ (COMPOSER-1805)
|
||||
if common.VersionGreaterThanOrEqual(t.Arch().Distro().OsVersion(), "9.1") {
|
||||
ps.Include = append(ps.Include, "redhat-cloud-client-configuration")
|
||||
}
|
||||
return ps
|
||||
}
|
||||
|
||||
// rhel-ec2 image package set
|
||||
func rhelEc2PackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ec2PackageSet := rhelEc2CommonPackageSet(t)
|
||||
// plain ec2 image package set
|
||||
func ec2PackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ec2PackageSet := ec2BasePackageSet(t)
|
||||
ec2PackageSet = ec2PackageSet.Append(rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"rh-amazon-rhui-client",
|
||||
},
|
||||
Exclude: []string{
|
||||
"alsa-lib",
|
||||
},
|
||||
|
|
@ -269,16 +233,12 @@ func rhelEc2PackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
|
||||
// rhel-ha-ec2 image package set
|
||||
func rhelEc2HaPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ec2HaPackageSet := rhelEc2CommonPackageSet(t)
|
||||
ec2HaPackageSet := ec2PackageSet(t)
|
||||
ec2HaPackageSet = ec2HaPackageSet.Append(rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"fence-agents-all",
|
||||
"pacemaker",
|
||||
"pcs",
|
||||
"rh-amazon-rhui-client-ha",
|
||||
},
|
||||
Exclude: []string{
|
||||
"alsa-lib",
|
||||
},
|
||||
})
|
||||
return ec2HaPackageSet
|
||||
|
|
@ -290,23 +250,22 @@ func rhelEc2HaPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
func rhelEc2SapPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"rh-amazon-rhui-client-sap-bundle-e4s",
|
||||
"libcanberra-gtk2",
|
||||
},
|
||||
Exclude: []string{
|
||||
// COMPOSER-1829
|
||||
"firewalld",
|
||||
},
|
||||
}.Append(rhelEc2CommonPackageSet(t)).Append(SapPackageSet(t))
|
||||
}.Append(ec2BasePackageSet(t)).Append(SapPackageSet(t))
|
||||
}
|
||||
|
||||
func mkEc2ImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
||||
func mkEc2ImgTypeX86_64() *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"ec2",
|
||||
"image.raw.xz",
|
||||
"application/xz",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.OSPkgsKey: rhelEc2PackageSet,
|
||||
rhel.OSPkgsKey: ec2PackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -318,7 +277,7 @@ func mkEc2ImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
|||
it.KernelOptions = amiKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultEc2ImageConfigX86_64(osVersion, rhsm)
|
||||
it.DefaultImageConfig = defaultEc2ImageConfigX86_64()
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
|
|
@ -330,7 +289,7 @@ func mkAMIImgTypeX86_64() *rhel.ImageType {
|
|||
"image.raw",
|
||||
"application/octet-stream",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.OSPkgsKey: ec2CommonPackageSet,
|
||||
rhel.OSPkgsKey: ec2PackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -341,20 +300,19 @@ func mkAMIImgTypeX86_64() *rhel.ImageType {
|
|||
it.KernelOptions = amiKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAMIImageConfigX86_64()
|
||||
it.DefaultImageConfig = defaultEc2ImageConfigX86_64()
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func mkEC2SapImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
||||
func mkEC2SapImgTypeX86_64(osVersion string) *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"ec2-sap",
|
||||
"image.raw.xz",
|
||||
"application/xz",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.BuildPkgsKey: ec2BuildPackageSet,
|
||||
rhel.OSPkgsKey: rhelEc2SapPackageSet,
|
||||
rhel.OSPkgsKey: rhelEc2SapPackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -366,20 +324,19 @@ func mkEC2SapImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
|||
it.KernelOptions = "console=ttyS0,115200n8 console=tty0 net.ifnames=0 nvme_core.io_timeout=4294967295 processor.max_cstate=1 intel_idle.max_cstate=1"
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = sapImageConfig(osVersion).InheritFrom(defaultEc2ImageConfigX86_64(osVersion, rhsm))
|
||||
it.DefaultImageConfig = sapImageConfig(osVersion).InheritFrom(defaultEc2ImageConfigX86_64())
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func mkEc2HaImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
||||
func mkEc2HaImgTypeX86_64() *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"ec2-ha",
|
||||
"image.raw.xz",
|
||||
"application/xz",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.BuildPkgsKey: ec2BuildPackageSet,
|
||||
rhel.OSPkgsKey: rhelEc2HaPackageSet,
|
||||
rhel.OSPkgsKey: rhelEc2HaPackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -391,7 +348,7 @@ func mkEc2HaImgTypeX86_64(osVersion string, rhsm bool) *rhel.ImageType {
|
|||
it.KernelOptions = amiKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultEc2ImageConfigX86_64(osVersion, rhsm)
|
||||
it.DefaultImageConfig = defaultEc2ImageConfigX86_64()
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
|
|
@ -403,8 +360,7 @@ func mkAMIImgTypeAarch64() *rhel.ImageType {
|
|||
"image.raw",
|
||||
"application/octet-stream",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.BuildPkgsKey: ec2BuildPackageSet,
|
||||
rhel.OSPkgsKey: ec2CommonPackageSet,
|
||||
rhel.OSPkgsKey: ec2PackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -415,20 +371,19 @@ func mkAMIImgTypeAarch64() *rhel.ImageType {
|
|||
it.KernelOptions = "console=ttyS0,115200n8 console=tty0 net.ifnames=0 nvme_core.io_timeout=4294967295 iommu.strict=0"
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAMIImageConfig()
|
||||
it.DefaultImageConfig = defaultEc2ImageConfig()
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func mkEC2ImgTypeAarch64(osVersion string, rhsm bool) *rhel.ImageType {
|
||||
func mkEC2ImgTypeAarch64() *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"ec2",
|
||||
"image.raw.xz",
|
||||
"application/xz",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.BuildPkgsKey: ec2BuildPackageSet,
|
||||
rhel.OSPkgsKey: rhelEc2PackageSet,
|
||||
rhel.OSPkgsKey: ec2PackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -440,57 +395,8 @@ func mkEC2ImgTypeAarch64(osVersion string, rhsm bool) *rhel.ImageType {
|
|||
it.KernelOptions = "console=ttyS0,115200n8 console=tty0 net.ifnames=0 nvme_core.io_timeout=4294967295 iommu.strict=0"
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 10 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultEc2ImageConfig(osVersion, rhsm)
|
||||
it.DefaultImageConfig = defaultEc2ImageConfig()
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// Add RHSM config options to ImageConfig.
|
||||
// Used for RHEL distros.
|
||||
func appendRHSM(ic *distro.ImageConfig) *distro.ImageConfig {
|
||||
rhsm := &distro.ImageConfig{
|
||||
RHSMConfig: map[subscription.RHSMStatus]*subscription.RHSMConfig{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
// Don't disable RHSM redhat.repo management on the AMI
|
||||
// image, which is BYOS and does not use RHUI for content.
|
||||
// Otherwise subscribing the system manually after booting
|
||||
// it would result in empty redhat.repo. Without RHUI, such
|
||||
// system would have no way to get Red Hat content, but
|
||||
// enable the repo management manually, which would be very
|
||||
// confusing.
|
||||
},
|
||||
},
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
// do not disable the redhat.repo management if the user
|
||||
// explicitly request the system to be subscribed
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
return rhsm.InheritFrom(ic)
|
||||
}
|
||||
|
||||
func appendEC2DracutX86_64(ic *distro.ImageConfig) *distro.ImageConfig {
|
||||
ic.DracutConf = append(ic.DracutConf,
|
||||
&osbuild.DracutConfStageOptions{
|
||||
Filename: "ec2.conf",
|
||||
Config: osbuild.DracutConfigFile{
|
||||
AddDrivers: []string{
|
||||
"nvme",
|
||||
"xen-blkfront",
|
||||
},
|
||||
},
|
||||
})
|
||||
return ic
|
||||
}
|
||||
|
|
|
|||
388
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/azure.go
generated
vendored
388
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/azure.go
generated
vendored
|
|
@ -3,7 +3,6 @@ package rhel9
|
|||
import (
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/pkg/arch"
|
||||
"github.com/osbuild/images/pkg/customizations/subscription"
|
||||
"github.com/osbuild/images/pkg/disk"
|
||||
"github.com/osbuild/images/pkg/distro"
|
||||
"github.com/osbuild/images/pkg/distro/rhel"
|
||||
|
|
@ -11,8 +10,8 @@ import (
|
|||
"github.com/osbuild/images/pkg/rpmmd"
|
||||
)
|
||||
|
||||
// Azure non-RHEL image type
|
||||
func mkAzureImgType() *rhel.ImageType {
|
||||
// Azure image type
|
||||
func mkAzureImgType(rd *rhel.Distribution) *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"vhd",
|
||||
"disk.vhd",
|
||||
|
|
@ -29,44 +28,20 @@ func mkAzureImgType() *rhel.ImageType {
|
|||
it.KernelOptions = defaultAzureKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 4 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAzureImageConfig
|
||||
it.DefaultImageConfig = defaultAzureImageConfig(rd)
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// Azure BYOS image type
|
||||
func mkAzureByosImgType(rd distro.Distro) *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"vhd",
|
||||
"disk.vhd",
|
||||
"application/x-vhd",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.OSPkgsKey: azurePackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
[]string{"os", "image", "vpc"},
|
||||
[]string{"vpc"},
|
||||
)
|
||||
|
||||
it.KernelOptions = defaultAzureKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 4 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAzureByosImageConfig.InheritFrom(defaultAzureImageConfig)
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// Azure RHUI image type
|
||||
func mkAzureRhuiImgType() *rhel.ImageType {
|
||||
// Azure RHEL-internal image type
|
||||
func mkAzureInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"azure-rhui",
|
||||
"disk.vhd.xz",
|
||||
"application/xz",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.OSPkgsKey: azureRhuiPackageSet,
|
||||
rhel.OSPkgsKey: azurePackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
|
|
@ -78,13 +53,13 @@ func mkAzureRhuiImgType() *rhel.ImageType {
|
|||
it.KernelOptions = defaultAzureKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 64 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAzureRhuiImageConfig.InheritFrom(defaultAzureImageConfig)
|
||||
it.BasePartitionTables = azureRhuiBasePartitionTables
|
||||
it.DefaultImageConfig = defaultAzureImageConfig(rd)
|
||||
it.BasePartitionTables = azureInternalBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func mkAzureSapRhuiImgType(rd distro.Distro) *rhel.ImageType {
|
||||
func mkAzureSapInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"azure-sap-rhui",
|
||||
"disk.vhd.xz",
|
||||
|
|
@ -102,8 +77,8 @@ func mkAzureSapRhuiImgType(rd distro.Distro) *rhel.ImageType {
|
|||
it.KernelOptions = defaultAzureKernelOptions
|
||||
it.Bootable = true
|
||||
it.DefaultSize = 64 * common.GibiByte
|
||||
it.DefaultImageConfig = defaultAzureRhuiImageConfig.InheritFrom(sapAzureImageConfig(rd))
|
||||
it.BasePartitionTables = azureRhuiBasePartitionTables
|
||||
it.DefaultImageConfig = sapAzureImageConfig(rd)
|
||||
it.BasePartitionTables = azureInternalBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
|
@ -195,28 +170,14 @@ func azurePackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
return azureCommonPackageSet(t)
|
||||
}
|
||||
|
||||
// Azure RHUI image package set
|
||||
func azureRhuiPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"rhui-azure-rhel9",
|
||||
},
|
||||
}.Append(azureCommonPackageSet(t))
|
||||
}
|
||||
|
||||
// Azure SAP image package set
|
||||
// Includes the common azure package set, the common SAP packages, and
|
||||
// the azure rhui sap package.
|
||||
// Includes the common azure package set, the common SAP packages
|
||||
func azureSapPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"rhui-azure-rhel9-sap-ha",
|
||||
},
|
||||
}.Append(azureCommonPackageSet(t)).Append(SapPackageSet(t))
|
||||
return azureCommonPackageSet(t).Append(SapPackageSet(t))
|
||||
}
|
||||
|
||||
// PARTITION TABLES
|
||||
func azureRhuiBasePartitionTables(t *rhel.ImageType) (disk.PartitionTable, bool) {
|
||||
func azureInternalBasePartitionTables(t *rhel.ImageType) (disk.PartitionTable, bool) {
|
||||
var bootSize uint64
|
||||
switch {
|
||||
case common.VersionLessThan(t.Arch().Distro().OsVersion(), "9.3") && t.IsRHEL():
|
||||
|
|
@ -454,202 +415,167 @@ func azureRhuiBasePartitionTables(t *rhel.ImageType) (disk.PartitionTable, bool)
|
|||
const defaultAzureKernelOptions = "ro loglevel=3 console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"
|
||||
|
||||
// based on https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/deploying_rhel_9_on_microsoft_azure/assembly_deploying-a-rhel-image-as-a-virtual-machine-on-microsoft-azure_cloud-content-azure#making-configuration-changes_configure-the-image-azure
|
||||
var defaultAzureImageConfig = &distro.ImageConfig{
|
||||
Timezone: common.ToPtr("Etc/UTC"),
|
||||
Locale: common.ToPtr("en_US.UTF-8"),
|
||||
Keyboard: &osbuild.KeymapStageOptions{
|
||||
Keymap: "us",
|
||||
X11Keymap: &osbuild.X11KeymapOptions{
|
||||
Layouts: []string{"us"},
|
||||
},
|
||||
},
|
||||
Sysconfig: []*osbuild.SysconfigStageOptions{
|
||||
{
|
||||
Kernel: &osbuild.SysconfigKernelOptions{
|
||||
UpdateDefault: true,
|
||||
DefaultKernel: "kernel-core",
|
||||
},
|
||||
Network: &osbuild.SysconfigNetworkOptions{
|
||||
Networking: true,
|
||||
NoZeroConf: true,
|
||||
func defaultAzureImageConfig(rd *rhel.Distribution) *distro.ImageConfig {
|
||||
ic := &distro.ImageConfig{
|
||||
Timezone: common.ToPtr("Etc/UTC"),
|
||||
Locale: common.ToPtr("en_US.UTF-8"),
|
||||
Keyboard: &osbuild.KeymapStageOptions{
|
||||
Keymap: "us",
|
||||
X11Keymap: &osbuild.X11KeymapOptions{
|
||||
Layouts: []string{"us"},
|
||||
},
|
||||
},
|
||||
},
|
||||
EnabledServices: []string{
|
||||
"firewalld",
|
||||
"nm-cloud-setup.service",
|
||||
"nm-cloud-setup.timer",
|
||||
"sshd",
|
||||
"waagent",
|
||||
},
|
||||
SshdConfig: &osbuild.SshdConfigStageOptions{
|
||||
Config: osbuild.SshdConfigConfig{
|
||||
ClientAliveInterval: common.ToPtr(180),
|
||||
},
|
||||
},
|
||||
Modprobe: []*osbuild.ModprobeStageOptions{
|
||||
{
|
||||
Filename: "blacklist-amdgpu.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("amdgpu"),
|
||||
Sysconfig: []*osbuild.SysconfigStageOptions{
|
||||
{
|
||||
Kernel: &osbuild.SysconfigKernelOptions{
|
||||
UpdateDefault: true,
|
||||
DefaultKernel: "kernel-core",
|
||||
},
|
||||
Network: &osbuild.SysconfigNetworkOptions{
|
||||
Networking: true,
|
||||
NoZeroConf: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-intel-cstate.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("intel_cstate"),
|
||||
EnabledServices: []string{
|
||||
"firewalld",
|
||||
"nm-cloud-setup.service",
|
||||
"nm-cloud-setup.timer",
|
||||
"sshd",
|
||||
"waagent",
|
||||
},
|
||||
SshdConfig: &osbuild.SshdConfigStageOptions{
|
||||
Config: osbuild.SshdConfigConfig{
|
||||
ClientAliveInterval: common.ToPtr(180),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-floppy.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("floppy"),
|
||||
Modprobe: []*osbuild.ModprobeStageOptions{
|
||||
{
|
||||
Filename: "blacklist-amdgpu.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("amdgpu"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-intel-cstate.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("intel_cstate"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-floppy.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("floppy"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-nouveau.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("nouveau"),
|
||||
osbuild.NewModprobeConfigCmdBlacklist("lbm-nouveau"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-skylake-edac.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("skx_edac"),
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-nouveau.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("nouveau"),
|
||||
osbuild.NewModprobeConfigCmdBlacklist("lbm-nouveau"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "blacklist-skylake-edac.conf",
|
||||
Commands: osbuild.ModprobeConfigCmdList{
|
||||
osbuild.NewModprobeConfigCmdBlacklist("skx_edac"),
|
||||
},
|
||||
},
|
||||
},
|
||||
CloudInit: []*osbuild.CloudInitStageOptions{
|
||||
{
|
||||
Filename: "10-azure-kvp.cfg",
|
||||
Config: osbuild.CloudInitConfigFile{
|
||||
Reporting: &osbuild.CloudInitConfigReporting{
|
||||
Logging: &osbuild.CloudInitConfigReportingHandlers{
|
||||
Type: "log",
|
||||
CloudInit: []*osbuild.CloudInitStageOptions{
|
||||
{
|
||||
Filename: "10-azure-kvp.cfg",
|
||||
Config: osbuild.CloudInitConfigFile{
|
||||
Reporting: &osbuild.CloudInitConfigReporting{
|
||||
Logging: &osbuild.CloudInitConfigReportingHandlers{
|
||||
Type: "log",
|
||||
},
|
||||
Telemetry: &osbuild.CloudInitConfigReportingHandlers{
|
||||
Type: "hyperv",
|
||||
},
|
||||
},
|
||||
Telemetry: &osbuild.CloudInitConfigReportingHandlers{
|
||||
Type: "hyperv",
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "91-azure_datasource.cfg",
|
||||
Config: osbuild.CloudInitConfigFile{
|
||||
Datasource: &osbuild.CloudInitConfigDatasource{
|
||||
Azure: &osbuild.CloudInitConfigDatasourceAzure{
|
||||
ApplyNetworkConfig: false,
|
||||
},
|
||||
},
|
||||
DatasourceList: []string{
|
||||
"Azure",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Filename: "91-azure_datasource.cfg",
|
||||
Config: osbuild.CloudInitConfigFile{
|
||||
Datasource: &osbuild.CloudInitConfigDatasource{
|
||||
Azure: &osbuild.CloudInitConfigDatasourceAzure{
|
||||
ApplyNetworkConfig: false,
|
||||
PwQuality: &osbuild.PwqualityConfStageOptions{
|
||||
Config: osbuild.PwqualityConfConfig{
|
||||
Minlen: common.ToPtr(6),
|
||||
Minclass: common.ToPtr(3),
|
||||
Dcredit: common.ToPtr(0),
|
||||
Ucredit: common.ToPtr(0),
|
||||
Lcredit: common.ToPtr(0),
|
||||
Ocredit: common.ToPtr(0),
|
||||
},
|
||||
},
|
||||
WAAgentConfig: &osbuild.WAAgentConfStageOptions{
|
||||
Config: osbuild.WAAgentConfig{
|
||||
RDFormat: common.ToPtr(false),
|
||||
RDEnableSwap: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
Grub2Config: &osbuild.GRUB2Config{
|
||||
DisableRecovery: common.ToPtr(true),
|
||||
DisableSubmenu: common.ToPtr(true),
|
||||
Distributor: "$(sed 's, release .*$,,g' /etc/system-release)",
|
||||
Terminal: []string{"serial", "console"},
|
||||
Serial: "serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1",
|
||||
Timeout: 10,
|
||||
TimeoutStyle: osbuild.GRUB2ConfigTimeoutStyleCountdown,
|
||||
},
|
||||
UdevRules: &osbuild.UdevRulesStageOptions{
|
||||
Filename: "/etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules",
|
||||
Rules: osbuild.UdevRules{
|
||||
osbuild.UdevRuleComment{
|
||||
Comment: []string{
|
||||
"Accelerated Networking on Azure exposes a new SRIOV interface to the VM.",
|
||||
"This interface is transparently bonded to the synthetic interface,",
|
||||
"so NetworkManager should just ignore any SRIOV interfaces.",
|
||||
},
|
||||
},
|
||||
DatasourceList: []string{
|
||||
"Azure",
|
||||
osbuild.NewUdevRule(
|
||||
[]osbuild.UdevKV{
|
||||
{K: "SUBSYSTEM", O: "==", V: "net"},
|
||||
{K: "DRIVERS", O: "==", V: "hv_pci"},
|
||||
{K: "ACTION", O: "==", V: "add"},
|
||||
{K: "ENV", A: "NM_UNMANAGED", O: "=", V: "1"},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
SystemdUnit: []*osbuild.SystemdUnitStageOptions{
|
||||
{
|
||||
Unit: "nm-cloud-setup.service",
|
||||
Dropin: "10-rh-enable-for-azure.conf",
|
||||
Config: osbuild.SystemdServiceUnitDropin{
|
||||
Service: &osbuild.SystemdUnitServiceSection{
|
||||
Environment: []osbuild.EnvironmentVariable{{Key: "NM_CLOUD_SETUP_AZURE", Value: "yes"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
PwQuality: &osbuild.PwqualityConfStageOptions{
|
||||
Config: osbuild.PwqualityConfConfig{
|
||||
Minlen: common.ToPtr(6),
|
||||
Minclass: common.ToPtr(3),
|
||||
Dcredit: common.ToPtr(0),
|
||||
Ucredit: common.ToPtr(0),
|
||||
Lcredit: common.ToPtr(0),
|
||||
Ocredit: common.ToPtr(0),
|
||||
},
|
||||
},
|
||||
WAAgentConfig: &osbuild.WAAgentConfStageOptions{
|
||||
Config: osbuild.WAAgentConfig{
|
||||
RDFormat: common.ToPtr(false),
|
||||
RDEnableSwap: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
Grub2Config: &osbuild.GRUB2Config{
|
||||
DisableRecovery: common.ToPtr(true),
|
||||
DisableSubmenu: common.ToPtr(true),
|
||||
Distributor: "$(sed 's, release .*$,,g' /etc/system-release)",
|
||||
Terminal: []string{"serial", "console"},
|
||||
Serial: "serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1",
|
||||
Timeout: 10,
|
||||
TimeoutStyle: osbuild.GRUB2ConfigTimeoutStyleCountdown,
|
||||
},
|
||||
UdevRules: &osbuild.UdevRulesStageOptions{
|
||||
Filename: "/etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules",
|
||||
Rules: osbuild.UdevRules{
|
||||
osbuild.UdevRuleComment{
|
||||
Comment: []string{
|
||||
"Accelerated Networking on Azure exposes a new SRIOV interface to the VM.",
|
||||
"This interface is transparently bonded to the synthetic interface,",
|
||||
"so NetworkManager should just ignore any SRIOV interfaces.",
|
||||
},
|
||||
},
|
||||
osbuild.NewUdevRule(
|
||||
[]osbuild.UdevKV{
|
||||
{K: "SUBSYSTEM", O: "==", V: "net"},
|
||||
{K: "DRIVERS", O: "==", V: "hv_pci"},
|
||||
{K: "ACTION", O: "==", V: "add"},
|
||||
{K: "ENV", A: "NM_UNMANAGED", O: "=", V: "1"},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
SystemdUnit: []*osbuild.SystemdUnitStageOptions{
|
||||
{
|
||||
Unit: "nm-cloud-setup.service",
|
||||
Dropin: "10-rh-enable-for-azure.conf",
|
||||
Config: osbuild.SystemdServiceUnitDropin{
|
||||
Service: &osbuild.SystemdUnitServiceSection{
|
||||
Environment: []osbuild.EnvironmentVariable{{Key: "NM_CLOUD_SETUP_AZURE", Value: "yes"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
DefaultTarget: common.ToPtr("multi-user.target"),
|
||||
DefaultTarget: common.ToPtr("multi-user.target"),
|
||||
}
|
||||
|
||||
if rd.IsRHEL() {
|
||||
ic.GPGKeyFiles = append(ic.GPGKeyFiles, "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release")
|
||||
}
|
||||
|
||||
return ic
|
||||
}
|
||||
|
||||
// Diff of the default Image Config compare to the `defaultAzureImageConfig`
|
||||
// The configuration for non-RHUI images does not touch the RHSM configuration at all.
|
||||
// https://issues.redhat.com/browse/COMPOSER-2157
|
||||
var defaultAzureByosImageConfig = &distro.ImageConfig{
|
||||
GPGKeyFiles: []string{
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
}
|
||||
|
||||
// Diff of the default Image Config compare to the `defaultAzureImageConfig`
|
||||
var defaultAzureRhuiImageConfig = &distro.ImageConfig{
|
||||
GPGKeyFiles: []string{
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-microsoft-azure-release",
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
RHSMConfig: map[subscription.RHSMStatus]*subscription.RHSMConfig{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
DnfPlugins: subscription.SubManDNFPluginsConfig{
|
||||
SubscriptionManager: subscription.DNFPluginConfig{
|
||||
Enabled: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
Rhsm: subscription.SubManRHSMConfig{
|
||||
ManageRepos: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
},
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
// do not disable the redhat.repo management if the user
|
||||
// explicitly request the system to be subscribed
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func sapAzureImageConfig(rd distro.Distro) *distro.ImageConfig {
|
||||
return sapImageConfig(rd.OsVersion()).InheritFrom(defaultAzureRhuiImageConfig.InheritFrom(defaultAzureImageConfig))
|
||||
func sapAzureImageConfig(rd *rhel.Distribution) *distro.ImageConfig {
|
||||
return sapImageConfig(rd.OsVersion()).InheritFrom(defaultAzureImageConfig(rd))
|
||||
}
|
||||
|
|
|
|||
22
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go
generated
vendored
22
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/distro.go
generated
vendored
|
|
@ -232,13 +232,8 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
|
|||
},
|
||||
}
|
||||
|
||||
if rd.IsRHEL() { // RHEL-only (non-CentOS) image types
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureByosImgType(rd))
|
||||
aarch64.AddImageTypes(azureAarch64Platform, mkAzureByosImgType(rd))
|
||||
} else {
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureImgType())
|
||||
aarch64.AddImageTypes(azureAarch64Platform, mkAzureImgType())
|
||||
}
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureImgType(rd))
|
||||
aarch64.AddImageTypes(azureAarch64Platform, mkAzureImgType(rd))
|
||||
|
||||
gceX86Platform := &platform.X86{
|
||||
UEFIVendor: rd.Vendor(),
|
||||
|
|
@ -337,10 +332,10 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
|
|||
)
|
||||
|
||||
if rd.IsRHEL() { // RHEL-only (non-CentOS) image types
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureRhuiImgType(), mkAzureByosImgType(rd))
|
||||
aarch64.AddImageTypes(azureAarch64Platform, mkAzureRhuiImgType(), mkAzureByosImgType(rd))
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureInternalImgType(rd))
|
||||
aarch64.AddImageTypes(azureAarch64Platform, mkAzureInternalImgType(rd))
|
||||
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureSapRhuiImgType(rd))
|
||||
x86_64.AddImageTypes(azureX64Platform, mkAzureSapInternalImgType(rd))
|
||||
|
||||
// keep the RHEL EC2 x86_64 images before 9.3 BIOS-only for backward compatibility
|
||||
if common.VersionLessThan(rd.OsVersion(), "9.3") {
|
||||
|
|
@ -353,7 +348,7 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
|
|||
}
|
||||
|
||||
// add ec2 image types to RHEL distro only
|
||||
x86_64.AddImageTypes(ec2X86Platform, mkEc2ImgTypeX86_64(rd.OsVersion(), rd.IsRHEL()), mkEc2HaImgTypeX86_64(rd.OsVersion(), rd.IsRHEL()), mkEC2SapImgTypeX86_64(rd.OsVersion(), rd.IsRHEL()))
|
||||
x86_64.AddImageTypes(ec2X86Platform, mkEc2ImgTypeX86_64(), mkEc2HaImgTypeX86_64(), mkEC2SapImgTypeX86_64(rd.OsVersion()))
|
||||
|
||||
aarch64.AddImageTypes(
|
||||
&platform.Aarch64{
|
||||
|
|
@ -362,11 +357,8 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
|
|||
ImageFormat: platform.FORMAT_RAW,
|
||||
},
|
||||
},
|
||||
mkEC2ImgTypeAarch64(rd.OsVersion(), rd.IsRHEL()),
|
||||
mkEC2ImgTypeAarch64(),
|
||||
)
|
||||
|
||||
// add GCE RHUI image to RHEL only
|
||||
x86_64.AddImageTypes(gceX86Platform, mkGCERHUIImageType())
|
||||
}
|
||||
|
||||
rd.AddArches(x86_64, aarch64, ppc64le, s390x)
|
||||
|
|
|
|||
6
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/edge.go
generated
vendored
6
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/edge.go
generated
vendored
|
|
@ -670,7 +670,6 @@ func edgeCommitPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
"NetworkManager-wifi",
|
||||
"NetworkManager-wwan",
|
||||
"wpa_supplicant",
|
||||
"dnsmasq",
|
||||
"traceroute",
|
||||
"hostname",
|
||||
"iproute",
|
||||
|
|
@ -725,6 +724,11 @@ func edgeCommitPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
ps.Include = append(ps.Include, "ignition", "ignition-edge", "ssh-key-dir")
|
||||
}
|
||||
|
||||
if common.VersionLessThan(t.Arch().Distro().OsVersion(), "9.6") {
|
||||
// dnsmasq removed in 9.6+ but kept in older versions
|
||||
ps.Include = append(ps.Include, "dnsmasq")
|
||||
}
|
||||
|
||||
return ps
|
||||
|
||||
}
|
||||
|
|
|
|||
64
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/gce.go
generated
vendored
64
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/gce.go
generated
vendored
|
|
@ -2,7 +2,6 @@ package rhel9
|
|||
|
||||
import (
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/pkg/customizations/subscription"
|
||||
"github.com/osbuild/images/pkg/distro"
|
||||
"github.com/osbuild/images/pkg/distro/rhel"
|
||||
"github.com/osbuild/images/pkg/osbuild"
|
||||
|
|
@ -25,6 +24,7 @@ func mkGCEImageType() *rhel.ImageType {
|
|||
[]string{"archive"},
|
||||
)
|
||||
|
||||
it.NameAliases = []string{"gce-rhui"}
|
||||
// The configuration for non-RHUI images does not touch the RHSM configuration at all.
|
||||
// https://issues.redhat.com/browse/COMPOSER-2157
|
||||
it.DefaultImageConfig = baseGCEImageConfig()
|
||||
|
|
@ -37,30 +37,6 @@ func mkGCEImageType() *rhel.ImageType {
|
|||
return it
|
||||
}
|
||||
|
||||
func mkGCERHUIImageType() *rhel.ImageType {
|
||||
it := rhel.NewImageType(
|
||||
"gce-rhui",
|
||||
"image.tar.gz",
|
||||
"application/gzip",
|
||||
map[string]rhel.PackageSetFunc{
|
||||
rhel.OSPkgsKey: gceRhuiPackageSet,
|
||||
},
|
||||
rhel.DiskImage,
|
||||
[]string{"build"},
|
||||
[]string{"os", "image", "archive"},
|
||||
[]string{"archive"},
|
||||
)
|
||||
|
||||
it.DefaultImageConfig = defaultGceRhuiImageConfig()
|
||||
it.KernelOptions = gceKernelOptions
|
||||
it.DefaultSize = 20 * common.GibiByte
|
||||
it.Bootable = true
|
||||
// TODO: the base partition table still contains the BIOS boot partition, but the image is UEFI-only
|
||||
it.BasePartitionTables = defaultBasePartitionTables
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func baseGCEImageConfig() *distro.ImageConfig {
|
||||
ic := &distro.ImageConfig{
|
||||
Timezone: common.ToPtr("UTC"),
|
||||
|
|
@ -156,33 +132,6 @@ func baseGCEImageConfig() *distro.ImageConfig {
|
|||
return ic
|
||||
}
|
||||
|
||||
func defaultGceRhuiImageConfig() *distro.ImageConfig {
|
||||
ic := &distro.ImageConfig{
|
||||
RHSMConfig: map[subscription.RHSMStatus]*subscription.RHSMConfig{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
Rhsm: subscription.SubManRHSMConfig{
|
||||
ManageRepos: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
},
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: subscription.SubManConfig{
|
||||
Rhsmcertd: subscription.SubManRHSMCertdConfig{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
},
|
||||
// do not disable the redhat.repo management if the user
|
||||
// explicitly request the system to be subscribed
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
return ic.InheritFrom(baseGCEImageConfig())
|
||||
}
|
||||
|
||||
func gceCommonPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
ps := rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
|
|
@ -264,16 +213,7 @@ func gceCommonPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
return ps
|
||||
}
|
||||
|
||||
// GCE BYOS image
|
||||
// GCE image
|
||||
func gcePackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return gceCommonPackageSet(t)
|
||||
}
|
||||
|
||||
// GCE RHUI image
|
||||
func gceRhuiPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
||||
return rpmmd.PackageSet{
|
||||
Include: []string{
|
||||
"google-rhui-client-rhel9",
|
||||
},
|
||||
}.Append(gceCommonPackageSet(t))
|
||||
}
|
||||
|
|
|
|||
4
vendor/github.com/osbuild/images/pkg/image/bootc_disk.go
generated
vendored
4
vendor/github.com/osbuild/images/pkg/image/bootc_disk.go
generated
vendored
|
|
@ -75,6 +75,9 @@ func (img *BootcDiskImage) InstantiateManifestFromContainers(m *manifest.Manifes
|
|||
vmdkPipeline := manifest.NewVMDK(hostPipeline, rawImage)
|
||||
vmdkPipeline.SetFilename(fmt.Sprintf("%s.vmdk", fileBasename))
|
||||
|
||||
vhdPipeline := manifest.NewVPC(hostPipeline, rawImage)
|
||||
vhdPipeline.SetFilename(fmt.Sprintf("%s.vhd", fileBasename))
|
||||
|
||||
ovfPipeline := manifest.NewOVF(hostPipeline, vmdkPipeline)
|
||||
tarPipeline := manifest.NewTar(hostPipeline, ovfPipeline, "archive")
|
||||
tarPipeline.Format = osbuild.TarArchiveFormatUstar
|
||||
|
|
@ -84,6 +87,7 @@ func (img *BootcDiskImage) InstantiateManifestFromContainers(m *manifest.Manifes
|
|||
fmt.Sprintf("%s.ovf", fileBasename),
|
||||
fmt.Sprintf("%s.mf", fileBasename),
|
||||
fmt.Sprintf("%s.vmdk", fileBasename),
|
||||
fmt.Sprintf("%s.vhd", fileBasename),
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
5
vendor/github.com/osbuild/images/pkg/manifest/anaconda_installer_iso_tree.go
generated
vendored
5
vendor/github.com/osbuild/images/pkg/manifest/anaconda_installer_iso_tree.go
generated
vendored
|
|
@ -513,6 +513,11 @@ reboot --eject
|
|||
// Workaround for lack of --target-imgref in Anaconda, xref https://github.com/osbuild/images/issues/380
|
||||
hardcodedKickstartBits += fmt.Sprintf(`%%post
|
||||
bootc switch --mutate-in-place --transport %s %s
|
||||
|
||||
# used during automatic image testing as finished marker
|
||||
if [ -c /dev/ttyS0 ]; then
|
||||
echo "Install finished" > /dev/ttyS0
|
||||
fi
|
||||
%%end
|
||||
`, targetContainerTransport, p.containerSpec.LocalName)
|
||||
|
||||
|
|
|
|||
13
vendor/github.com/osbuild/images/pkg/manifest/vpc.go
generated
vendored
13
vendor/github.com/osbuild/images/pkg/manifest/vpc.go
generated
vendored
|
|
@ -5,14 +5,14 @@ import (
|
|||
"github.com/osbuild/images/pkg/osbuild"
|
||||
)
|
||||
|
||||
// A VPC turns a raw image file into qemu-based image format, such as qcow2.
|
||||
// A VPC turns a raw image file into qemu-based image format, such as vhd.
|
||||
type VPC struct {
|
||||
Base
|
||||
filename string
|
||||
|
||||
ForceSize *bool
|
||||
|
||||
imgPipeline *RawImage
|
||||
imgPipeline FilePipeline
|
||||
}
|
||||
|
||||
func (p VPC) Filename() string {
|
||||
|
|
@ -26,13 +26,18 @@ func (p *VPC) SetFilename(filename string) {
|
|||
// 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 NewVPC(buildPipeline Build, imgPipeline *RawImage) *VPC {
|
||||
func NewVPC(buildPipeline Build, imgPipeline FilePipeline) *VPC {
|
||||
p := &VPC{
|
||||
Base: NewBase("vpc", buildPipeline),
|
||||
imgPipeline: imgPipeline,
|
||||
filename: "image.vhd",
|
||||
}
|
||||
buildPipeline.addDependent(p)
|
||||
// vpc can run outside the build pipeline for e.g. "bib"
|
||||
if buildPipeline != nil {
|
||||
buildPipeline.addDependent(p)
|
||||
} else {
|
||||
imgPipeline.Manifest().addPipeline(p)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
|
|
|
|||
2
vendor/github.com/osbuild/images/pkg/osbuild/rhsm_facts_stage.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/osbuild/rhsm_facts_stage.go
generated
vendored
|
|
@ -6,7 +6,7 @@ type RHSMFactsStageOptions struct {
|
|||
|
||||
type RHSMFacts struct {
|
||||
ApiType string `json:"image-builder.osbuild-composer.api-type"`
|
||||
OpenSCAPProfileID string `json:"image-builder.insights.openscap-profile-id,omitempty"`
|
||||
OpenSCAPProfileID string `json:"image-builder.insights.compliance-profile-id,omitempty"`
|
||||
CompliancePolicyID string `json:"image-builder.insights.compliance-policy-id,omitempty"`
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue