15 Commits

Author SHA1 Message Date
Pranav Patil
01a0b3e601
fix: add required SQLite storage path flag to compose.yaml
Add the required flag `--sqlite-storage-path`.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-02-19 09:44:13 +01:00
Oguz Kilcan
bd86ff3127
chore: remove deprecated migration flags, config fields, and migration code
The deprecated flags and config fields kept for the SQLite migration period (v1.4.0) have been removed along with all automatic migration code for BoltDB secondary storage, file-based audit logs, file-based discovery service snapshots, and circular buffer machine logs.

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2026-02-16 10:38:53 +01: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
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
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
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
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
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
Artem Chernyshev
88f5116301
chore: run inspector in the dev docker-compose
Some checks are pending
default / default (push) Waiting to run
default / e2e-backups (push) Blocked by required conditions
default / e2e-cluster-import (push) Blocked by required conditions
default / e2e-forced-removal (push) Blocked by required conditions
default / e2e-omni-upgrade (push) Blocked by required conditions
default / e2e-scaling (push) Blocked by required conditions
default / e2e-short (push) Blocked by required conditions
default / e2e-short-secureboot (push) Blocked by required conditions
default / e2e-templates (push) Blocked by required conditions
default / e2e-upgrades (push) Blocked by required conditions
default / e2e-workload-proxy (push) Blocked by required conditions
The inspector will start on `0.0.0.0:12000` if the compose is started
`WITH_DEBUG=true`.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-07-25 14:50:28 +03:00
Utku Ozdemir
0e76483bab
chore: rekres, bump deps, Go, Talos and k8s versions, satisfy linters
Some checks failed
default / default (push) Has been cancelled
default / e2e-backups (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
- Bump some deps, namely cosi-runtime and Talos machinery.
- Update `auditState` to implement the new methods in COSI's `state.State`.
- Bump default Talos and Kubernetes versions to their latest.
- Rekres, which brings Go 1.24.5. Also update it in go.mod files.
- Fix linter errors coming from new linters.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-07-11 18:23:48 +02:00
Artem Chernyshev
ed946b30a6
feat: display OMNI_ENDPOINT in the service account creation UI
Fixes: https://github.com/siderolabs/omni/issues/858

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-01-29 15:27:36 +03:00
Dmitriy Matrenichev
d194d59be8
feat: implement audit log
This PR implements audit logs. To enable it you have to set the `--audit-log-dir` flag
to a directory where the audit logs will be stored. The audit logs are stored in a JSON format.

Example:
```json
{"event_type":"update","resource_type":"PublicKeys.omni.sidero.dev","event_ts":1722537710182,"event_data":{"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","ip_address":"<snip>","user_id":"a19a7a38-1793-4262-a9ef-97bc00c7a155","role":"Admin","email":"useremail@userdomain.com","confirmation_type":"auth0","fingerprint":"15acb974f769bdccd38a4b28f282b78736b80bc7","public_key_expiration":1722565909}}
```

Keep in mind that `event_ts` are in milliseconds instead of seconds.
Field `event_data` contains all relevant information about the event.

To enabled it in the development environment you will have to add the
`--audit-log-dir /tmp/omni-data/audit-logs` line to `docker-compose.override.yml`
or run `generate-certs` again.

For #37

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-08-02 03:15:31 +03:00
Utku Ozdemir
4b50d7cdc9
test: fix flaky test by longer k8s node checks and retries
Fix the flakiness in `ReplaceControlPlanes` test that was introduced by the recently added `KubernetesNodeAuditController`. This controller changed the Kubernetes node deletion logic to not block the `ClusterMachineTeardownController` for node deletions, as itself would take care of it later.

This causes the replaced control plane node in this test to be removed with a delay, as it is now removed by the audit controller after a grace period.

Improve the assertion between k8s<>Omni nodes by:
- not only asserting the number of nodes but also their names
- adding retries to this assertion, so it would keep trying until the audit controller does its job and removes the node from Kubernetes
- increasing its timeout to give the audit controller enough time (as it gives nodes a grace period of a minute) to remove the node

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-04-27 02:14:29 +02:00
Utku Ozdemir
a32cb8a1f8
fix: start watch before delete in omnictl delete
Start the watch before sending the destroy call to not miss events.

Add support for passing more than a single resource to the call, e.g., `omnictl delete link link-1 link-2 link-3`.

Additionally, bring back the "WatchKind" behavior when `--all` or `--selector` is used, or when the number of resources to be deleted is above a certain size.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-04-26 22:49:00 +02:00
Andrey Smirnov
dfcbaae7d0
chore: initial commit
Omni is source-available under BUSL.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Co-Authored-By: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Co-Authored-By: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Co-Authored-By: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
Co-Authored-By: Philipp Sauter <philipp.sauter@siderolabs.com>
Co-Authored-By: Noel Georgi <git@frezbo.dev>
Co-Authored-By: evgeniybryzh <evgeniybryzh@gmail.com>
Co-Authored-By: Tim Jones <tim.jones@siderolabs.com>
Co-Authored-By: Andrew Rynhard <andrew@rynhard.io>
Co-Authored-By: Spencer Smith <spencer.smith@talos-systems.com>
Co-Authored-By: Christian Rolland <christian.rolland@siderolabs.com>
Co-Authored-By: Gerard de Leeuw <gdeleeuw@leeuwit.nl>
Co-Authored-By: Steve Francis <67986293+steverfrancis@users.noreply.github.com>
Co-Authored-By: Volodymyr Mazurets <volodymyrmazureets@gmail.com>
2024-02-29 17:19:57 +04:00