Andrey Smirnov 1df841bb54
refactor: change the interface of META
Use a global instance, handle loading/saving META in global context.

Deprecate legacy syslinux ADV, provide an easier interface for
consumers.

Expose META as resources.

Fix the bootloader revert process (it was completely broken for quite a
while :sad:).

This is a first step which mostly does preparation work, real changes
will come in the next PRs:

* add APIs to write to META
* consume META keys for platform network config for `metal`
* custom key for URL `${code}`

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-03-15 15:43:16 +04:00

71 lines
1.7 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 "resource/definitions/enums/enums.proto";
// 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;
}
// 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;
}
// MetaKeySpec describes status of the defined sysctls.
message MetaKeySpec {
string value = 1;
}
// MountStatusSpec describes status of the defined sysctls.
message MountStatusSpec {
string source = 1;
string target = 2;
string filesystem_type = 3;
repeated string options = 4;
}
// 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;
}
// UnmetCondition is a failure which prevents machine from being ready at the stage.
message UnmetCondition {
string name = 1;
string reason = 2;
}