How Open Source Tinkerbell Was Created to Make Bare Metal Provisioning Easier
Tinkerbell is beginning to live up to its promise to provision bare metal servers and other devices for cloud native environments. After becoming a Cloud Native Computing Foundation (CNCF) Sandbox project in November, Tinkerbell, has been updated with a number of new beta features for under an Apache 2.0 license — this month.
The idea is to help DevOps teams that are struggling with the often notoriously difficult tasks of provisioning bare metal compute servers and other devices — or “bringing servers to life to be consumed by software,” as Gianluca Arbezzano, a senior staff engineer at Equinix, described in a recent blog post (Equinix purchased Packet, which originated the technology, in 2020).
While provisioning servers has traditionally a manual process, Tinkerbell automates many of these tasks, whether they happen across public clouds, in the data center or on edge devices, Mark Coleman, senior director of developer relations at Equinix, told The New Stack.
Bare metal machine lifecycling can be described in three ways, Coleman said:
On-premises: “Most companies of sufficient scale run their workloads across a variety of platforms, from public cloud to colocation,” Coleman said.
Edge computing: “From Major League Baseball stadiums to malls, companies want to know how to run hardware closer to their users, and while tooling like the recently announced Amazon EKS-A will help, operations teams still need to get their servers into a deployable state, and still need to deal with maintenance and upgrades,” Coleman said.
Hybrid Cloud: “Although the major driver for hybrid cloud tooling was companies acquiring other companies with different public cloud affiliations, now we’re seeing companies actively investigating when public cloud is (and isn’t) right for various workloads,” Coleman said. “For the non-public cloud part of the hybrid cloud equation, somebody still needs to manage those machines.”
Using Tinkerbell to help create the underlying server infrastructure for deploying and scaling Kubernetes clusters addresses a “significant pain point,” Torsten Volk, an analyst for Enterprise Management Associates (EMA), told The New Stack. DevOps teams, for example, typically struggle to bridge the gap between the declarative and policy-driven scale-out world of Kubernetes and “the dark gloomy and vastly inconsistent world of infrastructure provisioning in data center and on the different public clouds,” Volk said.
“Many Kubernetes problems happen at the interface between Linux and Kubernetes and therefore consistently standardizing the configuration of this interface should help eradicate many of these issues,” Volk told The New Stack.
Server and Device Provisioning
While still in the beta stage, Equinix communicated this month a number of future production release features. These include:
Bare metal provisioning with Hook: Users can now leverage Tinkerbell to lifecycle hardware and install operating systems on edge devices, including x86 servers and Arm-based such as Raspberry Pis, in less than a minute, the company says. Hook leverages LinuxKit to quickly create a lightweight install environment, regardless of the environment, Coleman said.
“Speed is always important — when operations become faster it makes it possible for teams to explore more deployment, management and development options,” Coleman said. “Hook significantly reduces the amount of time it takes to deploy operating systems on Tinkerbell (like 90% less provisioning time) and has opened the door for newer ways of adding new operating systems and deploying them.”
The feature should help to add a level of consistency to edge that applications require in order to reliably run on a large variety of different devices. At the same, the edge device capability allows DevOps teams to declaratively adjust operating system configurations as needed, Volk said.
“This sounds like it is bringing grid computing to the edge, and that’s just very exciting to see,” Volk said.
An API to provision servers for Kubernetes deployments and other modern datacenter workloads: While Cluster API has enabled DevOps teams to configure Kubernetes clusters, the Tinkerbell project Cluster API implementation (Cluster API Tinkerbell) was created for provisioning bare metal servers and devices to run Kubernetes clusters.
“Tinkerbell directly talking to the Kubernetes Cluster API enables Kubernetes to directly order the infrastructure resources it requires, when it requires them,” Volk said. “This should let us extend policy-driven Kubernetes cluster management to the underlying servers and operating systems needed to optimally execute these policies. This is very exciting but will need a lot of fairy dust to actually pull off in production environments.”
Documentation: While, sadly, this should be the norm, many, if not most, open source and proprietary software projects lack adequate documentation. At first glance, Tinkerbell’s instructions to set up and run appear to be accessible and clear.
Support for Major Operating Systems: Tinkerbell currently supports VMware ESXi, RedHat Enterprise Linux, Windows Server, Flatcar Linux, Ubuntu, CentOS 8, Debian and NixOS.
Open Source Considerations
While Tinkerbell is maintained and used internally at Equinix, the company says the project largely draws from the open source community to the extent that the number of commits originating from outside of the company is “tracking for parity in about 60 days,” Coleman said.
“The reason why is clear: there is a huge pain point for companies running on-prem, hybrid or edge workloads and Tinkerbell is the only offering out there that is built with cloud native principles in mind,” Coleman said. “In other words, modern operators and developers will find Tinkerbell intuitive, not obstructive.”
Becoming a CNCF Sandbox project has helped Tinkerbell to give larger companies the confidence to “come on board,” Coleman said. “Open governance is essential for open source projects in such a critical part of the stack,” Coleman said.
At this time, Equinix has no plans to offer an enterprise version of Tinkerbell on which Equinix relies heavily for its own infrastructure management and provisioning.
“Open sourcing Tinkerbell has already been fantastically valuable to Equinix Metal,” Coleman said. “There are no current plans to explore monetization.”