**Tinkerbell** is a lightweight, declarative bare metal provisioning framework originally built by Equinix Metal and now a CNCF sandbox project. Where [[MAAS]] is a full-featured platform with its own UI and database, Tinkerbell is a composable toolkit — you define provisioning workflows as code and assemble the components you need.
---
### First Principle: Provisioning workflows should be version-controlled, composable, and auditable — not locked inside a platform UI.
Tinkerbell uses a workflow engine where each step is a container action. You define what happens during provisioning (partitioning, OS installation, network config) as a YAML workflow. The actions run sequentially on the target machine, giving you full control and a clear audit trail.
---
### Key Considerations
- **Workflow-as-Code**: Provisioning workflows are YAML-defined and stored in Git — making them reviewable, testable, and repeatable.
- **Components**: Tink Server (workflow state machine), Tink Worker (agent on target hardware), OSIE (in-memory OS for running actions), and Hegel (metadata service).
- **Kubernetes-Native**: Designed to run inside [[Kubernetes]], making it composable with existing cluster infrastructure.
- **vs MAAS**: [[MAAS]] is easier to get started with; Tinkerbell gives more flexibility for operators who need full control over provisioning logic.
---
### How It Fits
```
Physical hardware (IPMI/DHCP/PXE)
→ Tinkerbell (workflow engine provisions the OS)
→ [[KVM]] + [[OpenStack]] or [[Kubernetes]] (workload platform)
```
[[Bare Metal]] | [[MAAS]] | [[OpenBMC]] | [[Kubernetes]] | [[Open Source Hyperscaler MoC]]