Incorrect power status parsing
ibrokethecloud opened this issue · 3 comments
Currently the baseboardcontroller, checks for the power status
https://github.com/tinkerbell/rufio/blob/main/controllers/baseboardmanagement_controller.go#L172
And attempts to perform conversion to PowerState type: https://github.com/tinkerbell/rufio/blob/main/controllers/baseboardmanagement_controller.go#L179
This however doesnt work with some of the supermicros and Dell servers tested against.
The actual power status response returned is Chassis Power is on
. As a result the baseboardmanagement objects dont reconcile successfully.
Expected Behaviour
Expect the baseboardmanagement objects to reconcile and power status updated.
Current Behaviour
Currently the baseboardmanagement do not reconcile.
Possible Solution
Change logic in baseboardcontroller to match multiple returned power status.
Steps to Reproduce (for bugs)
Context
Your Environment
Looking to leverage tinkerbell and boots for a metal management project to mange harvester clusters.
First iteration of seeder
-
Operating System and version (e.g. Linux, Windows, MacOS):
Runningboots
andrufio
on a k3s cluster on Ubuntu for test environment.
Metal nodes are old supermicros and Dell nodes. -
How are you running Tinkerbell? Using Vagrant & VirtualBox, Vagrant & Libvirt, on Packet using Terraform, or give details:
-
Link to your project or a code example to reproduce issue:
@ibrokethecloud We're unsure, right now, on whether we want the BaseboardManagement
type to provide write capabilities. When modeled against jobs, they collide and you have 2 entities trying to enact desired state.
We toyed with pausing BaseboardManagement
but in the interim decided to make it a read only interface. Have you thoughts toward this? What's your use-case? How would you like to interact with BMC?
@chrisdoherty4 i am trying to leverage Rufio for managing some metal as part of a project named seeder.
I do think the only change to power state should be managed by the bmcjob.
I would just let the baseboardmanagement controller mark the baseboard object as "Contactable".
The user could then trigger a BMCJob to run a PowerAction of type Status to query current status.
@ibrokethecloud Thanks for the feedback. That's the current train of thought we have.