@@ -83,6 +83,15 @@ func (info *reconcileInfo) publishEvent(reason, message string) {
8383 info .events = append (info .events , info .host .NewEvent (reason , message ))
8484}
8585
86+ // return the PreprovisioningKernelParams from the reconciliation info.
87+ func retrievePreprovisioningKernelParamsSpec (info * reconcileInfo ) string {
88+ preprovisioningKernelParams := ""
89+ if info .host .Spec .PreprovisioningKernelParams != "" {
90+ preprovisioningKernelParams = info .host .Spec .PreprovisioningKernelParams
91+ }
92+ return preprovisioningKernelParams
93+ }
94+
8695// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts,verbs=get;list;watch;create;update;patch;delete
8796// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts/status,verbs=get;update;patch
8897// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts/finalizers,verbs=update
@@ -839,15 +848,15 @@ func (r *BareMetalHostReconciler) registerHost(prov provisioner.Provisioner, inf
839848
840849 provResult , provID , err := prov .Register (
841850 provisioner.ManagementAccessData {
842- BootMode : info .host .Status .Provisioning .BootMode ,
843- AutomatedCleaningMode : info .host .Spec .AutomatedCleaningMode ,
844- State : info .host .Status .Provisioning .State ,
845- CurrentImage : getCurrentImage (info .host ),
846- PreprovisioningImage : preprovImg ,
847- PreprovisioningNetworkData : preprovisioningNetworkData ,
848- HasCustomDeploy : hasCustomDeploy (info . host ),
849- DisablePowerOff : info .host . Spec . DisablePowerOff ,
850- CPUArchitecture : getHostArchitecture ( info .host ) ,
851+ BootMode : info .host .Status .Provisioning .BootMode ,
852+ AutomatedCleaningMode : info .host .Spec .AutomatedCleaningMode ,
853+ State : info .host .Status .Provisioning .State ,
854+ CurrentImage : getCurrentImage (info .host ),
855+ PreprovisioningImage : preprovImg ,
856+ PreprovisioningNetworkData : preprovisioningNetworkData ,
857+ PreprovisioningKernelParams : retrievePreprovisioningKernelParamsSpec (info ),
858+ HasCustomDeploy : hasCustomDeploy ( info .host ) ,
859+ DisablePowerOff : info .host . Spec . DisablePowerOff ,
851860 },
852861 credsChanged ,
853862 info .host .Status .ErrorType == metal3api .RegistrationError )
@@ -987,7 +996,8 @@ func (r *BareMetalHostReconciler) actionInspecting(prov provisioner.Provisioner,
987996
988997 provResult , started , details , err := prov .InspectHardware (
989998 provisioner.InspectData {
990- BootMode : info .host .Status .Provisioning .BootMode ,
999+ BootMode : info .host .Status .Provisioning .BootMode ,
1000+ PreprovisioningKernelParams : retrievePreprovisioningKernelParamsSpec (info ),
9911001 },
9921002 info .host .Status .ErrorType == metal3api .InspectionError ,
9931003 refresh ,
@@ -1157,10 +1167,11 @@ func (r *BareMetalHostReconciler) actionPreparing(prov provisioner.Provisioner,
11571167 }
11581168
11591169 prepareData := provisioner.PrepareData {
1160- TargetRAIDConfig : newStatus .Provisioning .RAID .DeepCopy (),
1161- ActualRAIDConfig : info .host .Status .Provisioning .RAID .DeepCopy (),
1162- RootDeviceHints : newStatus .Provisioning .RootDeviceHints .DeepCopy (),
1163- FirmwareConfig : newStatus .Provisioning .Firmware .DeepCopy (),
1170+ TargetRAIDConfig : newStatus .Provisioning .RAID .DeepCopy (),
1171+ ActualRAIDConfig : info .host .Status .Provisioning .RAID .DeepCopy (),
1172+ RootDeviceHints : newStatus .Provisioning .RootDeviceHints .DeepCopy (),
1173+ FirmwareConfig : newStatus .Provisioning .Firmware .DeepCopy (),
1174+ PreprovisioningKernelParams : retrievePreprovisioningKernelParamsSpec (info ),
11641175 }
11651176 // When manual cleaning fails, we think that the existing RAID configuration
11661177 // is invalid and needs to be reconfigured.
@@ -1282,12 +1293,13 @@ func (r *BareMetalHostReconciler) actionProvisioning(prov provisioner.Provisione
12821293 }
12831294
12841295 provResult , err := prov .Provision (provisioner.ProvisionData {
1285- Image : image ,
1286- CustomDeploy : info .host .Spec .CustomDeploy .DeepCopy (),
1287- HostConfig : hostConf ,
1288- BootMode : info .host .Status .Provisioning .BootMode ,
1289- HardwareProfile : hwProf ,
1290- RootDeviceHints : info .host .Status .Provisioning .RootDeviceHints .DeepCopy (),
1296+ Image : image ,
1297+ CustomDeploy : info .host .Spec .CustomDeploy .DeepCopy (),
1298+ HostConfig : hostConf ,
1299+ BootMode : info .host .Status .Provisioning .BootMode ,
1300+ HardwareProfile : hwProf ,
1301+ RootDeviceHints : info .host .Status .Provisioning .RootDeviceHints .DeepCopy (),
1302+ PreprovisioningKernelParams : retrievePreprovisioningKernelParamsSpec (info ),
12911303 }, forceReboot )
12921304 if err != nil {
12931305 return actionError {fmt .Errorf ("failed to provision: %w" , err )}
@@ -1403,6 +1415,7 @@ func (r *BareMetalHostReconciler) actionDeprovisioning(prov provisioner.Provisio
14031415
14041416func (r * BareMetalHostReconciler ) doServiceIfNeeded (prov provisioner.Provisioner , info * reconcileInfo , hup * metal3api.HostUpdatePolicy ) (result actionResult ) {
14051417 servicingData := provisioner.ServicingData {}
1418+ servicingData .PreprovisioningKernelParams = retrievePreprovisioningKernelParamsSpec (info )
14061419
14071420 // (NOTE)janders: since Servicing is an opt-in feature that requires HostUpdatePolicy to be created and set to onReboot
14081421 // set below booleans to false by default and change to true based on policy settings
0 commit comments