Self-hosted service
siderolabs/omni avatar
siderolabs/omni

Siderolabs Omni: Self-Hosted Kubernetes Control Without Manual Machine Setup

SaaS-simple deployment of Kubernetes - on your own hardware.

1,415 stars124 forksGoNOASSERTION

At a glance

What is it?
Siderolabs Omni provides a management plane for deploying Kubernetes clusters across bare metal, virtual machines, and cloud machines through an image-based workflow. Its main constraint is licensing: self-hosting without a production subscription is limited to non-production use.
Who is it for?
Platform teams should evaluate Omni when they operate Talos-based infrastructure and want one control plane for provisioning and managing Kubernetes across multiple machine types. Organizations that require unencumbered production self-hosting, an open-source server license, or evidence that every supported configuration matches their environment should first resolve licensing and validate the self-hosting requirements.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why Omni Moves Kubernetes Provisioning Up a Layer

Omni targets operators who need Kubernetes to run on infrastructure they control but do not want to reproduce machine installation, Talos configuration, and cluster allocation steps for every deployment. The README describes support for bare metal, virtual machines, and cloud machines, with cluster sizes ranging from a single node to larger installations. That scope makes it a management plane rather than another Kubernetes distribution. The underlying machines run Talos Linux, while Omni presents the allocation and operational workflow through its interface.

The intended workflow is unusually short: boot a machine from an Omni image, then select it for a cluster through the interface. Omni therefore sits between infrastructure operators and Kubernetes clusters. This is useful when the same machine inventory may become a new cluster, join an existing cluster, or be repurposed. It also avoids presenting the cluster as a hosted abstraction disconnected from the hardware beneath it.

This design is aimed at platform engineers, infrastructure teams, and organizations standardizing on Talos Linux. It is less convincing for a team that wants an ordinary upstream Kubernetes control plane without adopting Omni's image, identity integration, and licensing model. The README's phrase "Vanilla Kubernetes" indicates that the resulting workload is Kubernetes under operator control, not a proprietary application platform, but the lifecycle of the machines and clusters remains mediated by Omni and Talos.

How Omni Connects Images, Machines, and Clusters

The visible architecture begins with an Omni image booted onto a machine. Once the machine is available, an operator allocates it to a cluster through the UI. This makes machine enrollment and cluster membership the central data flow: infrastructure enters through boot media, allocation expresses the desired cluster membership, and Omni manages the Kubernetes deployment across those selected machines.

Omni is built on Talos Linux, so its role is easier to understand as Kubernetes lifecycle management for Talos-based infrastructure than as a generic installer for arbitrary Linux hosts. The repository layout supports that interpretation. The Go module is `github.com/siderolabs/omni`, while `client/`, `cmd/`, `internal/`, `frontend/`, and `deploy/` separate the client library, server commands, internal implementation, web interface, and deployment resources. The `go.mod` file also contains protobuf and gRPC-related dependencies, indicating an API-oriented Go server rather than a collection of shell scripts.

The README lists a highly available Kubernetes API endpoint as a built-in feature and describes the management interface as suitable for operations. It also says Omni integrates with an enterprise identity provider and supports firewall-friendly management of edge nodes. Those claims matter because the control plane has to authenticate operators, maintain the Kubernetes API, and communicate with machines that may sit behind firewalls. The README does not describe enrollment tokens, machine trust establishment, resource reconciliation, backup procedures, or the exact failure behavior of an unavailable management service.

Self-Hosting Omni and Performing the First Allocation

The README does not provide a self-contained installation command or a local image build-and-run recipe. It directs non-production self-hosters to the documentation at `https://omni.siderolabs.com/how-to-guides/self_hosted/index`. For deployment on an existing Kubernetes cluster, it points to the repository's Helm chart documentation at `deploy/helm/omni/README.md`. Because those installation details are not present in the repository documentation, there is no verified command here to copy.

For a first operational use, the documented sequence begins by booting a supported machine from an Omni image. After the machine is visible to Omni, the operator uses the management interface to allocate it to a cluster. The expected result is a machine assigned for Kubernetes management rather than a cluster created by an unverified command line procedure.

This is a short first-use path, but it is not a complete production setup guide. Before allocating infrastructure, an operator would still need a working Omni deployment, an identity-provider configuration accepted by that deployment, and machine requirements from the Talos and Omni documentation. Those details are not specified in the README. The repository does contain a `Dockerfile`, `Makefile`, and Kubernetes deployment resources, but their presence alone does not establish a supported quick-start procedure for an evaluator.

Bare Metal, Cloud, GPU, and Storage Boundaries

Omni presents a unified management model for bare metal, virtual machines, and cloud machines. That breadth can reduce the number of provisioning paths an operator maintains, particularly when a Kubernetes platform spans on-premises hosts and rented capacity. The image-based boot flow is especially relevant to bare metal because it avoids relying on a conventional long-lived operating system installation.

The README also states that Omni supports GPUs and most container storage interfaces. That claim should be read as a compatibility direction, not a guarantee for every driver or GPU model. The README does not enumerate supported hardware, kernel configuration, CSI implementations, cloud providers, or virtualization platforms. It also does not document how those integrations are detected or validated.

Scale is another boundary. Omni says it supports everything from single-node clusters to its largest scale, but the README gives no maximum node count, tested hardware envelope, or capacity model for the management service itself. Operators should not translate the breadth of the stated support into an infrastructure-sizing guarantee. The first technical check is compatibility of the exact machines, GPU configuration, storage drivers, and network topology with the upstream Talos and Omni documentation.

Omni Against Manual Talos and Kubernetes Administration

The practical alternative is to run Talos Linux directly and manage machine configuration and Kubernetes resources without Omni. In that model, infrastructure teams retain the same underlying operating system but take responsibility for whatever lifecycle tooling, configuration delivery, authentication, and cluster allocation process they build. Omni instead supplies an image-led workflow, a management interface, identity integration, and a built-in highly available Kubernetes API endpoint.

That difference is more than packaging. Manual Talos administration can fit an organization that already has infrastructure-as-code, declarative node configuration, and a mature cluster lifecycle platform. Omni is aimed at reducing the amount of separate machinery needed to move from a newly booted machine to Kubernetes cluster membership. The tradeoff is adoption of a Siderolabs management plane and its licensing terms.

A hosted subscription is another route documented by Omni, while direct self-hosting is limited for non-production use under the stated license. Teams should compare operational ownership rather than simply feature lists. Manual administration offers control over the process but requires the team to supply that process. Omni supplies a defined workflow but introduces a server product, UI, licensing boundary, and additional compatibility surface.

Release Activity, Build Surface, and Upgrade Responsibilities

The repository is not archived, and the last push was on 2026-10-15. Releases listed for October include `v1.12.4` on 2026-10-07, `v1.12.3` on 2026-09-30, and `v1.12.2` on 2026-09-23. This is recent release activity, although the release list alone does not state the upgrade procedure, compatibility matrix, or migration policy.

The repository presents a substantial Go and web build surface. The module declares `go 1.27.2`, the `Makefile` sets a matching default `GO_VERSION`, and the generated Dockerfile coordinates Go, JavaScript, protobuf, frontend, linting, documentation, packaging, and signing stages. The Dockerfile warns that it is automatically generated by KRES and should not be edited. This arrangement can improve repeatability for maintainers, but it also means operators should use documented build targets and release artifacts rather than improvising around individual container stages.

Licensing is split. The main Omni Server code uses Business Source License 1.1, while the client library uses MPL-2.0. The README says BSL permits free installations in non-production environments and directs production users to Sidero sales. This is not a conventional all-open-source server license, so an organization cannot treat self-hosting as an unrestricted production path without reviewing the actual `LICENSE` file.

Editorial conclusion

Platform teams should evaluate Omni when they operate Talos-based infrastructure and want one control plane for provisioning and managing Kubernetes across multiple machine types. Organizations that require unencumbered production self-hosting, an open-source server license, or evidence that every supported configuration matches their environment should first resolve licensing and validate the self-hosting requirements. The clearest first verification is whether the BSL 1.1 terms permit the intended production deployment and whether the documentation covers the required identity provider, infrastructure types, storage drivers, and upgrade path.

Frequently asked questions

Can Siderolabs Omni be self-hosted for production use?

Not as an unrestricted use under the terms summarized by the README. It says free installations are allowed for non-production environments and directs production users to contact Sidero sales.

Which operating system does Siderolabs Omni manage?

Omni is built on Talos Linux. Its documented workflow has a machine boot from an Omni image before being allocated to a Kubernetes cluster.

What infrastructure can Siderolabs Omni manage?

The README identifies bare metal, virtual machines, and cloud machines. It also states support for GPUs and most CSIs, but the README does not enumerate compatible products or versions.

Official sources

  1. Issues
  2. README
  3. Releases
  4. siderolabs/omni on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/siderolabs-omni.svg)](https://hysenlabs.com/projects/siderolabs-omni)

Was this useful?