talos icon indicating copy to clipboard operation
talos copied to clipboard

minimal Install API in maintenance mode

Open smira opened this issue 2 months ago • 4 comments

A first cut of the install API, very minimal, to be extended later:

message InstallRequest {
   string install_disk = 1;
   string install_image = 2;
   bool reboot = 3; // might be always true today
}

The installation should be synchronous (API can wait for the install to finish, and return the result), then trigger a reboot (?).

I think it should stream back the result as the install progresses through phases/steps/logs, and finally return either an error if it failed, or a success code.

This first cut should only be available in maintenance mode over SideroLink (enforce os:admin role simply).

But we should detach ourselves from running this via the sequencer I think, and use other means to ensure that only a single Install runs, e.g. by holding a token from a shared channel/mutex/whatever.

smira avatar Nov 03 '25 11:11 smira

message InstallRequest {
   string install_disk = 1;
   string install_image = 2;
   bool reboot = 3; // might be always true today
}

maybe it be a disk selector?

frezbo avatar Nov 03 '25 12:11 frezbo

maybe it be a disk selector?

I'm not sure about it, it's an API, so something calls it explicitly. That something can evaluate the disk selector beforehand and pick a disk. From my point of view, explicit disk has easier to understand failure modes rather than implicit disk selector.

smira avatar Nov 03 '25 12:11 smira

I think you should consider that most people actually want to install on software raid, rather than single disk (in future, not supprted now).

So presumably something would setup the raid and efi partitions, that way single disk won't work here for installing the bootloader, etc.

notnooblord avatar Nov 27 '25 17:11 notnooblord

...

This is off-topic for this issue. Please don't comment on random issues, create a discussion with your ideas instead.

smira avatar Nov 27 '25 17:11 smira