Everything you need to know about Tinkerbell and its major component microservices.
What is Tinkerbell?
Tinkerbell is an open-source, bare metal provisioning engine, built and maintained by the team at Packet.
The answer it answer is: “How to make an shiny new server available for us in an automatic fashion?”
What’s Powering Tinkerbell?
The Tinkerbell stack consists of five microservices, and a grpc API:
Tink - Tink is the Tinkerbell server and CLI. It communicates over gRPC, and is responsible for processing workflows. The CLI is used to create workflows and their building blocks, templates and hardware data.
Boots - Boots is Tinkerbell’s DHCP server. It handles DHCP requests, hands out IPs, and serves up iPXE. It uses the Tinkerbell client to pull and push hardware data. It only responds to a predefined set of MAC addresses so it can be deployed in an existing network without interfering with existing DHCP infrastructure.
Hegel - Hegel is the metadata service used by Tinkerbell and OSIE. It collects data from both and transforms it into a JSON format to be consumed as metadata.
OSIE - OSIE is an in-memory installation environment for bare metal. It installs operating systems and handles deprovisioning.
PBnJ - PBnJ is a microservice that can communicate with baseboard management controllers (BMCs) to control power and boot settings.
In addition to the microservices, there are three pieces of infrastructure:
PostgreSQL - Tinkerbell uses PostgreSQL as its data store. PostgreSQL is a free and open-source relational database management system, and it stores Tinkerbell’s hardware data, templates, and workflows.
Image Repository - Tinkerbell uses a local image repository to store all of the action images used in a workflow. This is particularly useful for secure environments that don’t have access to the internet. You can also choose to use Quay or DockerHub as the repository if your environment does have internet access.
NGINX - NGINX is a web server which can also be used as a reverse proxy, load balancer, mail proxy, and HTTP cache. Tinkerbell uses NGINX to serve the required boot files during workflow execution.
New to Tinkerbell or bare metal provisioning? This is a great place to start!
- Getting Started - Set up Tinkerbell locally with vagrant or on Packet with Terraform.
- Run hello world to see Tinkerbell in action.
Need a little help getting started? We’re here!