Skip to main content
Talos Linux is designed to run across a wide variety of platforms, from bare metal servers to cloud providers and local development environments.

Supported Platforms

Talos supports the following platform types:

Cloud Platforms

Talos provides native integrations for major cloud providers with automatic metadata discovery and platform-specific optimizations:
  • AWS - EC2 instances with IMDS integration
  • Google Cloud Platform - GCE instances with metadata service support
  • Azure - Virtual Machines with Azure metadata service
  • DigitalOcean - Droplets with cloud-init support
  • Equinix Metal - Bare metal cloud infrastructure
  • Hetzner Cloud - Cloud VMs with metadata service
  • Scaleway - Cloud instances
  • Vultr - Cloud compute instances
  • Oracle Cloud - OCI compute instances
  • Akamai (Linode) - Cloud instances

Bare Metal & On-Premises

  • Bare Metal - Physical servers via PXE, ISO, or USB boot
  • VMware - vSphere and ESXi environments
  • OpenStack - OpenStack compute instances
  • Proxmox - Proxmox VE virtual machines
  • NoCloud - Generic cloud-init datasource

Local Development

  • Docker - Containerized nodes for local testing
  • QEMU - Virtual machines for local clusters

Platform Modes

Talos operates in different modes depending on the platform:
// Bare metal and on-premises deployments
func (m *Metal) Mode() runtime.Mode {
    return runtime.ModeMetal
}

Platform Features

Automatic Configuration Discovery

Cloud platforms automatically discover:
  • Network configuration (IP addresses, DNS, routes)
  • Instance metadata (region, zone, instance type)
  • Platform-specific time servers
  • Hostname and external IPs

Network Configuration

Each platform provides network configuration through its metadata service:
  • AWS - Uses IMDS (Instance Metadata Service) at 169.254.169.254
  • GCP - Uses metadata server at metadata.google.internal
  • Azure - Reads configuration from IMDS and ovf-env.xml
  • Bare Metal - Network config via kernel parameters or META partition

Kernel Arguments

Platforms configure appropriate console and boot parameters:
# AWS uses ttyS0 for serial console
console=tty1 console=ttyS0 net.ifnames=0

Configuration Injection Methods

Talos supports multiple methods for injecting machine configuration:

HTTP/HTTPS

Fetch configuration from a URL specified via kernel parameter:
talos.config=https://example.com/machine-config.yaml

Cloud Metadata

Cloud platforms deliver configuration via user-data:
  • AWS - EC2 user-data
  • GCP - Instance metadata user-data attribute
  • Azure - Custom data in ovf-env.xml

ISO/USB

Boot media can contain embedded configuration:
talos.config=metal:iso

Config Server

Platform-specific configuration servers:
talos.config=https://192.168.1.10:8080/config?uuid=${uuid}

Choosing a Platform

For Production

  • Cloud - Use managed cloud platforms (AWS, GCP, Azure) for automatic scaling and high availability
  • Bare Metal - Use physical servers for maximum performance and control
  • Hybrid - Combine cloud and on-premises for flexibility

For Development

  • Docker - Fastest option for local testing and CI/CD
  • QEMU - Full VM experience for testing boot processes
  • Cloud - Test in production-like environments

Next Steps

Choose your deployment platform:

Bare Metal

Deploy to physical servers

AWS

Deploy to Amazon EC2

GCP

Deploy to Google Cloud

Azure

Deploy to Azure VMs

Docker

Local Docker cluster

Build docs developers (and LLMs) love