Omni 1.12.0 (2026-09-11)
Welcome to the v1.12.0 release of Omni!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/omni/issues.
Image Factory API Token Authentication
Omni can now authenticate to the image factory with an API token. The token is read from a file, so it can be rotated without a restart. Basic auth is still supported for self-hosted factories using htpasswd.
For such a factory, Omni creates a machine token and puts it into the registry auth config of every machine, so that the machines can pull images from the factory.
The token file is configured under registries.factories.<primary|secondary> in the config file:
registries:
factories:
primary:
url: https://factory.example.com
tokenFile: /run/secrets/factory-tokenThe equivalent flags are --primary-factory-token-file and --secondary-factory-token-file.
Security Scans in omnictl
The new omnictl security command fetches the security artifacts of a Talos schematic from the enterprise image factory:
scan: the vulnerability scan report.sbom: the SPDX SBOM.vex: the VEX document.
It takes either a cluster ID, covering every schematic and architecture the cluster runs, or an explicit combination of Talos version, architecture and schematic. The scan output also shows the available Talos upgrade paths and the vulnerability diff for each of them.
These artifacts are only available on the enterprise image factory, so the command requires Omni to be configured with one.
Contributors
- Utku Ozdemir
- Edward Sammut Alessi
- Mateusz Urbanek
- Andrey Smirnov
- Dmitrii Sharshakov
- Immanuel Tikhonov
- Mateusz Urbanek
- Noel Georgi
Changes
27 commits
cd616f1cdrelease(v1.12.0): prepare release6192a1450feat: add security scans to omnictl6cdda713cfix: revert stabilizing the tunnel peer address across provisionsc4a37d55etest: run the enterprise image factory tests against the staging factoryc832a504ffeat: make the lifetime of the image factory machine tokens configurable70814f39crefactor(frontend): make frontend obtain artifact targets from backendd525fda6cfeat: implement ClusterArtifactTargets rpc callccc80d254feat: add ClusterArtifactTargets rpc methodaf65853e0release(v1.12.0-beta.0): prepare release723666686fix: restore the extra parameters of the sqlite connection string08695407dfix: read the node unique token uncached in the cleanup controller9ddfa5246feat: authenticate to the image factory with an API token800bcac19test: use ECDSA service account keys for the clusters in the testscd8598724fix: generate the registry auth document by the running Talos versionacc0c4f40chore: bump delve version in compose6692b2c0bfix: ensure the schematic on the target factory before an install8c7699a77fix: run the sqlite database with the NORMAL synchronous moded8a281c42chore(frontend): bump deps49861a25efix: reuse the node unique token already written to the machine74003273cchore: bump deps, rekres, Talos 1.13.100a6d296fdtest: poll for Vault readiness instead of sleeping in the testsd411b2554test: increase the timeout of the node label check46e112ac4chore(frontend): remove factory urls from csp8cbf034befix: keep the machine extensions consistent across extensions configurations0a22ac7affix(frontend): distinguish initial log fetch failures4c833c7e1fix: apply the registry mirrors to machines in maintenance modeedcad2769fix: retry the installer image pull in the maintenance lifecycle API
Changes since v1.12.0-beta.0
8 commits
cd616f1cdrelease(v1.12.0): prepare release6192a1450feat: add security scans to omnictl6cdda713cfix: revert stabilizing the tunnel peer address across provisionsc4a37d55etest: run the enterprise image factory tests against the staging factoryc832a504ffeat: make the lifetime of the image factory machine tokens configurable70814f39crefactor(frontend): make frontend obtain artifact targets from backendd525fda6cfeat: implement ClusterArtifactTargets rpc callccc80d254feat: add ClusterArtifactTargets rpc method
Changes from siderolabs/discovery-service
Changes from siderolabs/go-debug
Changes from siderolabs/image-factory
12 commits
4520b38fix(enterprise): evaluate VEX against Talos kernela27dfe6feat: enforce public API with OpenAPI773ba3cfix(ui): gate token create modal on the in-flight POST2e149c8fix(auth0): drop Bearer challenge from 401 response9f82ddefix: rename registryClientRefreshInterval to refreshIntervalf4f79dbfeat(enterprise): repo-per-org token storage, url-safe stored tokensf4e4d01feat(enterprise): expose actor profiles for token creation UI8a77753feat(enterprise): replace scope enum with route-defined capability scopes4d9710ffeat(enterprise): add CLI-only admin token scope4286666feat(enterprise): unify download and node tokens as scoped API tokens4becd5drelease(v1.6.1): prepare releasee5ff748fix: pull in Talos for the SBC/GRUB/EFI fix
Dependency Changes
- filippo.io/age v1.3.1 -> v1.3.2
- github.com/aws/aws-sdk-go-v2 v1.44.0 -> v1.46.0
- github.com/aws/aws-sdk-go-v2/config v1.32.40 -> v1.33.3
- github.com/aws/aws-sdk-go-v2/credentials v1.19.39 -> v1.20.3
- github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.3.17 -> v0.4.3
- github.com/aws/aws-sdk-go-v2/service/s3 v1.108.0 -> v1.111.0
- github.com/coreos/go-oidc/v3 v3.20.0 -> v3.21.0
- github.com/cosi-project/state-sqlite v0.4.0 -> v0.5.0
- github.com/fluxcd/cli-utils v1.2.2 -> v1.3.0
- github.com/go-jose/go-jose/v4 v4.1.4 -> v4.1.5
- github.com/google/go-containerregistry v0.22.0 -> v0.22.1
- github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 -> v2.3.4
- github.com/prometheus/client_model v0.6.2 -> v0.6.3
- github.com/prometheus/common v0.70.1 -> v0.71.0
- github.com/siderolabs/discovery-service v1.1.0 -> v1.1.1
- github.com/siderolabs/go-debug v0.6.2 -> v0.6.3
- github.com/siderolabs/image-factory v1.6.0 -> 4520b38a89a6
- github.com/siderolabs/omni/client v1.9.3 -> 000000000000
- github.com/siderolabs/talos/pkg/machinery 322de8bf2974 -> 5c5fd29e95f7
- github.com/zitadel/oidc/v3 v3.49.3 -> v3.49.6
- golang.org/x/crypto v0.55.0 -> v0.56.0
- sigs.k8s.io/controller-runtime v0.24.1 -> v0.25.0
Previous release can be found at v1.11.0