Skip to content
/ sidero Public
forked from siderolabs/sidero

Sidero is a bare metal provisioning system with support for Kubernetes Cluster API.

License

Notifications You must be signed in to change notification settings

smira/sidero

 
 

Repository files navigation

sidero

Sidero ("Iron" in Greek) is a project created by the Talos Systems team. The goal of this project is to provide lightweight, composable tools that can be used to create bare-metal Talos + Kubernetes clusters. These tools are built around the Cluster API project. Sidero is also a subproject of Talos Systems' Arges project, which will publish known-good versions of these components (along with others) with each release.

Overview

Sidero is made currently made up of three pieces:

  • Metal Metadata Server: Provides a Cluster API (CAPI)-aware metadata server
  • Metal Controller Manager: Provides custom resources and controllers for managing the lifecycle of metal machines
  • Cluster API Provider Sidero (CAPS): A Cluster API infrastructure provider that makes use of the pieces above to spin up Kubernetes clusters

Sidero also needs these co-requisites in order to be useful:

These components and Sidero are all installed using Cluster API's clusterctl tool. Since Sidero is built on top of Cluster API, an existing Kuberntes cluster is required for a "management plane". This cluster does not have to be based on Talos. However, if you would like to use Talos as the OS of choice for the Sidero management plane, you can find a number of ways to deploy Talos in the documentation.

Architecture

The overarching architecture of Sidero centers around a "management plane". This plane is expected to serve as a single interface upon which administrators can create, scale, upgrade, and delete Kubernetes clusters. At a high level view, the management plane + created clusters should look something like:

Resources

The Metal Controller Manager provides a few custom resources (CRDs) in the management plane Kubernetes cluster that are crucial to understanding the flow of Sidero:

  • Environments: These define a desired deployment environment for Talos. This includes things like which kernel to use, kernel args to pass, and the initrd to use.
  • Servers: These represent physical machines as resources in the management plane. These servers are created when the physical machine PXE boots and completes a "discovery" process in which it registers with the management plane and provides SMBIOS information.
  • ServerClasses: ServerClasses are a grouping of the Servers mentioned above. These can be used to compose a bank of Servers that are eligible for provisioning.

Installation

See the installation guide here.

Support

Please feel free to ask any questions about this project or mention any issues you may be having in the #support channel of our Slack

About

Sidero is a bare metal provisioning system with support for Kubernetes Cluster API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 88.6%
  • Dockerfile 7.3%
  • Makefile 4.1%