Skip to content
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

Can this be Playbook be implemented in Badfish Instead? #7

Open
sadsfae opened this issue Sep 18, 2023 · 4 comments
Open

Can this be Playbook be implemented in Badfish Instead? #7

sadsfae opened this issue Sep 18, 2023 · 4 comments

Comments

@sadsfae
Copy link
Member

sadsfae commented Sep 18, 2023

Hi, I see that this playbook was moved to redhat-performance but it serves the same kind of utility that Badfish should cover.

https://github.com/redhat-performance/badfish
https://github.com/redhat-performance/badfish#get-sriov-mode
https://github.com/redhat-performance/badfish#set-sriov-mode

I propose we investigate Redfish capabilities here for an RFE within Badfish using the RedFish API. This way we're not potentially fragmenting workflow/tools. cc: @grafuls @josecastillolema @mukrishn

Also, relying on racadm is less-than-ideal as it's another closed source vendor tool whereas Redfish is the open, vendor-agnostic framework that OEM server vendors are developing against now.

For this to happen we just need the Redfish API endpoints which can be obtained with redfish-crawler

https://github.com/redhat-performance/redfish-crawler

If the endpoint(s) are available we can develop a feature setting these SRIOV settings and continue to add more functionality too then this doesn't need to be maintained and more people can gain the feature using the same tool.

@josecastillolema
Copy link

Hi @sadsfae I think that is a great idea.
Actually, we have an even a bigger ambition of equalizing the BIOS settings of every lab allocation to enable reproducible data plane results across tests (https://issues.redhat.com/browse/PERFSCALE-2439).
Let's discuss this further but in the meantime let's maintain this repo until we have the alternative implemented and validated.

@grafuls
Copy link

grafuls commented Sep 18, 2023 via email

@sadsfae
Copy link
Member Author

sadsfae commented Sep 19, 2023

In the case of Dell systems you can use BF with --export-scp [1] to get a json file the current bios configuration and you can then use that same one with --import-scp for all other systems. Not sure now if it might require some small modification to the json after the export.

On Mon, Sep 18, 2023 at 4:58 PM José Castillo Lema @.***> wrote: Hi @sadsfae https://github.com/sadsfae I think that is a great idea. Actually, we have an even a bigger ambition of equalizing the BIOS settings of every lab allocation to enable reproducible data plane results across tests (https://issues.redhat.com/browse/PERFSCALE-2439). Let's discuss this further but in the meantime let's maintain this repo until we have the alternative implemented and validated.

@josecastillolema For sure let's keep this open and people should keep using what they need to get the job done until we have something uniform with Badfish.

That sounds ideal, likely more of a longer-term endeavor. A lot of BIOS settings are not accessible via Redfish (or racadm) but can be modified by pulling/pushing templates via the native export commands as @grafuls points out, this facility already being in BF. I'm thinking about what our options might be to load these template(s) in memory for on-the-fly key/value adjustment and local storage so the operations don't require modifying or worrying about any metadata elements outside the tool.

e.g. using local or container storage so we don't need so many calls to many remote systems:

(Against first-time hardware)

  1. Badfish pulls the full BIOS configuration JSON with an option to save it locally per FQDN
  2. Badfish can then operate locally on the retrieved template, listing key/values or creating a new modified local JSON with intended values keeping the data in memory so it can reference settings locally.
  3. Badfish can display an easy, human-readable digest of just tunables with option to selectively change elements and support --key value modification like we do currently with --set-bios-attribute https://github.com/redhat-performance/badfish#set-bios-attribute
  4. Badfish can then push those values and retrieve a new local copy once it verifies those settings are implemented remotely.

e.g. functionality similar to conf/idrac_interfaces.yml

Against uniform systems of same hardware/model

  1. Ship / push / re-apply a sanitized "baseline" json template for that particular model of hardware

This is already supported in Badfish, but I am not sure at what level the JSON is genericized to remove unique elements like Service Tag or other data, I would have to check.

This can probably go into a linked RFE for Badfish as it is and we can brainstorm from there.

@grafuls
Copy link

grafuls commented Oct 19, 2023

Looks like modifying network attributes (including SRIOV) are now supported since idrac9 (5.10 version).

For this I raised an RFE on the BF repo:
redhat-performance/badfish#385

Will update here once completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants