go mod: update osbuild/images to v0.139.0

Includes:

0.139.0

RHEL 9 Azure kernel command line arguments (#1457)
  Author: Achilleas Koutsou, Reviewers: Ondřej Budai, Simon de Vlieger, Tomáš Hozza

0.138.0

Update dependencies 2025-04-24 (#1460)
  Author: SchutzBot, Reviewers: Achilleas Koutsou
ci: add missing gh tool to gobump action (#1452)
  Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger
ci: keep GITHUB_TOKEN in gobump action (#1458)
  Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger
ci: remove unnecessary git config command (#1451)
  Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou
fedora: image type names follow variants (#1233)
  Author: Simon de Vlieger, Reviewers: Achilleas Koutsou
many: propagate masked services (#1456)
  Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Ondřej Budai, Tomáš Hozza
This commit is contained in:
Ondřej Budai 2025-04-24 18:13:57 +02:00 committed by Tomáš Hozza
parent 7c0aecdd82
commit 31d1665f7e
15 changed files with 118 additions and 70 deletions

6
go.mod
View file

@ -30,7 +30,7 @@ require (
github.com/getsentry/sentry-go v0.28.1
github.com/gobwas/glob v0.2.3
github.com/golang-jwt/jwt/v4 v4.5.2
github.com/google/go-cmp v0.6.0
github.com/google/go-cmp v0.7.0
github.com/google/uuid v1.6.0
github.com/gophercloud/gophercloud v1.14.0
github.com/hashicorp/go-retryablehttp v0.7.7
@ -45,7 +45,7 @@ require (
github.com/openshift-online/ocm-sdk-go v0.1.438
github.com/oracle/oci-go-sdk/v54 v54.0.0
github.com/osbuild/blueprint v1.6.0
github.com/osbuild/images v0.137.0
github.com/osbuild/images v0.139.0
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20240814102216-0239db53236d
github.com/osbuild/pulp-client v0.1.0
github.com/prometheus/client_golang v1.20.5
@ -201,7 +201,7 @@ require (
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect
github.com/oklog/ulid v1.3.1 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/opencontainers/selinux v1.11.1 // indirect
github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f // indirect

11
go.sum
View file

@ -337,8 +337,9 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo=
github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8=
github.com/google/go-intervals v0.0.2 h1:FGrVEiUnTRKR8yE04qzXYaJMtnIYqobR5QbblK3ixcM=
@ -565,8 +566,8 @@ github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opencontainers/selinux v1.11.1 h1:nHFvthhM0qY8/m+vfhJylliSshm8G1jJ2jDMcgULaH8=
@ -577,8 +578,8 @@ github.com/oracle/oci-go-sdk/v54 v54.0.0 h1:CDLjeSejv2aDpElAJrhKpi6zvT/zhZCZuXch
github.com/oracle/oci-go-sdk/v54 v54.0.0/go.mod h1:+t+yvcFGVp+3ZnztnyxqXfQDsMlq8U25faBLa+mqCMc=
github.com/osbuild/blueprint v1.6.0 h1:HUV1w/dMxpgqOgVtHhfTZE3zRmWQkuW/qTfx9smKImI=
github.com/osbuild/blueprint v1.6.0/go.mod h1:0d3dlY8aSJ6jM6NHwBmJFF1VIySsp/GsDpcJQ0yrOqM=
github.com/osbuild/images v0.137.0 h1:ypC/0BIkyoPbX8tSfobwoVcc4ExlEZVowgu7HbPCNfk=
github.com/osbuild/images v0.137.0/go.mod h1:Ag87vmyxooiPQBJEDILbypG8/SRIear75YA78NwLix0=
github.com/osbuild/images v0.139.0 h1:GAbWHI3F+z862d/4yvG+HPV3YesTghaqObhWikROjyU=
github.com/osbuild/images v0.139.0/go.mod h1:CLuNhj3sO++pzzVzd2hkJ7L3rHzm6XY9zpm+0ERiY6A=
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20240814102216-0239db53236d h1:r9BFPDv0uuA9k1947Jybcxs36c/pTywWS1gjeizvtcQ=
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20240814102216-0239db53236d/go.mod h1:zR1iu/hOuf+OQNJlk70tju9IqzzM4ycq0ectkFBm94U=
github.com/osbuild/pulp-client v0.1.0 h1:L0C4ezBJGTamN3BKdv+rKLuq/WxXJbsFwz/Hj7aEmJ8=

View file

@ -19,6 +19,7 @@ const (
tbFunc // func(T) bool
ttbFunc // func(T, T) bool
ttiFunc // func(T, T) int
trbFunc // func(T, R) bool
tibFunc // func(T, I) bool
trFunc // func(T) R
@ -28,11 +29,13 @@ const (
Transformer = trFunc // func(T) R
ValueFilter = ttbFunc // func(T, T) bool
Less = ttbFunc // func(T, T) bool
Compare = ttiFunc // func(T, T) int
ValuePredicate = tbFunc // func(T) bool
KeyValuePredicate = trbFunc // func(T, R) bool
)
var boolType = reflect.TypeOf(true)
var intType = reflect.TypeOf(0)
// IsType reports whether the reflect.Type is of the specified function type.
func IsType(t reflect.Type, ft funcType) bool {
@ -49,6 +52,10 @@ func IsType(t reflect.Type, ft funcType) bool {
if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == boolType {
return true
}
case ttiFunc: // func(T, T) int
if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == intType {
return true
}
case trbFunc: // func(T, R) bool
if ni == 2 && no == 1 && t.Out(0) == boolType {
return true

View file

@ -232,7 +232,15 @@ func (validator) apply(s *state, vx, vy reflect.Value) {
if t := s.curPath.Index(-2).Type(); t.Name() != "" {
// Named type with unexported fields.
name = fmt.Sprintf("%q.%v", t.PkgPath(), t.Name()) // e.g., "path/to/package".MyType
if _, ok := reflect.New(t).Interface().(error); ok {
isProtoMessage := func(t reflect.Type) bool {
m, ok := reflect.PointerTo(t).MethodByName("ProtoReflect")
return ok && m.Type.NumIn() == 1 && m.Type.NumOut() == 1 &&
m.Type.Out(0).PkgPath() == "google.golang.org/protobuf/reflect/protoreflect" &&
m.Type.Out(0).Name() == "Message"
}
if isProtoMessage(t) {
help = `consider using "google.golang.org/protobuf/testing/protocmp".Transform to compare proto.Message types`
} else if _, ok := reflect.New(t).Interface().(error); ok {
help = "consider using cmpopts.EquateErrors to compare error values"
} else if t.Comparable() {
help = "consider using cmpopts.EquateComparable to compare comparable Go types"

View file

@ -22,7 +22,7 @@ const (
// VersionMinor is for functionality in a backwards-compatible manner
VersionMinor = 1
// VersionPatch is for backwards-compatible bug fixes
VersionPatch = 0
VersionPatch = 1
// VersionDev indicates development branch. Releases will be empty string.
VersionDev = ""

View file

@ -6,6 +6,7 @@ type Custom struct {
EnabledModules []string
Services []string
DisabledServices []string
MaskedServices []string
}
func (p *Custom) GetPackages() []string {
@ -20,8 +21,12 @@ func (p *Custom) GetServices() []string {
return p.Services
}
// TODO: Does this belong here? What kind of workload requires
// services to be disabled?
// TODO: Do these belong here? What kind of workload requires
// services to be disabled or masked?
func (p *Custom) GetDisabledServices() []string {
return p.DisabledServices
}
func (p *Custom) GetMaskedServices() []string {
return p.MaskedServices
}

View file

@ -8,6 +8,7 @@ type Workload interface {
GetRepos() []rpmmd.RepoConfig
GetServices() []string
GetDisabledServices() []string
GetMaskedServices() []string
}
type BaseWorkload struct {
@ -33,3 +34,7 @@ func (p BaseWorkload) GetServices() []string {
func (p BaseWorkload) GetDisabledServices() []string {
return []string{}
}
func (p BaseWorkload) GetMaskedServices() []string {
return []string{}
}

View file

@ -272,18 +272,19 @@ image_config:
timezone: "UTC"
image_types:
qcow2: &qcow2
server_qcow2: &server_qcow2
partition_table:
<<: *default_partition_tables
package_sets:
- *cloud_base_pkgset
- include:
- "qemu-guest-agent"
ami: *qcow2
oci: *qcow2
openstack: *qcow2
- *cloud_base_pkgset
- include:
- "qemu-guest-agent"
vhd:
server_ami: *server_qcow2
server_oci: *server_qcow2
server_openstack: *server_qcow2
server_vhd:
partition_table:
<<: *default_partition_tables
package_sets:
@ -291,7 +292,7 @@ image_types:
- include:
- "WALinuxAgent"
vmdk: &vmdk
server_vmdk: &server_vmdk
partition_table:
<<: *default_partition_tables
package_sets:
@ -313,7 +314,7 @@ image_types:
- "grubby-deprecated"
- "extlinux-bootloader"
ova: *vmdk
server_ova: *server_vmdk
# NOTE: keep in sync with official fedora-iot definitions:
# https://pagure.io/fedora-iot/ostree/blob/main/f/fedora-iot-base.yaml
@ -437,7 +438,7 @@ image_types:
iot_container: *iot_commit
iot_raw_image:
iot_raw_xz:
partition_table:
<<: *iot_base_partition_tables
partition_table_override:
@ -447,7 +448,7 @@ image_types:
- partition_index: 2
fstab_options: "defaults,ro"
iot_qcow2_image:
iot_qcow2:
partition_table:
<<: *iot_base_partition_tables
@ -722,7 +723,7 @@ image_types:
- include:
- "fedora-release-iot"
live_installer:
workstation_live_installer:
package_sets:
- include:
- "@workstation-product-environment"
@ -754,7 +755,7 @@ image_types:
include:
- "anaconda-webui"
image_installer: *anaconda
minimal_installer: *anaconda
container: &container
package_sets:
@ -878,6 +879,7 @@ image_types:
exclude:
- "firewalld"
minimal_raw_zst: *minimal_raw
minimal_raw_xz: *minimal_raw
iot_simplified_installer:
partition_table:

View file

@ -70,14 +70,14 @@ func ostreeDeploymentKernelOptions() []string {
// Image Definitions
func mkImageInstallerImgType(d distribution) imageType {
return imageType{
name: "image-installer",
nameAliases: []string{"fedora-image-installer"},
name: "minimal-installer",
nameAliases: []string{"image-installer", "fedora-image-installer"},
filename: "installer.iso",
mimeType: "application/x-iso9660-image",
packageSets: map[string]packageSetFunc{
osPkgsKey: func(t *imageType) (rpmmd.PackageSet, error) {
// use the minimal raw image type for the OS package set
return defs.PackageSet(t, "minimal-raw", VersionReplacements())
return defs.PackageSet(t, "minimal-raw-xz", VersionReplacements())
},
installerPkgsKey: packageSetLoader,
},
@ -99,8 +99,8 @@ func mkImageInstallerImgType(d distribution) imageType {
func mkLiveInstallerImgType(d distribution) imageType {
return imageType{
name: "live-installer",
nameAliases: []string{},
name: "workstation-live-installer",
nameAliases: []string{"live-installer"},
filename: "live-installer.iso",
mimeType: "application/x-iso9660-image",
packageSets: map[string]packageSetFunc{
@ -249,8 +249,8 @@ func mkIotSimplifiedInstallerImgType(d distribution) imageType {
func mkIotRawImgType(d distribution) imageType {
return imageType{
name: "iot-raw-image",
nameAliases: []string{"fedora-iot-raw-image"},
name: "iot-raw-xz",
nameAliases: []string{"iot-raw-image", "fedora-iot-raw-image"},
filename: "image.raw.xz",
compression: "xz",
mimeType: "application/xz",
@ -282,7 +282,8 @@ func mkIotRawImgType(d distribution) imageType {
func mkIotQcow2ImgType(d distribution) imageType {
return imageType{
name: "iot-qcow2-image",
name: "iot-qcow2",
nameAliases: []string{"iot-qcow2-image"}, // kept for backwards compatibility
filename: "image.qcow2",
mimeType: "application/x-qemu-disk",
packageSets: map[string]packageSetFunc{},
@ -309,7 +310,8 @@ func mkIotQcow2ImgType(d distribution) imageType {
func mkQcow2ImgType(d distribution) imageType {
return imageType{
name: "qcow2",
name: "server-qcow2",
nameAliases: []string{"qcow2"}, // kept for backwards compatibility
filename: "disk.qcow2",
mimeType: "application/x-qemu-disk",
environment: &environment.KVM{},
@ -344,9 +346,10 @@ var (
func mkVmdkImgType(d distribution) imageType {
return imageType{
name: "vmdk",
filename: "disk.vmdk",
mimeType: "application/x-vmdk",
name: "server-vmdk",
nameAliases: []string{"vmdk"}, // kept for backwards compatibility
filename: "disk.vmdk",
mimeType: "application/x-vmdk",
packageSets: map[string]packageSetFunc{
osPkgsKey: packageSetLoader,
},
@ -364,9 +367,10 @@ func mkVmdkImgType(d distribution) imageType {
func mkOvaImgType(d distribution) imageType {
return imageType{
name: "ova",
filename: "image.ova",
mimeType: "application/ovf",
name: "server-ova",
nameAliases: []string{"ova"}, // kept for backwards compatibility
filename: "image.ova",
mimeType: "application/ovf",
packageSets: map[string]packageSetFunc{
osPkgsKey: packageSetLoader,
},
@ -407,9 +411,10 @@ func mkContainerImgType(d distribution) imageType {
func mkWslImgType(d distribution) imageType {
return imageType{
name: "wsl",
filename: "wsl.tar",
mimeType: "application/x-tar",
name: "wsl",
nameAliases: []string{"server-wsl"}, // this is the eventual name, and `wsl` the alias but we've been having issues with CI renaming it
filename: "wsl.tar",
mimeType: "application/x-tar",
packageSets: map[string]packageSetFunc{
osPkgsKey: packageSetLoader,
},
@ -447,7 +452,8 @@ func mkWslImgType(d distribution) imageType {
func mkMinimalRawImgType(d distribution) imageType {
it := imageType{
name: "minimal-raw",
name: "minimal-raw-xz",
nameAliases: []string{"minimal-raw"}, // kept for backwards compatibility
filename: "disk.raw.xz",
compression: "xz",
mimeType: "application/xz",
@ -691,10 +697,12 @@ func newDistro(version int) distro.Distro {
qcow2ImgType := mkQcow2ImgType(rd)
ociImgType := qcow2ImgType
ociImgType.name = "oci"
ociImgType.name = "server-oci"
ociImgType.nameAliases = []string{"oci"} // kept for backwards compatibility
amiImgType := qcow2ImgType
amiImgType.name = "ami"
amiImgType.name = "server-ami"
amiImgType.nameAliases = []string{"ami"} // kept for backwards compatibility
amiImgType.filename = "image.raw"
amiImgType.mimeType = "application/octet-stream"
amiImgType.payloadPipelines = []string{"os", "image"}
@ -702,10 +710,12 @@ func newDistro(version int) distro.Distro {
amiImgType.environment = &environment.EC2{}
openstackImgType := qcow2ImgType
openstackImgType.name = "openstack"
openstackImgType.name = "server-openstack"
openstackImgType.nameAliases = []string{"openstack"} // kept for backwards compatibility
vhdImgType := qcow2ImgType
vhdImgType.name = "vhd"
vhdImgType.name = "server-vhd"
vhdImgType.nameAliases = []string{"vhd"} // kept for backwards compatibility
vhdImgType.filename = "disk.vhd"
vhdImgType.mimeType = "application/x-vhd"
vhdImgType.payloadPipelines = []string{"os", "image", "vpc"}
@ -725,6 +735,7 @@ func newDistro(version int) distro.Distro {
minimalrawZstdImgType := mkMinimalRawImgType(rd)
minimalrawZstdImgType.name = "minimal-raw-zst"
minimalrawZstdImgType.nameAliases = []string{}
minimalrawZstdImgType.filename = "disk.raw.zst"
minimalrawZstdImgType.mimeType = "application/zstd"
minimalrawZstdImgType.compression = "zstd"

View file

@ -286,6 +286,7 @@ func (t *imageType) Manifest(bp *blueprint.Blueprint,
if services := bp.Customizations.GetServices(); services != nil {
cw.Services = services.Enabled
cw.DisabledServices = services.Disabled
cw.MaskedServices = services.Masked
}
w = cw
}
@ -361,7 +362,7 @@ func (t *imageType) checkOptions(bp *blueprint.Blueprint, options distro.ImageOp
}
}
if t.name == "iot-raw-image" || t.name == "iot-qcow2-image" {
if t.name == "iot-raw-xz" || t.name == "iot-qcow2" {
allowed := []string{"User", "Group", "Directories", "Files", "Services", "FIPS"}
if err := customizations.CheckAllowed(allowed...); err != nil {
return warnings, fmt.Errorf(distro.UnsupportedCustomizationError, t.name, strings.Join(allowed, ", "))
@ -410,13 +411,13 @@ func (t *imageType) checkOptions(bp *blueprint.Blueprint, options distro.ImageOp
return warnings, fmt.Errorf("ignition.firstboot requires a provisioning url")
}
}
} else if t.name == "iot-installer" || t.name == "image-installer" {
} else if t.name == "iot-installer" || t.name == "minimal-installer" {
// "Installer" is actually not allowed for image-installer right now, but this is checked at the end
allowed := []string{"User", "Group", "FIPS", "Installer", "Timezone", "Locale"}
if err := customizations.CheckAllowed(allowed...); err != nil {
return warnings, fmt.Errorf(distro.UnsupportedCustomizationError, t.name, strings.Join(allowed, ", "))
}
} else if t.name == "live-installer" {
} else if t.name == "workstation-live-installer" {
allowed := []string{"Installer"}
if err := customizations.CheckAllowed(allowed...); err != nil {
return warnings, fmt.Errorf(distro.NoCustomizationsAllowedError, t.name)

View file

@ -353,6 +353,7 @@ func (t *ImageType) Manifest(bp *blueprint.Blueprint,
if services := bp.Customizations.GetServices(); services != nil {
cw.Services = services.Enabled
cw.DisabledServices = services.Disabled
cw.MaskedServices = services.Masked
}
w = cw
}

View file

@ -16,7 +16,7 @@ import (
)
// Azure image type
func mkAzureImgType(rd *rhel.Distribution) *rhel.ImageType {
func mkAzureImgType(rd *rhel.Distribution, a arch.Arch) *rhel.ImageType {
it := rhel.NewImageType(
"vhd",
"disk.vhd",
@ -30,7 +30,7 @@ func mkAzureImgType(rd *rhel.Distribution) *rhel.ImageType {
[]string{"vpc"},
)
it.KernelOptions = defaultAzureKernelOptions(rd)
it.KernelOptions = defaultAzureKernelOptions(rd, a)
it.Bootable = true
it.DefaultSize = 4 * datasizes.GibiByte
it.DefaultImageConfig = defaultAzureImageConfig(rd)
@ -40,7 +40,7 @@ func mkAzureImgType(rd *rhel.Distribution) *rhel.ImageType {
}
// Azure RHEL-internal image type
func mkAzureInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
func mkAzureInternalImgType(rd *rhel.Distribution, a arch.Arch) *rhel.ImageType {
it := rhel.NewImageType(
"azure-rhui",
"disk.vhd.xz",
@ -55,7 +55,7 @@ func mkAzureInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
)
it.Compression = "xz"
it.KernelOptions = defaultAzureKernelOptions(rd)
it.KernelOptions = defaultAzureKernelOptions(rd, a)
it.Bootable = true
it.DefaultSize = 64 * datasizes.GibiByte
it.DefaultImageConfig = defaultAzureImageConfig(rd)
@ -64,7 +64,7 @@ func mkAzureInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
return it
}
func mkAzureSapInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
func mkAzureSapInternalImgType(rd *rhel.Distribution, a arch.Arch) *rhel.ImageType {
it := rhel.NewImageType(
"azure-sap-rhui",
"disk.vhd.xz",
@ -79,7 +79,7 @@ func mkAzureSapInternalImgType(rd *rhel.Distribution) *rhel.ImageType {
)
it.Compression = "xz"
it.KernelOptions = defaultAzureKernelOptions(rd)
it.KernelOptions = defaultAzureKernelOptions(rd, a)
it.Bootable = true
it.DefaultSize = 64 * datasizes.GibiByte
it.DefaultImageConfig = sapAzureImageConfig(rd)
@ -324,10 +324,16 @@ func azureInternalBasePartitionTables(t *rhel.ImageType) (disk.PartitionTable, b
// IMAGE CONFIG
// use loglevel=3 as described in the RHEL documentation and used in existing RHEL images built by MSFT
func defaultAzureKernelOptions(rd *rhel.Distribution) []string {
kargs := []string{"ro", "loglevel=3", "console=tty1", "console=ttyS0", "earlyprintk=ttyS0", "rootdelay=300"}
func defaultAzureKernelOptions(rd *rhel.Distribution, a arch.Arch) []string {
kargs := []string{"ro", "loglevel=3"}
switch a {
case arch.ARCH_AARCH64:
kargs = append(kargs, "console=ttyAMA0")
case arch.ARCH_X86_64:
kargs = append(kargs, "console=tty1", "console=ttyS0", "earlyprintk=ttyS0", "rootdelay=300")
}
if rd.IsRHEL() && common.VersionGreaterThanOrEqual(rd.OsVersion(), "9.6") {
kargs = append(kargs, "nvme_core.io_timeout=240")
kargs = append(kargs, "nvme_core.io_timeout=240", "net.ifnames=0")
}
return kargs
}

View file

@ -229,8 +229,8 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
},
}
x86_64.AddImageTypes(azureX64Platform, mkAzureImgType(rd))
aarch64.AddImageTypes(azureAarch64Platform, mkAzureImgType(rd))
x86_64.AddImageTypes(azureX64Platform, mkAzureImgType(rd, azureX64Platform.GetArch()))
aarch64.AddImageTypes(azureAarch64Platform, mkAzureImgType(rd, azureAarch64Platform.GetArch()))
gceX86Platform := &platform.X86{
UEFIVendor: rd.Vendor(),
@ -329,10 +329,10 @@ func newDistro(name string, major, minor int) *rhel.Distribution {
)
if rd.IsRHEL() { // RHEL-only (non-CentOS) image types
x86_64.AddImageTypes(azureX64Platform, mkAzureInternalImgType(rd))
aarch64.AddImageTypes(azureAarch64Platform, mkAzureInternalImgType(rd))
x86_64.AddImageTypes(azureX64Platform, mkAzureInternalImgType(rd, azureX64Platform.GetArch()))
aarch64.AddImageTypes(azureAarch64Platform, mkAzureInternalImgType(rd, azureAarch64Platform.GetArch()))
x86_64.AddImageTypes(azureX64Platform, mkAzureSapInternalImgType(rd))
x86_64.AddImageTypes(azureX64Platform, mkAzureSapInternalImgType(rd, azureX64Platform.GetArch()))
// add ec2 image types to RHEL distro only
x86_64.AddImageTypes(ec2X86Platform, mkEc2ImgTypeX86_64(), mkEc2HaImgTypeX86_64(), mkEC2SapImgTypeX86_64(rd.OsVersion()))

View file

@ -848,6 +848,7 @@ func (p *OS) serialize() osbuild.Pipeline {
if p.Workload != nil {
enabledServices = append(enabledServices, p.Workload.GetServices()...)
disabledServices = append(disabledServices, p.Workload.GetDisabledServices()...)
maskedServices = append(maskedServices, p.Workload.GetMaskedServices()...)
}
if len(enabledServices) != 0 ||
len(disabledServices) != 0 ||

8
vendor/modules.txt vendored
View file

@ -762,8 +762,8 @@ github.com/golang/groupcache/lru
# github.com/golang/protobuf v1.5.4
## explicit; go 1.17
github.com/golang/protobuf/proto
# github.com/google/go-cmp v0.6.0
## explicit; go 1.13
# github.com/google/go-cmp v0.7.0
## explicit; go 1.21
github.com/google/go-cmp/cmp
github.com/google/go-cmp/cmp/internal/diff
github.com/google/go-cmp/cmp/internal/flags
@ -1017,7 +1017,7 @@ github.com/oklog/ulid
# github.com/opencontainers/go-digest v1.0.0
## explicit; go 1.13
github.com/opencontainers/go-digest
# github.com/opencontainers/image-spec v1.1.0
# github.com/opencontainers/image-spec v1.1.1
## explicit; go 1.18
github.com/opencontainers/image-spec/specs-go
github.com/opencontainers/image-spec/specs-go/v1
@ -1049,7 +1049,7 @@ github.com/oracle/oci-go-sdk/v54/workrequests
## explicit; go 1.22.8
github.com/osbuild/blueprint/internal/common
github.com/osbuild/blueprint/pkg/blueprint
# github.com/osbuild/images v0.137.0
# github.com/osbuild/images v0.139.0
## explicit; go 1.22.8
github.com/osbuild/images/data/dependencies
github.com/osbuild/images/data/repositories