Commit Graph

20 Commits

Author SHA1 Message Date
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
Utku Ozdemir
4ec7a434ba
feat: add cloud provider resources and role
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>
2024-07-28 22:46:43 +02:00
Artem Chernyshev
3bab8bf089
chore: migrate to Vite and Bun to build the frontend
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>
2024-06-06 18:40:07 +03:00
Dmitriy Matrenichev
82abb2ba53
chore: bump deps
- 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>
2024-06-03 22:43:37 +03:00
Utku Ozdemir
55afa59033
feat: add secure boot support
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>
2024-05-27 16:02:44 +02:00
Artem Chernyshev
e2f8407ceb
chore: run rekres
See: https://github.com/siderolabs/kres/pull/404

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-05-23 20:34:11 +03:00
Artem Chernyshev
4a8ebbf19f
chore: enable codecov and rekres
Rekres should improve build times and report the additional node info in
CI.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-05-23 17:39:22 +03:00
Artem Chernyshev
4b747f0380
feat: add dedicated patch pages for machines and cluster machines
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>
2024-05-23 13:19:13 +03:00
Artem Chernyshev
631f5c570c
chore: always build frontend on BUILDPLATFORM
To avoid crosscompilation of the frontend tasks.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-05-22 21:36:44 +03:00
Artem Chernyshev
0aa16dbd83
chore: update Talos to 1.7.2 in the tests
Bump machinery to 1.7.2.
Enable partial machine config tests.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-05-22 12:15:20 +03:00
Noel Georgi
9081a3752f
chore: use large runners for ci
Use large runners for ci.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-05-21 18:33:32 +05:30
Artem Chernyshev
dfad9dd420
fix: hide labels completions dropdown when clicking outside of the input
Fix user label removal.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-05-21 15:00:51 +03:00
Noel Georgi
4134d2cffb
chore: use sops for secrets
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>
2024-04-19 14:03:55 +05:30
Utku Ozdemir
23dcf32c1e
feat: implement kubernetes node audit controller
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.

Closes siderolabs/omni#9.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-04-17 19:08:54 +02:00
Utku Ozdemir
e0379754fd
chore: rekres & fix linting errors
Rekres and satisfy new linters.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-04-17 18:34:25 +02: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
Noel Georgi
0960100f11
chore: drop integration binary from releases
Drop integration binary from releases.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-03-08 15:01:44 +05:30
Utku Ozdemir
6e3ba5c389
chore: bump Go, build arm64 container images, rekres
Bump Go to 1.22.1.
Build arm64 Omni container images as well as amd64 (multi-arch).
Rekres.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-03-08 11:14:32 +03:00
Artem Chernyshev
0eed757c82
refactor: convert MachineSetStatus controller to QController
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>
2024-03-05 17:33:41 +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