Skip to content

affragak/talos-pxe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Talos PXE

A simplified setup for deploying Talos Linux clusters using PXE boot and Terraform.

Overview

This repository provides an automated way to:

  • Boot Talos machines via PXE using siderolabs/booter
  • Bootstrap a Talos cluster with Terraform
  • Deploy Cilium CNI with Terraform

Prerequisites

  • Docker
  • Terraform
  • Machines with UEFI PXE boot enabled on the same subnet
  • Recommended boot order: disk first, then network

Quick Start

1. Start Talos Booter

Run the booter container on the host network to enable PXE booting:

docker run --rm --network host \
  ghcr.io/siderolabs/booter:v0.3.0 \
  --talos-version=v1.12.1 \
  --schematic-id=a28d86375cf9debe952efbcbe8e2886cf0a174b1f4dd733512600a40334977d7

Power on your machines with PXE boot enabled. They will automatically boot Talos from the network.

2. Bootstrap the Cluster

Navigate to the bootstrap directory and apply the Terraform configuration:

cd bootstrap
terraform init
terraform apply

3. Export Kubeconfig and Talosconfig

After the cluster is bootstrapped, export the configuration files:

terraform output -raw kubeconfig > kubeconfig
terraform output -raw talosconfig > talosconfig

Set the KUBECONFIG environment variable:

export KUBECONFIG=$(pwd)/kubeconfig

4. Deploy Cilium CNI

Navigate to the CNI directory and deploy Cilium:

cd ../cni
terraform init
terraform apply

Repository Structure

.
├── bootstrap/              # Talos cluster bootstrap with Terraform
│   ├── files/
│   │   └── cp-scheduling.yaml
│   ├── templates/
│   │   └── install-disk-and-hostname.yaml.tmpl
│   ├── talos-main.tf
│   ├── variables.tf
│   ├── outputs.tf
│   └── versions.tf
├── cni/                    # CNI deployment
│   └── cilium.tf
└── pxe.md                  # PXE boot instructions

Configuration

Bootstrap

The bootstrap configuration includes:

  • Control plane scheduling configuration
  • Install disk and hostname templating
  • Talos cluster initialization

CNI

Currently configured to deploy Cilium as the Container Network Interface.

Customization

  • Modify --talos-version to use a different Talos version
  • Update --schematic-id for custom Talos system extensions
  • Adjust Terraform variables in bootstrap/variables.tf

Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages