16 Commits

Author SHA1 Message Date
Utku Ozdemir
1e9b733cb0
chore: bump deps, rekres
Bump all dependencies.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-03-10 18:31:38 +01:00
Utku Ozdemir
d1c869a9d8
chore: bump deps, rekres
Bump all dependencies.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-02-12 20:43:45 +01:00
Artem Chernyshev
41506f72f8
chore: move graceful config rollout logic to the lowest controller level
Now graceful config rollout is handled by the
`ClusterMachineConfigStatusController`.
It calculates the available update quota by adding finalizers on the
`ClusterMachine` resources. By counting the resources with the
finalizers it tracks the remaining quota.
It now also calculates the pending changes which are not yet applied to
the machine in the `MachinePendingUpdates`.

Pending changes are not yet shown in the UI anywhere.

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

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2026-01-19 16:30:28 +03: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
Artem Chernyshev
8b5c29b303
feat: support locks,node delete and restore when using machine classes
Make `MachineSetNode` created without an owner by the
`MachineSetNodeController`.

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

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2025-11-21 20:44:17 +03:00
Orzelius
2a69059355
chore: rewrite MachineSetNodeController as QController
Fixes: https://github.com/siderolabs/omni/issues/556

Co-authored-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Signed-off-by: Orzelius <albert.kostusev@siderolabs.com>
2025-11-21 15:31:16 +03:00
Oguz Kilcan
13d83648c5
chore: prepare omni for talos v1.11.0-beta.2
Prepare omni for talos v1.11.0-beta.2

Signed-off-by: Oguz Kilcan <oguz.kilcan@siderolabs.com>
2025-08-13 21:30:24 +02: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
Andrey Smirnov
7acf2d90fa
feat: update machinery and specs to Talos 1.10.0
Some checks are pending
default / default (push) Waiting to run
default / e2e-backups (push) Blocked by required conditions
default / e2e-forced-removal (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
See #1053

Update also JSON schema for the config, use `UpgradeWithOptions` API.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-05-01 15:25:32 +04:00
Utku Ozdemir
5a26d4c7ac
feat: add resources and controllers for bare metal infra provider
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-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
Introduce the concept of "static" infra providers, e.g., bare-metal infra provider, which manage a static set of machines contrary to the "regular" infra providers.

Add the following resources:

- `infra.Machine`: similar to `MachineRequest`, lives in the `infra-provider` namespace, serving as the input of the owning static provider. It is created in the `MachineController` if there is a SideroLink connection with the static provider ID. Regular flow of `Machine` creation is blocked, until this `infra.Machine` is accepted.

- `infra.MachineStatus`: similar to `MachineRequestStatus`, lives in the `infra-provider` namespace, serving as the output of the owning static provider. Its lifecycle must be bound to the corresponding `infra.Machine`.

- `infra.MachineState`: a resource that is supposed to be shared by Omni and bare-metal provider bi-directionally - they both can read from and write to it. It is currently used to mark the machine as installed when we observe an installation (through `SequenceEvent`s in the event sink), and to mark it as non-installed after we wipe it in the provider.

- `omni.InfraMachineConfig`: a user-managed resource to mark the `infra.Machine`s as accepted or set their desired power state. The acceptance information is then propagated to the `infra.Machine` resource. A machine which was already accepted cannot be unaccepted (checked by a validation), and this resource can only be removed when the `siderolink.Link` for the matching infra machine is removed.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-11-27 00:00:20 +01:00
Dmitriy Matrenichev
dc349c1778
chore: do a full generate with latest deps
Update proto generated code.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-08-21 23:46:39 +03:00
Utku Ozdemir
551286e9ba
chore: bump go to 1.22.4, rekres
Bump Go, rekres to get new protobuf and gateway versions, regenerate sources with the new versions.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-06-20 22:53:14 +02:00
Artem Chernyshev
4d23186654
feat: show pending config updates due to locked machine
Display pending machine config updates count for the `MachineSet` and
mark each machine which is locked and has the config update which is not
applied yet.

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

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-06-10 17:01:51 +03:00
Dmitriy Matrenichev
3f75f91608
fix: change Transport.Address field to Transport.Address method
With new gRPC (both gateway and modules) it uses `grpc.NewClient` call to create clients.
It no longer support custom addresses without a `passthrough:` prefix. Previous fix didn't
account for that in some places, so this one changes the structure of `Transport` to always
return address in proper form for external users.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-06-07 19:16:26 +03:00
Artem Chernyshev
1e4e303c09
feat: implement omnictl support command
Works the same way as `talosctl support` but also grabs some relevant
Omni resources to help with the diagnostics.

Uses `go-talos-support` common module to collect Talos data.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-03-19 14:20:46 +03: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