Rootconf Sessions

Presentations on DevOps and Dev-Oops

Attend Submit a session proposal

Automated Bare Metal Provisioning with Tinkerbell

Submitted by Gaurav Gahlot (@gauravgahlot) on May 5, 2020

Duration of the session:: 40 mins full talk Category of talk: Cloud infra or architecture Status: Submitted

Abstract

Even though we are seeing the advent of virtual servers, bare metal servers are preferred for use cases where performance and security are critical. The provisioning and lifecycle management of bare metal servers is extremely challenging. Tinkerbell, an open-source project from Packet helps automate infrastructure provisioning of bare metal servers irrespective of who provides them (cloud/on-prem).

In this session, we will see how Tinkerbell makes it easy to provision bare metal servers. We will be talking about how it uses:

  • a YAML based definition to automate provisioning
  • a control plane to manage servers at scale
  • latest technologies like Docker containers, gRPC, iPXE, etc.

Key takeaways are:

  • Overview of bare metal cloud
  • How Tinkerbell works to make provisioning servers at ease
  • Architecture review
  • Primary technologies - iPXE, DHCP, TFTP
  • When and where to use Tinkerbell?
  • Where are we and what’s next?

Outline

We will cover basic bare metal concepts, and then jump on a ride with Tinkerbell covering following things:

  • Overview of bare metal cloud
  • Introduction to Tinkerbell
  • Primary Concepts:
    • iPXE
    • DHCP
    • TFTP
  • High-level Architecture
  • First good workflow(demo)
  • Provisioning an Ubuntu server(demo)

Requirements

No special requirements for the session. Good internet connection during the demo period.

Speaker bio

Gaurav is working with InfraCloud Technologies as a Product Engineer. He is a core contributor to Tinkerbell project and is primarily focused on developing solutions around bare metal provisioning. Gaurav is also an active open source contributor and co-organizes Kubernetes Pune and Docker Pune.

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}