Add the new resources for the cloud provider feature: `CloudConfigs`, `MachineRequests` and `MachineRequestStatuses`.
Add a new role, `CloudProvider` with access to the resources a cloud provider plugin requires.
Introduce the concept of "cloud provider service accounts" which are a special type of service accounts in the format `cloud-provider:<id>`. They must have the `CloudProvider` role and their id is matched against the label `omni.sidero.dev/cloud-provider-id` label on the `MachineRequest*` type resources.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Dropped some dependencies which no longer worked:
- monaco-editor-vue3 - replaced with a tiny wrapper.
- polyfill for streaming classes - replaced with vite plugin for
polyfills.
- buffer - replaced base64 encoding with calls from the `fetch.pb.ts`.
Dropped the code that sets up monaco in `main.ts` in favor of Vite
monaco plugin that does that for you.
Updated `monaco-yaml` as the old version didn't work with Vite.
Switched from `Jest` to `bun:test`.
Use TypeScript in the tailwind config, as it imports `colors.ts` now.
Had to use TypeScript for `colors` as Vite can't import CommonJS
modules.
Add eslint linter to the `lint` dependencies, enable a bit more linters
and fix all detected errors.
Fixes: https://github.com/siderolabs/omni/issues/294
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
- run rekres and fix nolint directives
- bump deps (keep gen to 0.4.8 for now) for server, client and tests
Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
Correctly handle the retrieval and updates of schematics when a Talos node has secure boot enabled.
When secure boot is enabled, we now
- Use the correct installer image, `installer-secureboot` instead of `installer`
- Preserve the kernel args in the schematic on install/upgrade instead of stripping them away.
For non-secureboot, we keep everything as-is, to avoid triggering an upgrade of existing nodes.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Show all machine related config patches as separate tabs on Machines
and ClusterMachine pages.
Fixes: https://github.com/siderolabs/omni/issues/32
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
Use SOPS for secrets, this should allow PR's from forks to work.
We should not still approve PR's to run workflow outside the org, GH
will run the workflow when an org member force pushes.
Signed-off-by: Noel Georgi <git@frezbo.dev>
Clean up invalid nodes (from the Kubernetes perspective) from the cluster if they are no longer part of a cluster from the perspective of Omni.
Introduce a new intermediate resource, `ClusterKubernetesNodes`, containing the ordered list of nodes in a cluster.
Create the resource, `KubernetesNodeAuditResult`, to provide a summary on the latest deleted nodes from the Kubernetes cluster.
Closessiderolabs/omni#9.
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
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>
Pretty much replace the controller code, restructure, split it to
smaller chunks and cover with tests.
Extract machine teardown logic to a separate controller.
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
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>