diff --git a/internal/distro/image_config.go b/internal/distro/image_config.go index 59b01297e..2511c3df9 100644 --- a/internal/distro/image_config.go +++ b/internal/distro/image_config.go @@ -46,6 +46,7 @@ type ImageConfig struct { DNFAutomaticConfig *osbuild2.DNFAutomaticConfigStageOptions YUMRepos []*osbuild2.YumReposStageOptions Firewall *osbuild2.FirewallStageOptions + UdevRules *osbuild2.UdevRulesStageOptions } // InheritFrom inherits unset values from the provided parent configuration and @@ -137,6 +138,9 @@ func (c *ImageConfig) InheritFrom(parentConfig *ImageConfig) *ImageConfig { if finalConfig.Firewall == nil { finalConfig.Firewall = parentConfig.Firewall } + if finalConfig.UdevRules == nil { + finalConfig.UdevRules = parentConfig.UdevRules + } } return &finalConfig } diff --git a/internal/distro/rhel84/distro_backports.go b/internal/distro/rhel84/distro_backports.go index a6c528994..119e6790a 100644 --- a/internal/distro/rhel84/distro_backports.go +++ b/internal/distro/rhel84/distro_backports.go @@ -332,6 +332,10 @@ func osPipelineRhel86(t *imageTypeS2, p.AddStage(osbuild.NewYumReposStage(yumRepo)) } + if udevRules := imageConfig.UdevRules; udevRules != nil { + p.AddStage(osbuild.NewUdevRulesStage(udevRules)) + } + if pt != nil { p = t.prependKernelCmdlineStage(p, pt) p.AddStage(osbuild.NewFSTabStage(osbuild.NewFSTabStageOptions(pt))) diff --git a/internal/distro/rhel85/pipelines.go b/internal/distro/rhel85/pipelines.go index ce8005f9c..e7d18bc9d 100644 --- a/internal/distro/rhel85/pipelines.go +++ b/internal/distro/rhel85/pipelines.go @@ -667,6 +667,10 @@ func osPipelineRhel86(t *imageType, p.AddStage(osbuild.NewYumReposStage(yumRepo)) } + if udevRules := imageConfig.UdevRules; udevRules != nil { + p.AddStage(osbuild.NewUdevRulesStage(udevRules)) + } + if pt != nil { p = prependKernelCmdlineStage(p, t, pt) p.AddStage(osbuild.NewFSTabStage(osbuild.NewFSTabStageOptions(pt))) diff --git a/internal/distro/rhel86/pipelines.go b/internal/distro/rhel86/pipelines.go index 5bc6d2ac3..faa5772a0 100644 --- a/internal/distro/rhel86/pipelines.go +++ b/internal/distro/rhel86/pipelines.go @@ -602,6 +602,10 @@ func osPipeline(t *imageType, p.AddStage(osbuild.NewYumReposStage(yumRepo)) } + if udevRules := imageConfig.UdevRules; udevRules != nil { + p.AddStage(osbuild.NewUdevRulesStage(udevRules)) + } + if pt != nil { p = prependKernelCmdlineStage(p, t, pt) p.AddStage(osbuild.NewFSTabStage(osbuild.NewFSTabStageOptions(pt))) diff --git a/internal/distro/rhel90/pipelines.go b/internal/distro/rhel90/pipelines.go index faa9dfcdb..6a8bafc58 100644 --- a/internal/distro/rhel90/pipelines.go +++ b/internal/distro/rhel90/pipelines.go @@ -594,6 +594,10 @@ func osPipeline(t *imageType, p.AddStage(osbuild.NewYumReposStage(yumRepo)) } + if udevRules := imageConfig.UdevRules; udevRules != nil { + p.AddStage(osbuild.NewUdevRulesStage(udevRules)) + } + if pt != nil { kernelOptions := osbuild.GenImageKernelOptions(pt) if t.kernelOptions != "" {