/awesome-baremetal

Bare-metal is awesome. Let's share our favourite tools.

MIT LicenseMIT

awesome-baremetal

Bare-metal is awesome. Let's share our favourite tools.

Rules

  • Ordered alphabetically (eventually consistent)
  • Recent development or release (within the last 6 months) - or deemed relevant by curator
  • No defunct or abandoned projects
  • Must show signs of traction or corporate use
  • No "my scripts for my homelab that only I use" submissions.
  • This list is curated and not a museum, so the project should be active and relevant
  • Format: link to GitHub or website - "quote from GitHub repo or website"

🏆 Commercial products will require a sponsorship and are added with (sponsored) in brackets in the relevant category.

Curator: Alex Ellis - founder of OpenFaaS, actuated.dev & Inlets.

Self-hosted

  • bmc-toolbox - "bmc-toolbox is bunch of tools to ease BMC management"
  • cobbler - "Cobbler is a Linux installation server that allows for rapid setup of network installation environments"
  • Collins - "CMDB / state machine for infrastructure automation"
  • confluent - "Service for onboarding and management of baremetal server BMCs and PXE"
  • Digital Rebar - "Digital Rebar is the data center automation, provisioning and infrastructure as code (IaC) platform designed with a cloud native architecture replacing Cobbler, Foreman, MaaS or similar technologies"
  • foreman - "From provisioning and configuration to orchestration and monitoring, Foreman integrates with your existing infrastructure to make operations easier"
  • iDRAC 6 dockerized "Allows access to the iDRAC 6 console without installing Java or messing with Java Web Start." by DomiStyle
  • ironic "A service for managing and provisioning Bare Metal servers" - from OpenStack Foundation
  • LinuxKit - "A toolkit for building secure, portable and lean operating systems for containers" - PXE support, focus on immutable infrastructure.
  • Typhoon - "A minimal and free Kubernetes distribution with Terraform backed by Fedora CoreOS or Flatcar Linux"
  • MAAS - "Metal as a Service" by Canonical
  • Matchbox - "Matchbox is a service that matches bare-metal machines to profiles that PXE boot and provision clusters"
  • metalk8s - "MetalK8s was launched to make it easier to run Kubernetes (K8s) on bare-metal servers that need persistent storage" by Scality
  • Metal Stack - "we believe kubernetes runs best on bare metal. we build an api to manage bare metal hardware and kubernetes on top of that."
  • Metal³ - "Bare Metal Host Provisioning for Kubernetes" - with ClusterAPI support and built with Ironic
  • mr-provisioner - "Bare metal provisioning tool"
  • netboot.xyz - "a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool."
  • pixiecore "Pixiecore is an tool to manage network booting of machines" by Dave Anderson
  • RackHD - "a technology stack for enabling automated hardware management and orchestration through cohesive APIs. It serves as an abstraction layer between other management layers and the underlying, vendor-specific physical hardware."
  • Sidero Labs - (Formerly known as Talos Systems) "A New Tool for Kubernetes Bare Metal" - with ClusterAPI support
  • Tinkerbell - "Tinkerbell is a bare metal provisioning engine. It’s built and maintained with love by the team at Equinix Metal."
  • Warewulf - "Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems."

Inactive projects

  • Razor (archived) - "Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning"
  • plundr (inactive on GitHub - 4yrs) - "Plunder is a single-binary server that is all designed in order to make the provisioning of servers, platforms and applications easier." - with ClusterAPI support

Networking for bare-metal cloud

  • dnsmasq - "Dnsmasq provides network infrastructure for small networks: DNS, DHCP, router advertisement and network boot."
  • HAProxy - "The Reliable, High Performance TCP/HTTP Load Balancer" - often used in place of hardware LB.
  • inlets - "A Cloud Native Tunnel for L4 TCP and L7 HTTPS" (sponsored)
  • inlets-operator - "Public IPs for your private Kubernetes Services using inlets"
  • kube-vip - "Kubernetes Control Plane Virtual IP and Load-Balancer"
  • MetalLB - "MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols."
  • PorterLB - "PorterLB is an open-source load balancer implementation designed for bare-metal Kubernetes clusters."
  • Squid - "a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages." - used with bare-metal to cache packages and ISO images
  • Varnish-Cache Varnish Cache, the high-performance HTTP accelerator

Bare-metal cloud

x86_64 and / or arm64:

The Raspberry Pi 4B provides arm64 support with several operating systems like Ubuntu 20.04 / 22.04 being available. An NVMe can be plugged in over USB-C, see also: Upgrade your Raspberry Pi 4 with a NVMe boot drive

The Mac Mini M1 can be installed with Asahi Linux, which performs well as an Arm64 host.

x86_x64 only:

You may find additional suggestions in the documentation for actuated - isolated CI with Firecracker.

Open Source Virtualization

Orchestration of Virtual Machines (VMs) using KVM.

  • Firecracker
  • Cloud Hypervisor
  • oVirt - "oVirt is an open-source distributed virtualization solution, designed to manage your entire enterprise infrastructure. oVirt uses the trusted KVM hypervisor and is built upon several other community projects, including libvirt, Gluster, PatternFly, and Ansible."
  • Ganeti - "Open source hyperconverged VM platform that scales from several to thousands of bare metal servers. Originally written for internal use at Google."
  • Proxmox VE - "Proxmox VE is a complete open-source platform for all-inclusive enterprise virtualization that tightly integrates KVM hypervisor and LXC containers, software-defined storage and networking functionality on a single platform"
  • actuated.dev - blazing fast CI for GitHub Actions using Firecracker (sponsored)

Storage for bare-metal

  • OpenEBS - "Open Source Container Attached Storage, simplifies running Stateful Applications on Kubernetes.
  • Rook - "Open-Source, Cloud-Native Storage Orchestrator for Kubernetes"

Appendix

Sorting sections

Each section should be sorted after it's been updated, here's how you can do that with bash.

cat | sort --ignore-case
# Copy / paste

# Control + D

Then paste the output back into the document.