-
Notifications
You must be signed in to change notification settings - Fork 37
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
CAPT PBNJ power management integration #147
Conversation
eda1998
to
d4be5c9
Compare
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
7a8f3b3
to
a5f2385
Compare
Signed-off-by: Aravind Ramalingam <[email protected]>
Signed-off-by: Aravind Ramalingam <[email protected]>
a5f2385
to
c884558
Compare
Hi @cprivitere I just rebased and updated some of the files that had issues. |
Well, closer at least. Now someone just needs to solve the rest. |
Signed-off-by: Aravind Ramalingam <[email protected]>
f9e33d2
to
aae60fd
Compare
Updated again! Hopefully its green this time ✅ |
Closing PR as the changes are no longer valid with the Tinkerbell kubernetes model. |
Description
The PR enables automated power on/off of nodes that are made part of the cluster using a CRD driven approach. Currently the BMC information is not part of the Tinkerbell hardware, hence a new CRD is introduced.
BMC
and a corresponding controllercontroller/bmc
which is responsible for maintaining the state of the hardware's bmc for the corresponding nodes.PBNJ client
(similar to the tink client) which enables performing pbnjPowerRequest
andDeviceRequest
to manage the nodes.SecretReference
field that points to a k8s secret that contains the BMC user creds.PowerAction
andBootDevice
which the controller uses to reconcile the bare metal nodes by performing PBNJ requests. The values for these fields are based from machine.proto#L40L57.bmcRef
field in the hardware CRD is used to fetch the BMC object and patch thePowerAction
field and set the desired power state.bmcRef
field is used to patch the BMC object and setBootDevice
to PXE and power off the nodes.Why is this needed
Tries to address the issues listed on #146.
How Has This Been Tested?
I have tested these changes by creating and deleting multiple clusters using CAPT with the new modified CRDs.
Sample yaml for the new CRDs
How are existing users impacted? What migration steps/scripts do we need?
The existing users are not impacted. The
bmcRef
field in the hardware CRD is optional, and if not specified the power management steps are skipped.Checklist:
I have: