Commit Graph

9 Commits

Author SHA1 Message Date
Utku Ozdemir
d96b2bc6d2
feat: improve logging/debugging of exposed services
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
- Include exposed services in the support bundles.
- Produce a log when an exposed service request is redirected to the login (do not log other requests to avoid excessive logging).

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-04-17 10:38:21 +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
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
Artem Chernyshev
7536191111
chore: implement labels extractor controller for more efficient code
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>
2024-08-07 17:42:51 +03:00
Artem Chernyshev
b47acf2e0f
feat: support insecure access to the nodes running in maintenance
Any insecure `talosctl` commands now work with Omni per-instance
`talosconfig`.
User should have at least `Operator` Omni role to be able to use the
insecure `talosctl` mode.

DNS resolver was updated to react on the `MachineStatus` resource
creation, not only the `ClusterMachineConfigStatus` resource.
That makes the DNS record for UUID appear as soon as machine joins Omni,
not when the machine gets allocated into a cluster.

Machines list now has maintenance Talos version update button.
The UI will issue `talosctl upgrade` when another Talos version is
picked.

`MachineStatus` controller was updated a bit: version poller wasn't
marked as dirty after maintenance upgrades. Now we mark it as dirty
every time we get Talos `MachineStatus` resource update.

Also fixed UI issues here and there.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-06-26 15:37:59 +03:00
Utku Ozdemir
6dcfd4c979
feat: handle all goroutine panics gracefully
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/47

Closes siderolabs/omni#373.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-06-20 21:28:12 +02:00
Artem Chernyshev
63ad5bd1ef
feat: provide a way to getadmin talosconfig and kubeconfig
Fixes: https://github.com/siderolabs/omni/issues/33

It is now possible to get full access `kubeconfig` and `talosconfig`
(operator role), if the Omni instance has `enable-break-glass-configs`
flag enabled.

They can be downloaded using cli commands:

`omnictl kubeconfig --admin --cluster <name>`
`omnictl talosconfig --admin --cluster <name>`

After you download the config the cluster will be marked with
`omni.sidero.dev/tainted` annotation to keep in mind that this cluster
has weaker security and might need to get secrets rotation in the
future.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-06-12 15:49:48 +03:00
Artem Chernyshev
2107c0195b
feat: support setting extensions list in the cluster template
Fixes: https://github.com/siderolabs/omni/issues/45

Introduced new resource type `ExtensionsConfiguration` that allows
setting machine extensions list.

`SchematicConfiguration` is now readonly and is created by
`SchematicConfigurationController` from `ExtensionsConfiguration`
resource. It also ensures that schematic exists in the image factory by
calling the API.

This change is required to simplify the flow in the cluster templates
(no need to call `CreateSchematic` for each resource).

Export command support added as well.
Added cleanup hooks for the `ExtensionsConfiguration` for machine set, machine and cluster levels.

Changed the resource format to use `labels` instead of `target`. Now
it's the same as for config patches, except it doesn't merge several
resources, but gets the first one.

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