Equinix unveiled Tinkerbell, an all-in-one open source bare metal provisioning platform that is now a Cloud Native Computing Foundation (CNCF) Sandbox project.
Equinix describes Tinkerbell as a collection of microservices that together help organizations transform static physical hardware into programmable digital infrastructure regardless of manufacturer, processor architecture, internal components, or networking environment. Tinkerbell currently powers thousands of daily provisions at Equinix Metal, an interconnected and secure bare metal service.
Tinkerbell has four major components: a DHCP/TFTP server (Boots), a metadata service (Hegel), an in-memory operating system installation environment (Hook) and a workflow engine (Tink). There is also an optional fifth component: a power and boot service (PBnJ) that communicates with the Baseboard Management Controllers (BMCs). The workflow engine is comprised of a server and a command line input (CLI), which communicates via remote procedure calls (gRPC).
The latest release of Tinkerbell includes a number of new or improved capabilities:
- New Component: Hook is a next-generation in-memory operating system installation environment that builds on extensive experience. Hook was developed with community participation and is based on popular projects including Docker's LinuxKit. Hook allows end users to quickly rebuild action images, significantly reducing build times from approximately 45 minutes to 90 seconds. Hook also reduces memory footprint while making rebuilding action images for different processor architectures significantly easier. Deployment metrics are available via Prometheus endpoints, allowing operators to monitor their provisioning workflows with their preferred metrics tooling.
- Composable Workflows via Shared Actions: Using the CNCF Artifact Hub, Tinkerbell users can now share and reuse common workflow actions just as they would with container images on Docker Hub. Common Tinkerbell actions are now written in Go and delivered as binaries to make it easier to author new workflows while reducing memory footprint. These actions can also make use of new functionality from Hook to decrease provisioning times through technologies like kexec.
- Cluster API for Tinkerbell: By supporting Cluster API, Tinkerbell is adopting the leading community provider for provisioning Kubernetes clusters, increasing interoperability and decreasing the learning curve for those already familiar with Cluster API. After successful community testing, Cluster API for Tinkerbell (CAP-T) will now be extended to implement the full API.
- Out-of-the-Box Support for Major Operating Systems – Tinkerbell's support for major operating systems such as VMware ESXi, RedHat Enterprise Linux, Windows Server, Flatcar Linux, Ubuntu, CentOS 8, Debian and NixOS has been tested by the community. New configurable actions provide the ability to deploy any operating system on Tinkerbell as covered in the updated Operating System documentation.
The latest Tinkerbell release also includes an updated sandbox that allows users to get up and running with a validated version of the Tinkerbell stack, binaries for both x86 and Arm processors, and introduces a new capability allowing users to swap in and out components. The Tinkerbell sandbox is available through a local development environment on HashiCorp Vagrant Cloud.