Utku Ozdemir 5ffc3f14bd
feat: show siderolink status on dashboard
Add a new resource, `SiderolinkStatus`, which combines the following info:
- The Siderolink API endpoint without the query parameters or fragments (potentially sensitive info due to the join token)
- The status of the Siderolink connection

This resource is not set as sensitive, so it can be retrieved by the users with `os:operator` role (e.g., using `talosctl dashboard` through Omni).

Make use of this resource in the dashboard to display the status of the Siderolink connection.

Additionally, rework the status columns in the dashboard to:
- Display a Linux terminal compatible "tick" or a "cross" prefix for statuses in addition to the red/green color coding.
- Move and combine some statuses to save rows and make them more even.

Closes siderolabs/talos#8643.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-06-18 12:31:54 +02:00

32 lines
685 B
Protocol Buffer
Executable File

syntax = "proto3";
package talos.resource.definitions.siderolink;
option go_package = "github.com/siderolabs/talos/pkg/machinery/api/resource/definitions/siderolink";
import "common/common.proto";
// ConfigSpec describes Siderolink configuration.
message ConfigSpec {
string api_endpoint = 1;
string host = 2;
string join_token = 3;
bool insecure = 4;
bool tunnel = 5;
}
// StatusSpec describes Siderolink status.
message StatusSpec {
string host = 1;
bool connected = 2;
}
// TunnelSpec describes Siderolink GRPC Tunnel configuration.
message TunnelSpec {
string api_endpoint = 1;
string link_name = 2;
int64 mtu = 3;
common.NetIPPort node_address = 4;
}