-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PoC: BIOS version & settings management #138
base: main
Are you sure you want to change the base?
Conversation
2ac16c3
to
e663a97
Compare
} | ||
} | ||
} | ||
reset, err := bmcClient.SetBiosAttributes(server.Spec.UUID, diff) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do we apply bios settings/ boot order now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Boot order: there is a question to discuss in the PR's description, whether we need to keep boot order in Server
CR and keep its processing in server-controller, or we'll move it to ServerBIOS
. Semantically we should move it to ServerBIOS
.
Settings: lines 231-245 in serverbios-controller:
func (r *ServerBIOSReconciler) reconcileSettingsUpdate(
ctx context.Context,
log logr.Logger,
serverBIOS *metalv1alpha1.ServerBIOS,
) (ctrl.Result, error) {
log.V(1).Info("invoking settings update job")
jobReference, err := r.createJob(ctx, log, serverBIOS, metalv1alpha1.ApplyBIOSSettingsJobType)
if err != nil {
return ctrl.Result{}, err
}
return r.patchJobReference(ctx, log, serverBIOS, metalv1alpha1.RunningJobRef{
Type: metalv1alpha1.ApplyBIOSSettingsJobType,
JobRef: jobReference,
})
}
The job implementation is in progress, hopefully will finish it today and push to PR.
a6733e4
to
b87e059
Compare
0aea100
to
958928c
Compare
Signed-off-by: Artem Bortnikov <[email protected]>
Signed-off-by: Artem Bortnikov <[email protected]>
Signed-off-by: Artem Bortnikov <[email protected]>
Signed-off-by: Artem Bortnikov <[email protected]>
1ffebc9
to
b682a57
Compare
Signed-off-by: Artem Bortnikov <[email protected]>
b682a57
to
3468011
Compare
Proposed Changes
This PR contains PoC implementation for management of server's BIOS version and settings:
This approach fully separate concrete job implementation from the reconciliation flow.
To discuss
BootOrder
Do we need to move boot order field from server to serverBIOS CR? Semantically, yes. As it's one of BIOS settings.
BIOS settings in
.status
From my perspective, it reasonable to reflect in
.status.bios.settings
only those settings which are set in.spec.bios.settings
. This will make comparison of.spec
and.status
much easier.Storing bios settings
Do we need custom type for bios setting:
to avoid attempting to apply settings which are not supported in the specified BIOS version? I.e.:
upgrading from version 1.0.0 to 2.0.0 will lead to the bios setting responsible for legacy boot is deprecated/unsupported, thus it is explicitly marked as unsupported and will not be considered during settings applying.