Starter kit for sidero omni self hosted + talos + proxmox
This repository has been archived on 2026-03-14. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
Laurent 7a01141cd4
All checks were successful
omni-template / validate-diff (push) Has been skipped
omni-template / sync (push) Successful in 4s
Update Talos and Cilium configurations in production cluster
- Replace `driver: virtio_net` with `busPath: "0*"` for PCI interface selection.
- Configure Cilium with additional environment variables for local API server communication.
- Update startup command and add service host/port environment variables for Cilium agents.
2026-01-29 22:41:24 +01:00
.forgejo/workflows Update Forgejo workflow to use omnictl-action@v1.66.0 2026-01-28 15:13:38 +01:00
clusters/talos-prod-cluster Update Talos and Cilium configurations in production cluster 2026-01-29 22:41:24 +01:00
docs Add instructions for installing and configuring Cilium in OPERATIONS.md 2026-01-28 00:01:24 +01:00
omni Update cluster template and environment for new domain, network, and NTP configuration. 2026-01-27 19:13:08 +01:00
proxmox-provider Update storage network IP range to 192.168.7.0/24 in scripts and documentation. 2026-01-23 14:56:08 +01:00
.gitignore feat: document Proxmox provider feature requests, add multi-disk machine class, and refine cluster networking configurations. 2025-12-19 15:34:52 -05:00
CONTRIBUTING.md wip 2025-11-14 10:53:06 -05:00
LICENSE wip 2025-11-14 10:53:06 -05:00
README.md Update network bridge defaults and examples to align with new architecture. 2026-01-23 14:38:41 +01:00

Sidero Omni + Talos on Proxmox Starter Kit

A complete, production-ready starter kit for deploying self-hosted Sidero Omni with the Proxmox infrastructure provider to automatically provision Talos Linux clusters.

📺 Video Tutorial: Part 3

Watch the Video

Welcome to Part 3 of the Ultimate Kubernetes HomeLab series!

In this video, were diving deep into Sidero Omni, the Omni Proxmox Infra Provider, and deploying a full Talos OS cluster from scratch—all running fully self-hosted.

Youll learn how to set up Omni, connect it to Proxmox using the official infra provider, provision Talos machines, and manage the entire lifecycle of your Kubernetes nodes through a clean, modern UI.

🚀 What Youll Learn

  • Installing Omni from the self-hosted GitHub repo
  • Deploying the Sidero Proxmox Infra Provider
  • Configuring Proxmox to work with Omni
  • Creating Talos machine classes and templates
  • Provisioning Talos nodes automatically on Proxmox
  • Bootstrapping & lifecycle management workflows
  • Best practices for scaling your Talos cluster

🔗 Video Series

📦 Resources


What This Provides

  • Self-hosted Omni deployment - Run your own Omni instance on-premises
  • Proxmox integration - Automatically provision Talos VMs in your Proxmox cluster
  • GPU support (optional) - Configure NVIDIA GPU passthrough for AI/ML workloads
  • Complete examples - Working configurations you can customize
  • Setup automation - Scripts to streamline SSL and encryption setup

Architecture Overview

┌─────────────────────────────────────────────────────────┐
│                    Your Infrastructure                   │
│                                                          │
│  ┌──────────────┐         ┌─────────────────────────┐  │
│  │ Omni Server  │◄────────┤ Proxmox Infrastructure  │  │
│  │ (Self-hosted)│         │ Provider (Docker)       │  │
│  │              │         │                         │  │
│  │ - Web UI     │         │ - Watches Omni API     │  │
│  │ - API        │         │ - Creates VMs          │  │
│  │ - SideroLink │         │ - Manages lifecycle    │  │
│  └──────┬───────┘         └──────────┬──────────────┘  │
│         │                            │                  │
│         │         ┌──────────────────▼─────┐            │
│         │         │   Proxmox Cluster      │            │
│         │         │                        │            │
│         └────────►│  ┌──────────────────┐  │            │
│                   │  │ Talos VM Node 1  │  │            │
│                   │  │ Talos VM Node 2  │  │            │
│                   │  │ Talos VM Node 3  │  │            │
│                   │  └──────────────────┘  │            │
│                   └────────────────────────┘            │
└─────────────────────────────────────────────────────────┘

Quick Start

  1. Prerequisites - See docs/PREREQUISITES.md
  2. Deploy Omni - Follow omni/README.md
  3. Setup Provider - Follow proxmox-provider/README.md
  4. Apply Machine Classes - omnictl apply -f machine-classes/control-plane.yaml (repeat for all files)
  5. Sync Cluster Template - cd cluster-template && omnictl cluster template sync -v -f cluster-template.yaml
  6. Create Clusters - Follow the Operations Guide

Project Structure

.
├── omni/                      # Self-hosted Omni deployment
│   ├── docker-compose.yml
│   ├── omni.env.example
│   └── scripts/               # SSL and GPG setup automation
├── proxmox-provider/          # Proxmox infrastructure provider
│   ├── docker-compose.yml
│   ├── .env.example
│   └── config.yaml.example
├── talos-configs/             # Example Talos configurations
│   └── gpu-worker-patch.yaml  # NVIDIA GPU support
├── examples/                  # Complete deployment examples
│   ├── simple-homelab/        # Minimal 3-node cluster
│   ├── gpu-ml-cluster/        # GPU-enabled for AI/ML
│   └── production-ha/         # HA cluster with Cilium CNI
└── docs/                      # Additional documentation
    ├── ARCHITECTURE.md
    ├── PREREQUISITES.md
    └── TROUBLESHOOTING.md

Key Features

Automated Provisioning

Define "machine classes" in Omni that specify CPU, RAM, and disk resources. The Proxmox provider watches for new machines and automatically creates VMs matching your specifications.

Dual Network Architecture (Management + Storage)

Separate networks for optimal performance:

  • Management Network (vmbr3/ens18): DHCP, cluster communication, SideroLink
  • Storage Network (vmbr4/ens19): Static IPs, 10G DAC to TrueNAS/NAS

Storage Pool Separation

Control planes and workers use different Proxmox storage pools:

  • Control Planes: fastpool (high-IOPS for etcd)
  • Workers: ssdpool (balanced performance)

GPU Support (Optional)

Include NVIDIA GPU support for AI/ML workloads with optimized VM settings:

  • CPU passthrough (cpu=host)
  • Q35 machine type for PCIe passthrough
  • NUMA awareness for multi-socket systems
  • 1GB hugepages for performance

See talos-configs/README.md for configuration details.

Production Ready

  • SSL/TLS encryption with Let's Encrypt
  • Etcd data encryption with GPG
  • SQLite storage backend (Omni v1.4.0+)
  • Auth0, SAML, or OIDC authentication
  • High availability support

Advanced Networking

Cilium CNI

For production deployments, we recommend Cilium CNI:

  • 10-40% better performance vs traditional CNIs
  • eBPF-based load balancing (replaces kube-proxy)
  • Gateway API support with advanced routing
  • L3-L7 network policies for security
  • Hubble for deep network observability
  • Service mesh capabilities without sidecars

See the official documentation: https://docs.cilium.io

Quick Install:

# Disable kube-proxy in cluster config, then:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml

cilium install \
    --set ipam.mode=kubernetes \
    --set kubeProxyReplacement=true \
    --set securityContext.capabilities.ciliumAgent="{CHOWN,KILL,NET_ADMIN,NET_RAW,IPC_LOCK,SYS_ADMIN,SYS_RESOURCE,DAC_OVERRIDE,FOWNER,SETGID,SETUID}" \
    --set securityContext.capabilities.cleanCiliumState="{NET_ADMIN,SYS_ADMIN,SYS_RESOURCE}" \
    --set cgroup.autoMount.enabled=false \
    --set cgroup.hostRoot=/sys/fs/cgroup \
    --set k8sServiceHost=localhost \
    --set k8sServicePort=7445 \
    --set gatewayAPI.enabled=true \
    --set gatewayAPI.enableAlpn=true \
    --set gatewayAPI.enableAppProtocol=true

Important Notes

⚠️ Proxmox Provider Status: The Proxmox infrastructure provider is currently in beta. Expect some limitations and potential bugs. Please report issues to the upstream repository.

⚠️ Known Limitations:

  • Extensions must be included in Talos image or specified in cluster template

Use Cases

  • Homelab: Self-hosted Kubernetes cluster management
  • Edge Computing: Manage distributed Talos clusters
  • Development: Rapid cluster provisioning for testing
  • Production: Enterprise-grade cluster lifecycle management

License

This starter kit is provided as-is for use with Sidero Omni. Note that:

  • Omni uses Business Source License (BSL) - free for non-production use
  • Talos Linux is MPL-2.0 licensed
  • Proxmox provider is MPL-2.0 licensed

Contributing

Found a bug? Have an enhancement? PRs welcome! This is a community-driven starter kit.

Resources

Credits

Built by the community, for the community. Special thanks to the Sidero Labs team for their support and tooling.