Dmitriy Matrenichev 6eade3d5ef
chore: add ability to rewrite uuids and set unique tokens for Talos
This PR does those things:
- It allows API calls `MetaWrite` and `MetaRead` in maintenance mode.
- SystemInformation resource now waits for available META
- SystemInformation resource now overwrites UUID from META if there is an override
- META now supports "UUID override" and "unique token" keys
- ProvisionRequest now includes unique token and Talos version

For #7694

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-11-10 18:17:54 +03:00

112 lines
2.9 KiB
Protocol Buffer
Executable File

syntax = "proto3";
package talos.resource.definitions.runtime;
option go_package = "github.com/siderolabs/talos/pkg/machinery/api/resource/definitions/runtime";
import "common/common.proto";
import "resource/definitions/enums/enums.proto";
// DevicesStatusSpec is the spec for devices status.
message DevicesStatusSpec {
bool ready = 1;
}
// EventSinkConfigSpec describes configuration of Talos event log streaming.
message EventSinkConfigSpec {
string endpoint = 1;
}
// KernelModuleSpecSpec describes Linux kernel module to load.
message KernelModuleSpecSpec {
string name = 1;
repeated string parameters = 2;
}
// KernelParamSpecSpec describes status of the defined sysctls.
message KernelParamSpecSpec {
string value = 1;
bool ignore_errors = 2;
}
// KernelParamStatusSpec describes status of the defined sysctls.
message KernelParamStatusSpec {
string current = 1;
string default = 2;
bool unsupported = 3;
}
// KmsgLogConfigSpec describes configuration for kmsg log streaming.
message KmsgLogConfigSpec {
repeated common.URL destinations = 1;
}
// MachineStatusSpec describes status of the defined sysctls.
message MachineStatusSpec {
talos.resource.definitions.enums.RuntimeMachineStage stage = 1;
MachineStatusStatus status = 2;
}
// MachineStatusStatus describes machine current status at the stage.
message MachineStatusStatus {
bool ready = 1;
repeated UnmetCondition unmet_conditions = 2;
}
// MaintenanceServiceConfigSpec describes configuration for maintenance service API.
message MaintenanceServiceConfigSpec {
string listen_address = 1;
repeated common.NetIP reachable_addresses = 2;
}
// MetaKeySpec describes status of the defined sysctls.
message MetaKeySpec {
string value = 1;
}
// MetaLoadedSpec is the spec for meta loaded. The Done field is always true when resource exists.
message MetaLoadedSpec {
bool done = 1;
}
// MountStatusSpec describes status of the defined sysctls.
message MountStatusSpec {
string source = 1;
string target = 2;
string filesystem_type = 3;
repeated string options = 4;
bool encrypted = 5;
repeated string encryption_providers = 6;
}
// PlatformMetadataSpec describes platform metadata properties.
message PlatformMetadataSpec {
string platform = 1;
string hostname = 2;
string region = 3;
string zone = 4;
string instance_type = 5;
string instance_id = 6;
string provider_id = 7;
bool spot = 8;
}
// SecurityStateSpec describes the security state resource properties.
message SecurityStateSpec {
bool secure_boot = 1;
string uki_signing_key_fingerprint = 2;
string pcr_signing_key_fingerprint = 3;
}
// UniqueMachineTokenSpec is the spec for the machine unique token. Token can be empty if machine wasn't assigned any.
message UniqueMachineTokenSpec {
string token = 1;
}
// UnmetCondition is a failure which prevents machine from being ready at the stage.
message UnmetCondition {
string name = 1;
string reason = 2;
}