Open smira opened 1 month ago
MachineRequest
resources with specific label (targeting this provider ID).MachineRequest
that needs to be satisfied:
MachineRequest
MachineRequestStatus
in not ready state, uses that to store internal progress statusSideroLinkJoinParams
resource from Omni to figure out how to make machine join OmniMachineRequestStatus
with some data to restart operations on failureMachineRequestStatus
to be ready and put the UUID of the machine which is going to join Omni (or labels the machine in a unique way); Omni should be able to match a joining Machine
back to the MachineRequest
MachineRequest
:
MachineRequestStatus
resourceMachineRequest
MachineRequest
Resourcemetadata:
id: machine-xyz
type: MachineRequests
labels:
provider-id: <aws>
spec:
talosVersion: v1.7.3
schematic:
extensions:
- bnx2-firmware
customization:
provider:
<unstructured, specific to the provider>
<provider publishes a schema>
metadata:
# Omni-managed
id: machine-xyz
type: MachineControlSpec
spec:
poweredOn: true/false # current status
rebootID: 33 # need better name, if changes, new reboot is executed
---
metadata:
# Cloud provider-managed
id: machine-xyz
type: MachineControlStatus
spec:
poweredOn: true/false # current status
lastRebootID: 33 # if matches rebootID, the last reboot got executed
Provisioning
MachineRequest
to provision aMachine
in some cloud with some settings (region, size, ...)MachineRequest
, and provisions the machine in the cloud.MachineRequestStatus
describing the future machine which will join Omni (e.g. it has the UUID of the Machine that is going to be created/going to join Omni).Machine
joins Omni, provider matches it with the request and labels/annotates it as requested (for example, label indicates that this Machine should be part of aMachineClass
and it will join theMachineSet
).De-provisioning
Machine
from Omni.Machine
, removes machine in the cloud, cleans up everything.Machine
is removed from Omni (e.g. faulty hardware) -> Omni Cloud Provider cleans it in the cloud.