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
Maintenance upgrades triggered from the UI were using the wrong schematic ID, causing the machines which use UKI to lose siderolink kernel args and disconnect.
Since we have a complex logic to build the correct install image including the schematic, move it to a central place.
Add a new management endpoint for the maintenance upgrades. UI now calls this endpoint instead of calling the Talos API directly.
The new endpoint builds the install image correctly using the common logic and issues the upgrade.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
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
When a machine is connected to SideroLink over the GRPC tunnel in maintenance mode, its tunnel config gets overwritten when a machine config is applied to it.
Instead, check the link to determine the tunnel setting and preserve it on allocation.
Since we are not explicit about this setting and not always leave it to the Omni-wide configuration, rework the Omni-wide configuration to
- allow opt-in if it is disabled instance-wide
- do not allow opt-out if it is enabled instance-wide
This allows us to preserve the current behavior of "forcing" the machines without explicit configuration to use the system default.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
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
e2e-workload-proxy-cron / default (push) Has been cancelled
e2e-upgrades-cron / default (push) Has been cancelled
e2e-templates-cron / default (push) Has been cancelled
e2e-short-secureboot-cron / default (push) Has been cancelled
e2e-short-cron / default (push) Has been cancelled
e2e-scaling-cron / default (push) Has been cancelled
e2e-forced-removal-cron / default (push) Has been cancelled
e2e-backups-cron / default (push) Has been cancelled
Change the assertions to work with the new, changed behavior of the `infraMachineStatus.readyToUse` flag.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
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
It is now possible to filter the machine by the following categories in
the UI:
- Manually joined machines.
- Machines provisioned by the infra providers.
- Machines PXE booted through the metal provider.
- Machines discovered by the metal provider, but not yet accepted by the
system.
Machine acceptance UI also has two new modal windows for accepting and
rejecting the machines.
Also update controllers to add labels to the not accepted infra
machines.
Fixes: https://github.com/siderolabs/omni/issues/773
Fixes: https://github.com/siderolabs/omni/issues/766
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
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
Contains two fixes:
- In the frontend, `factory.talos.dev` was hardcoded for the maintenance upgrade calls. Move the image factory URL into the `FeaturesConfig` resource, and switch to reading the host from this resource on the frontend.
- In the backend, we were initializing the `imageFactoryHost` in an `init` block, and because of init, it was running before the user override was actually written into the config by Cobra. Fix it by initializing the `imageFactoryHost` lazily when it is used for the first time.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
The provision controller was changed: now it creates individual machine
request sets for each machine set which is using the machine class with
auto provision.
That allows to map machine requests to each machine set.
Talos version and initial extensions was dropped from the
autoprovisioned machine classes as Talos version is now read from the
Cluster to which the machine request is going to be added.
Extensions support is dropped as there's no way to reliably set them
without a Talos version.
Machine request set pressure resource was removed as the controller now
reads the required machine count directly from the machine sets.
Infra provider controllers were updated to report human readable status.
Introduced the new resource type `ClusterMachineRequestStatus` that is
used in the UI to show pending machine requests.
Closes: https://github.com/siderolabs/omni/issues/662
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
We display `MachineStatusLink` on the `Machines` page, which was removed
right after `MachineStatus` enters tearing down.
But the `MachineStatus` can have finalizers pending for a long time, so
the user gets false impression that the machine was already removed,
while it's not.
Make `MachineStatusLink` remain until the corresponding `MachineStatus`
exist.
Add the flag to the spec to allow displaying that the machine is
in tearing down phase in the UI.
Show machines in tearing down phase with 50% opacity and disable any
operations with such machine.
Fixes: https://github.com/siderolabs/omni/issues/516
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
The new controller is generic and allows extracting labels from any
resource types just by adding the controller to the runtime.
Using this controller will reduce reconciliation count as we ignore
resource spec updates.
Use the `ResourceLabels` resource as the input in the `MachineSetNode`.
Add `MachineStatusLabelInstalled` label to make it possible for
`MachineSetNode` controller to operate only with labels.
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Convert goroutine panics to errors or error logs.
Disallow usage of `golang.org/x/sync/errgroup` package in the backend by `depguard` linter. This linter configuration depends on: https://github.com/siderolabs/kres/pull/417
Rekres the project to include the feature (also bump Go to 1.22.4), but revert `PROTOBUF_GO_VERSION` and `GRPC_GATEWAY_VERSION` manually to not break the frontend.
Disallowing the named `go` statement was not possible at the moment using existing linters, raised an issue in `forbidigo` for it: https://github.com/ashanbrown/forbidigo/issues/47Closessiderolabs/omni#373.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>