## Summary Make cloud-init provisioning and vsock management first-class manifest features for Stack and Ultramarine Server workloads. ## Scope - Define cloud-init user-data/metadata/vendor-data fields. - Generate the required Cloud Hypervisor configuration. - Define vsock devices, CID allocation, and collision handling. - Expose resulting vsock configuration through VM info. - Document guest-side agent expectations and firmware/image limitations. ## Tasks - [ ] Define cloud-init user-data, metadata, and vendor-data fields in the VM manifest. - [ ] Define how cloud-init data is transported to the guest. - [ ] Generate the required Cloud Hypervisor cloud-init configuration. - [ ] Define vsock device fields and CID allocation behavior. - [ ] Implement collision-safe CID allocation and persistence. - [ ] Convert vsock manifest data to `VsockConfig`. - [ ] Expose effective cloud-init and vsock configuration through VM info. - [ ] Document guest-side agent expectations and firmware/image limitations. - [ ] Update the in-development VM manifest and callers directly instead of adding compatibility for older Odorobo formats. - [ ] Add cloud-init and vsock conversion tests. - [ ] Identify which Proxmox guest metadata must be translated into the new Odorobo manifest during migration. ## What this should do - A VM can request cloud-init entirely through its Odorobo manifest. - A VM can request a vsock device declaratively. - CID assignment is collision-safe and has defined restart behavior. - Cloud-init and vsock conversion tests exist. - The post-migration cloud-init and vsock contract is documented for Stack and Ultramarine Server. ## Dependencies - Depends on draft issues 01 and 02. ## Related issues - Refines #25 (Metadata Service) and #26 (cloud-init/Ignition configs). - Must account for #29 (RVA23 support). ## Issue links - Depends on [#98](https://github.com/FyraStack/odorobo/issues/98) and [#99](https://github.com/FyraStack/odorobo/issues/99). - Related to existing [#25](https://github.com/FyraStack/odorobo/issues/25), [#26](https://github.com/FyraStack/odorobo/issues/26), and [#29](https://github.com/FyraStack/odorobo/issues/29). - Enables [#107](https://github.com/FyraStack/odorobo/issues/107).
Activity