About Badfish

Badfish is a vendor-agnostic, redfish-based API tool used to consolidate management of IPMI and out-of-band interfaces for common server hardware vendors.  Badfish is also a popular song from Sublime, this may be a coincidence – are you a badfish too?

We wrote Badfish because more and more vendors are starting to standardize on the redfish API.  We run a very large, diverse infrastructure with lots of different vendor technologies and we were tired of tooling differences, limitations and a lack of consistency in approaches to systems automation.

Badfish is a Python-based, asyncio-native standalone tool but it is also bundled into QUADS as a library to manage boot interface ordering/management and bare-metal automation tasks starting in the 1.1 codebase.

Features

  • Management of interface boot order for Dell systems
  • One-time PXE operations for Dell hardware
  • Gathering firmware and hardware inventory for Dell systems
  • Pulling/pushing Dell system configuration into XML
  • Flexible logging for IPMI/out-of-band operations
  • Check/set SRIOV global defaults (Dell Only)
  • Check/unmount virtual media (SuperMicro Only)
  • Pulling power consumption data
  • Management of virtual media
  • Flexible querying/setting of BIOS values
  • Pushing BIOS templates via XML (Dell Only)
  • Gather additional systems information (memory, interfaces, etc).
  • Asynchronous IPMI/Redfish automation across large sets of bare-metal systems
  • Other SuperMicro and HPE server features are also available.
  • Likely other features we add not listed here, see our Github documentation.

Project Details

  • Language:  Python
  • License:  GPLv3
  • Documentation:  Github
  • CI/Tests:  Github Actions
  • Installation Methods: RPM, Podman container, Python Setuptools, Pip
  • Platforms:  Linux, BSD, OSX, Windows
  • Requirements:  RHEL/Rocky/Alma, Fedora or other EL Linux, Podman, or Python3.6+
  • Contact:  Libera IRC Network

Core Development Team

  • Gonzalo Rafuls
  • Will Foster
  • Kambiz Aghaiepour
    • kambiz on IRC & kambiz-aghaiepour on Github
  • Dominik Vagner