141 Commits

Author SHA1 Message Date
Utku Ozdemir
cf10a6c442
release(v1.5.9): prepare release
This is the official v1.5.9 release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-03-09 14:39:22 +01:00
Oguz Kilcan
311657f347
release(v1.5.8): prepare release
This is the official v1.5.8 release.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-02-27 16:30:30 +01:00
Artem Chernyshev
e83051fad3
release(v1.5.7): prepare release
This is the official v1.5.7 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-02-25 14:41:00 +03:00
Artem Chernyshev
92ecc79f7e
release(v1.5.6): prepare release
This is the official v1.5.6 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-02-24 21:48:35 +03:00
Artem Chernyshev
4defffc84a
release(v1.5.5): prepare release
This is the official v1.5.5 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-02-20 21:06:47 +03:00
Utku Ozdemir
8fa3caf476
release(v1.5.4): prepare release
This is the official v1.5.4 release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-02-18 14:58:20 +01:00
Utku Ozdemir
9b46d417eb
release(v1.5.3): prepare release
This is the official v1.5.3 release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-02-17 11:48:04 +03:00
Artem Chernyshev
348ea65f86
release(v1.5.2): prepare release
This is the official v1.5.2 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-02-12 18:26:05 +03:00
Artem Chernyshev
0de60cd3a6
release(v1.5.1): prepare release
This is the official v1.5.1 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-02-11 21:00:12 +03:00
Edward Sammut Alessi
c27f8d3963
release(v1.5.0): prepare release
This is the official v1.5.0 release.

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2026-02-05 16:06:08 +01:00
Utku Ozdemir
056d5e4e18
fix: bind wireguard to configured address instead of all interfaces
Having issues with wireguard connectivity from QEMU machines to Omni running on macOS revealed an issue: If macOS has multiple interfaces with IPs in the same subnet (for example connected both via ethernet and Wi-Fi), it could respond to WireGuard packets not from the interface they are received from, but from the other one, even when the wg endpoint was explicitly set to be a specific IP:PORT in Omni config. And this was breaking wg handshakes.

The core issue seems to be the wireguard-go library not implementing sticky sockets (`IP_PKTINFO`) on macOS.

While investigating, we found that the standard wireguard-go `StdNetBind` always binds to all interfaces (`0.0.0.0`), ignoring any specific host in the endpoint configuration. Add a custom bind implementation that respects the configured host.

This fixes the macOS issue as a side benefit.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-01-29 12:15:32 +01:00
Oguz Kilcan
4978834232
test: fix failing workload proxy tests
Fix failing workload proxy tests

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-01-28 13:32:27 +01:00
Edward Sammut Alessi
0f8a3d6c6f
test(e2e): add an e2e test for exposed services
Add an E2E test which adds an nginx service through an inlineManifests config patch on the control plane, and check that it is accessible.

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2026-01-23 18:57:19 +01:00
Artem Chernyshev
fd82327c26
release(v1.5.0-beta.0): prepare release
This is the official v1.5.0-beta.0 release.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-01-23 15:57:48 +03:00
Edward Sammut Alessi
d3ae77c0cc
chore: bump copyright to 2026
Bump copyright for conformance to 2026

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2026-01-21 15:30:49 +01:00
Oguz Kilcan
f56551abc3
chore: move some tests from e2e upgrades e2e test to misc upgrades test
Move some tests from e2e-upgrades test to e2e-misc-upgrades to speed up the overall speed, because the test was taking too much time.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-01-17 14:50:36 +01:00
Oguz Kilcan
2d5e58cbac
chore: rekres and bump deps
* rekres
* bump deps
* bump go to 1.25.6
* fix linter errors

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-01-16 11:15:02 +01:00
Edward Sammut Alessi
8f6d017077
chore: bump node to 24.13
Bump node to 24.13 to address CVEs https://nodejs.org/en/blog/vulnerability/december-2025-security-releases

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2026-01-15 16:33:56 +01:00
Oguz Kilcan
85d099489f
chore: separate integration-tests
Separate integration/e2e tests for qemu and talemu, so we can run them in parallel.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-01-14 15:45:59 +01:00
Oguz Kilcan
ef2d931aac
chore: rekres and bump deps
* Rekres
* Bump deps
* Update default versions for talos and kubernetes

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-01-09 11:34:03 +01:00
Utku Ozdemir
9bf690ef2e
refactor: do SQLite migrations unconditionally, rework the config flags
Remove the flags for turning on SQLite storage for:
- Discovery service state
- Audit logs
- Machine logs

Instead, migrate them unconditionally to SQLite on the next startup.

Remove many flags which are no longer meaningful. Only keep the ones which are required for the migrations.

Additionally: Make the `--sqlite-storage-path` (or its config counterpart `.storage.sqlite.path`) required with no default value, as a default value does not make sense for it in most of the cases.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-12-12 12:47:04 +01:00
Oguz Kilcan
7b3ffa2a56
release(v1.4.0-beta.0): prepare release
This is the official v1.4.0-beta.0 release.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-12-10 16:20:29 +01:00
Oguz Kilcan
bc2a5a9986
chore: prepare omni with talos v1.12.0-beta.1
Prepare omni for upcoming talos version 1.12.0-beta.1.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-12-06 16:55:35 +01:00
Utku Ozdemir
52360252e6
fix: do not clear schematic meta values for non-UKI machines
META section updates are no-op for non-UKI machines, but still, the recent changes in the kernel args PR started clearing them (since now we compute schematic ID always), causing the schematic ID to be updated, which caused cluster machines to be upgraded and restarted.

Remove the UKI check and keep meta valus always as-is.

Update the integration tests to:
- Also include META values.
- Make Omni upgrade test pick both UKI and non-UKI machines.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-11-20 12:41:18 +01:00
Utku Ozdemir
db97e09291
chore: bump Kubernetes version to 1.34.2
Updated the default Kubernetes version to 1.34.2 and adjusted related
version constants in the integration script and Go files.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-11-14 16:57:00 +01:00
Utku Ozdemir
7468e6ea02
chore: rekres, make linters happy, bump Go, deps and Talos versions
Bump Go to 1.25.4, default Talos version to 1.11.5.
Bump all Go dependencies.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-11-10 23:51:22 +01:00
Andrey Smirnov
75a9f3ee9f
feat: use sqlite as secondary resource storage
This pulls in https://github.com/cosi-project/state-sqlite/pull/2

Fixes https://github.com/siderolabs/omni/issues/1770

See https://github.com/siderolabs/omni/issues/1768

Sample migration logs:

```
2025-11-05T11:18:47.340Z        ESC[34mINFOESC[0m       omni/state_sqlite.go:122        migrated resources from BoltDB to SQLite        {"namespace": "metrics"
, "type": "EtcdBackupOverallStatuses.omni.sidero.dev", "count": 1}
2025-11-05T11:18:47.340Z        ESC[34mINFOESC[0m       omni/state_sqlite.go:122        migrated resources from BoltDB to SQLite        {"namespace": "metrics"
, "type": "EtcdBackupStatuses.omni.sidero.dev", "count": 0}
2025-11-05T11:18:47.342Z        ESC[34mINFOESC[0m       omni/state_sqlite.go:122        migrated resources from BoltDB to SQLite        {"namespace": "metrics"
, "type": "MachineStatusLinks.omni.sidero.dev", "count": 2}
2025-11-05T11:18:47.342Z        ESC[34mINFOESC[0m       omni/state_sqlite.go:67 removed old BoltDB database after migration     {"path": "_out/secondary-storag
e/bolt.db"}
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-05 15:40:24 +04:00
Utku Ozdemir
31d4213035
fix: remove non-machinery Talos import, fix changelog
Changelog included the whole of Talos due to the unwanted dependency of `github.com/siderolabs/talos` brought in by a test. Remove that dependency, and re-generate the changelog for `v1.3.0-beta.0`.

Also, bump the Talos machinery version and rekres, which also bumps Go version to `1.25.3`.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-30 19:51:09 +01:00
Utku Ozdemir
bb582359da
release(v1.3.0-beta.0): prepare release
This is the official v1.3.0-beta.0 release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-30 16:33:01 +01:00
Edward Sammut Alessi
9d3ae445d2
chore(frontend): update node to latest lts
Update the node version used by the frontend to the latest LTS version 24.11.0

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2025-10-29 11:59:37 +01:00
Utku Ozdemir
15deddde56
feat: implement extra kernel args support
(Re)implement the kernel args support functionality in the following way:
- Only support UKI or UKI-like (>=1.12 with GrubUseUKICmdline) systems.
- In `MachineStatusController`:
  - When we see a machine for the first time, do a one-time operation of extracting of the extra kernel args from it and store them in the newly introduced `KernelArgs` resource. This resource is user-owned from that point on.
  - Mark the `MachineStatus` with an annotation as "its kernel args are initialized".
  - Start storing the the raw schematic.
  - Take a one-time snapshot of the extensions on the machine and set them as "initial extensions". They might not be the "actual initial", i.e., the set of extensions when we actually seen the machine for the first time, but we do this in a best-effort basis. We need this, since now we cannot simply go back to the initial schematic ID when all extensions are removed - kernel args are also included in the schematic.
  - Start collecting the kernel cmdline from Talos machines as well.
- Adapt the `SchematicConfiguration` controller to not revert to the initial schematic ID ever - it now always computes the needed schematic - when it wants to revert to the initial set of extensions, it uses the new field on the `MachineStatus`.
- Introduce the resource `MachineUpgradeStatus` and its controller `MachineUpgradeStatusController`, which handles the maintenance mode upgrades when kernel args are updated. The controller is named this way, since our long-term plan is to centralize all upgrade calls to be done from this controller. Currently, it does not change Talos version or the set of extensions. It works only in maintenance mode, only for kernel args changes (when supported).
- Introduce the resource `KernelArgsStatus` and its controller `KernelArgsStatusController`, which provides information about the kernel args updates. Its status is reliable in both maintenance and non-maintenance modes.
- Build a UI to update these args (with @Unix4ever's help).

Co-authored-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-28 14:44:48 +01:00
Utku Ozdemir
02425267fe
test: improve integration tests
- Make sure the console output of QEMU is sent to `console=ttyS0` when non-UKI is used.
- Use the new `cluster create` arg `--skip-injecting-extra-cmdline` to make sure `console=ttyS0` kernel arg is not duplicated.
- Get rid of `SUDO_USER` var.
- Add the missing `--omni.output-dir` flag to make sure the support bundles are collected to proper destinations.
- Gather all artifacts to be collected under `TEST_OUTPUTS_DIR` for better organization in the test artifacts archive.
- Quote some strings.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-28 09:53:03 +01:00
Artem Chernyshev
b5765d8d1c
test: use bridge IP for WireGuard in CI
It was using local pod IP which was generating new schematic every time
the test runs.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-10-20 12:22:58 +03:00
Utku Ozdemir
d0c8b1666b
chore: bump Talos to 1.11.3, reorder CI workflow jobs
Make unit tests and lint run before the integration tests.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-17 13:30:35 +02:00
Utku Ozdemir
049ab877e9
chore: revert 'feat: add support for updating kernel args'
Some checks failed
chromatic / Run chromatic (push) Has been cancelled
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
This reverts commit ae9d7cca4b3ef2c5923cc6476042a575d4158eee.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-14 18:40:58 +02:00
Oguz Kilcan
0d58ade7bf
feat: implement cluster import
Allow importing existing talos cluster to Omni using `omnictl cluster import`

Closes: #1315

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-10-14 17:01:07 +02:00
Utku Ozdemir
c88503dcba
chore: bump default Talos version, deps, rekres, re-generate
Bump everything to appropriate versions. Remove some unused imports.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-13 11:23:45 +02:00
Edward Sammut Alessi
ef6584f951
chore(frontend): update dependencies
Update frontend dependencies

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2025-10-08 21:25:17 +02:00
Oguz Kilcan
d27624abc6
chore: rekres and bump go to 1.25.2
Rekres, fix linter issues, bump go to 1.25.2
See groups.google.com/g/golang-nuts/c/Gxn25BP4MXk/m/3KrM-XBOBAAJ

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-10-08 13:22:55 +02:00
Utku Ozdemir
ae9d7cca4b
feat: add support for updating kernel args
Allow updating kernel args, similar to the set of extensions.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-08 12:08:53 +02:00
Utku Ozdemir
5e9b7e2f28
release(v1.2.0-beta.3): prepare release
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
This is the official v1.2.0-beta.3 release.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-09-25 13:18:35 +02:00
Utku Ozdemir
5beb24f7d0
fix: fix the order in the grpc interceptor chain
Change the interceptor order to move the Prometheus metrics collector earlier, so that we can get metrics for the calls that fail early. Related to siderolabs/omni#1606.

Additionally, ensure that `get` access to the `AuthConfig` resource does not require a GRPC signature.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-09-23 11:24:51 +02:00
Artem Chernyshev
ecb9e7d1a8
fix: add oidc-redirect-url arg to the generated kubeconfigs
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
If `grant-type=authcode-keyboard` is requested.
Fixes: https://github.com/siderolabs/omni/issues/1476

> Note: configs generated with the new Omni and `authcode-keyboard`
enabled won't work for `oidc-login` below `v1.33`. See https://github.com/int128/kubelogin/pull/1263

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-09-22 18:31:07 +03:00
Artem Chernyshev
7856de3e7f
fix: use correct indentation in the generate-certs scripts
It was using tabs instead of spaces for the `docker-compose.override.yml` file template.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-09-22 13:37:50 +03:00
Oguz Kilcan
db939c6ece
release(1.2.0-beta.0): prepare release
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
This is the official 1.2.0-beta.0 release.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-09-18 12:25:02 +02:00
Oguz Kilcan
1f098cfafe
test: improve test cluster creation for e2e tests
* Improve test cluster creation for e2e tests
* Remove partial config apply after vm wipe because it's no longer necessary

Co-authored-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-09-18 11:27:28 +02:00
Oguz Kilcan
21cd39155c
chore: rekres and fix e2e test runs
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
Rekres to bring back retrieve PR labels step default job and use relative location of GH workspace instead of `/tmp` for local storage.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-09-17 17:17:11 +02:00
Edward Sammut Alessi
5ab4fe4156
chore: migrate omni e2e tests to javascript
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (push) Has been cancelled
default / e2e-cluster-import (push) Has been cancelled
default / e2e-forced-removal (push) Has been cancelled
default / e2e-omni-upgrade (push) Has been cancelled
default / e2e-scaling (push) Has been cancelled
default / e2e-short (push) Has been cancelled
default / e2e-short-secureboot (push) Has been cancelled
default / e2e-templates (push) Has been cancelled
default / e2e-upgrades (push) Has been cancelled
default / e2e-workload-proxy (push) Has been cancelled
default / integration-test (push) Has been cancelled
default / lint (push) Has been cancelled
default / unit-tests (push) Has been cancelled
Migrate the omni E2E tests to javascript inside the frontend space

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
2025-09-16 19:08:01 +02:00
Oguz Kilcan
1b4de5b798
feat: abort ongoing cluster import process
Added a new omnictl command for aborting cluster import process and removing the created resources (e.g `Cluster`, `MachineSet`s, `MachineSetNode`s without reseting the machines.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-09-15 15:06:31 +02:00
Oguz Kilcan
9b5e552353
chore: rekres and bump deps
* Rekres
* Bump deps
* Update default versions for talos and kubernetes

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-09-15 11:31:14 +02:00