image-factory 1.8.0 (2026-11-03)
Welcome to the v1.8.0 release of image-factory!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/image-factory/issues.
HTTP Status Fixes
Several error paths now return the correct HTTP status instead of 500 or 401:
- A stored API token that cannot be checked because the token storage is unavailable is answered with
503, so clients can retry, instead of401. - A
403from the token storage registry is treated as a failed read, not as a missing token or an empty token list. - An installer tag that is not a valid version, or an unknown file under
/talosctl/<version>/, is answered with404. /secureboot/signing-cert.pemis answered with404on a factory without Secure Boot.- An invalid Talos version in the extensions and overlays endpoints is answered with
400.
A failed fetch of the Secure Boot signing certificate from a remote signer is no longer cached until restart; the next request retries it.
Other Changes
- Legacy signature bundles are validated by checking that the image digest matches the signature's claims.
- An SBOM is generated for the Image Factory image.
New UI
The browser UI has been rewritten as a Vue single-page app and replaces the server-rendered UI.
It follows the Sidero design system, and is served with a Content-Security-Policy header.
The Enterprise Auth0 landing, login error and logout pages are part of the new UI as well.
VEX Annotations
Enterprise only: scan results are annotated with VEX comments.
Raw JSON statements carry the annotation, and the UI shows it next to the upstream CVE description.
The talos-vex-data image is proxied through the registry frontend on Enterprise builds.
Other builds answer 402 Payment Required for it, and a factory without a talosVexData repository configured answers 404.
Contributors
- Andrey Smirnov
- Edward Sammut Alessi
- Mateusz Urbanek
- immanuwell
- Alexander Soelberg Heidarsson
- Brian Cappello
- Daniel Chaplin
- Erwan Leboucher
- Jarrad S
- Karthik Chowdary
- Kyle Tse
- Loki San
- Michał Małyska
- Nicolas Brainez
- Noel Georgi
- Oguz Kilcan
- Orzelius
- Spencer Smith
- Utku Ozdemir
- frauniki
- sasha-sup
Changes
39 commits
c9c1f39release(v1.8.0): prepare release57ba7d3feat: generate sbom for factoryb611fd1fix(frontend): fix some minor design issuesb881b7echore: bump talos and pks to latest5e3e789chore(frontend): bump frontend dependencies3660cbcchore: rekresf51705ffeat(frontend): add a content-security-policyc800285fix(frontend): fix content vertical padding being lost90d098ffeat(frontend): move page intro into step targetc864a64feat(frontend): add missing translations for a few itemsa46875ffeat(frontend): add visual feedback to copy buttonsa92bd19feat(frontend): align inputs and code blocks to the design systemab6f315feat(frontend): align checkbox and radio with design system7365309feat(frontend): add dim theme to factorybac4e58feat(frontend): change language select to match theme style5614c6cfeat(frontend): scale layout to fit the page48eae73feat(frontend): add stories for all components16d65e5test(frontend): migrate tests to MSWc6c073efeat(frontend): add storybook to factory89e1a03feat(frontend): migrate auth0 pages to vued0e80c5test(frontend): add tests for enterprise auth0 flowf522066chore(frontend): add license headers for frontend to conform2878068feat(frontend): make spa the default and delete old uic6868bdtest(frontend): add e2e suite for factory frontend81515cffeat(frontend): re-implement the wizard frontend in Vue45d147afeat: add /api routes for vue frontend requirements10cf83echore(frontend): add codeowners and vscode settings4058260feat: proxy talos-vex-data image for Enterpriseb2bde76feat(frontend): scaffold a vue spa frontend into factoryb9edbb1feat: annotate scan results with VEX comments2216580feat: support WITH_DEBUG flagbb9aaf5feat: add docker-compose override supportd8cc9ecfeat: add crane to docker-compose7cdbae2refactor: skip image pushing for local docker compose builds6857d8ffix: return correct HTTP statuses on several error pathsbc9b7cachore: rework IF UI7f64858chore: update dependencies7402544feat: provide landing page for link parsing, robots.txt2dd2e55fix: perform correct validation of legacy signature bundles
Changes from siderolabs/go-vex
Changes from siderolabs/talos
62 commits
dad8d3edfrelease(v1.14.5): prepare release2f97b6a4btest: verify on-demand kernel module loading end-to-endc35fd8ceffeat: load kernel modules on demand via the modprobe usermode helperbf34a0ebbfeat: add EDAC_10NM kernel module25c16761cfix: race with platform accessing metadata volumesb88cda936feat: update etcd to 3.7.334d408094fix: pull images over HTTP/1.12dc3686b1fix: preserve project quotas on temporary growfs mountsbffcf9b48fix: correctly pass hostname to the proxy in gRPC dial6b3ea905bfix: preserve rejected edits in talosctl editb6e5fa2e2feat: implement RAID1 (md-raid) support in BIOS modefb2b077b5fix: ignore netlink recoverable errors in watchers2f7efe81bfix: skip kexec when the kernel finds no free memory regiond6488456bfix: provide proper concurrency for health checks03075319bfix: preserve omitted CEL expressions when patching configsaca5abc16fix: skip EFI boot entries that cannot be decoded9c69456c9fix: read VMware guestinfo with SecureBoot enabled6c6fec7d5fix: parse EFI load options with an empty descriptione0002327bfix: route pod CIDRs matching the KubeSpan ULA purpose byte449f82d46fix: wait for inactive MD arrays before volume discovery824b0f976test: reproduce degraded md boot array rebootce2fa4132fix: high cpu usage by the bridge keepalive dummy qemu vm51eda9a51chore: add qemu-ip-family integration suitee700de0c0feat: update Linux 6.18.58, Go 1.26.103fb46c378release(v1.14.4): prepare release68da63f11release(v1.14.3): prepare releasecbe344931fix: disable GSO offload on QEMU 10.2+1e3f3ad5ftest: adapt minimal settings to new QEMU version59e1fcd63fix: restrict raw disk helper to linux08b213686fix: make the imager installer reproducible with system extensionsa9b984aabfix: improve KubePrism load balancer recoveryd01538115fix: clean up mountpoints on unmount146c2bd92fix: roll back stacked try configs to the config before the first tryf5182237efix: correct handling of DHCP changing addressf97d79fc3fix: image verification test5fadce79dfix: verify the claim for the legacy bundle image verification6cade9fedfix: restore source names for pseudo filesystem mounts692e6796bfix: add validation for the PTP device nameb166b72cafix: network on azure (and might fix some other platforms)4c4e57a4bfeat: update etcd to 3.7.20d3b40c44feat: update tools and pkgs51d094f47fix: tear down stale routes before adding their replacementsf513c7358release(v1.14.2): prepare release114c70ae3feat: update Kubernetes default to 1.37.100a53e13dfeat: update containerd to 2.3.6305ced360test: fix the md-boot pipeline540a427c3docs: clarify the KMS endpoint schemef53a00050fix: drop devices from the last observed generation if they are gonea015f8176feat: handle the change in kubelet's CPU and memory policiesc792fa485fix: perform stricter validation of hostnames/search domains3137edfb0fix: handle correctly routes without outlinkname sete966b131dchore: clean up unused settings in LVM reconcile controllersda3b328dbfix: do not disclose pre-shared Wireguard key in LinkStatus80fd649d1fix: retry transient LVM reconciliation failures98b3cb51efeat: add macsec module949b85fa7fix: preserve hostname under Docker (in container mode)ad65799abfix: handle Akamai/Linode metadata without IPv62e87819aadocs: clarify admission control and flannel config docsa9422412dtest: fix the aws-arm64 testc7e25249dfix: use correct conditions on CRI <> sandboxd dependency5a78c3fc3fix: extend the USB settle code for more code pathsa8ac3ca50feat: sync pkgs/tools
Dependency Changes
- cloud.google.com/go/auth v0.23.3 -> v0.24.1
- github.com/anchore/go-logger v0.1.1 -> v0.2.0
- github.com/anchore/grype v0.119.0 -> v0.121.0
- github.com/anchore/syft v1.52.0 -> v1.55.0
- github.com/klauspost/compress v1.20.0 -> v1.20.3
- github.com/knadh/koanf/parsers/dotenv v1.1.2 -> v1.1.3
- github.com/knadh/koanf/providers/env/v2 v2.0.1 -> v2.0.2
- github.com/knadh/koanf/v2 v2.3.6 -> v2.3.8
- github.com/minio/minio-go/v7 v7.3.0 -> v7.4.1
- github.com/moby/moby/api v1.56.0 -> v1.56.1
- github.com/prometheus/client_golang v1.24.1 -> v1.25.0
- github.com/siderolabs/go-blockdevice/v2 v2.0.32 -> v2.0.36
- github.com/siderolabs/go-vex v0.1.4 -> v0.1.5
- github.com/siderolabs/talos v1.14.1 -> v1.14.5
- github.com/siderolabs/talos/pkg/machinery v1.14.1 -> v1.14.5
- github.com/sigstore/sigstore v1.10.10 -> v1.11.0
- golang.org/x/crypto v0.57.0 -> v0.58.0
- golang.org/x/sync v0.23.0 -> v0.24.0
- golang.org/x/sys v0.48.0 -> v0.49.0
Previous release can be found at v1.7.2