@@ -83,6 +83,14 @@ func (info *reconcileInfo) publishEvent(reason, message string) {
8383 info .events = append (info .events , info .host .NewEvent (reason , message ))
8484}
8585
86+ // return the PreprovisioningExtraKernelParams from the reconciliation info.
87+ func retrievePreprovisioningExtraKernelParamsSpec (info * reconcileInfo ) string {
88+ if info == nil || info .host == nil {
89+ return ""
90+ }
91+ return info .host .Spec .PreprovisioningExtraKernelParams
92+ }
93+
8694// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts,verbs=get;list;watch;create;update;patch;delete
8795// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts/status,verbs=get;update;patch
8896// +kubebuilder:rbac:groups=metal3.io,resources=baremetalhosts/finalizers,verbs=update
@@ -839,15 +847,16 @@ func (r *BareMetalHostReconciler) registerHost(prov provisioner.Provisioner, inf
839847
840848 provResult , provID , err := prov .Register (
841849 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 ),
850+ BootMode : info .host .Status .Provisioning .BootMode ,
851+ AutomatedCleaningMode : info .host .Spec .AutomatedCleaningMode ,
852+ State : info .host .Status .Provisioning .State ,
853+ CurrentImage : getCurrentImage (info .host ),
854+ PreprovisioningImage : preprovImg ,
855+ PreprovisioningNetworkData : preprovisioningNetworkData ,
856+ PreprovisioningExtraKernelParams : retrievePreprovisioningExtraKernelParamsSpec (info ),
857+ HasCustomDeploy : hasCustomDeploy (info .host ),
858+ DisablePowerOff : info .host .Spec .DisablePowerOff ,
859+ CPUArchitecture : getHostArchitecture (info .host ),
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+ PreprovisioningExtraKernelParams : retrievePreprovisioningExtraKernelParamsSpec (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+ PreprovisioningExtraKernelParams : retrievePreprovisioningExtraKernelParamsSpec (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+ PreprovisioningExtraKernelParams : retrievePreprovisioningExtraKernelParamsSpec (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 .PreprovisioningExtraKernelParams = retrievePreprovisioningExtraKernelParamsSpec (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