This repository contains the QEMU cloud provider for the Omni project.
It aims to facilitate the development of Omni by providing a cloud provider working similarly to talosctl cluster create.
It also serves as a reference implementation for other cloud providers.
To be able to run and test the provider locally, you need to meet the following requirements:
- Running on a Linux machine
- Omni running
- Qemu installed (
qemu-user-static) - Enough disk space/RAM/CPU to run the machines
talosctlbeing present in your$PATH(or pass its location via--talosctl-pathflag)
Create a cloud provider service account named qemu on Omni:
omnictl serviceaccount create --use-user-role=false --role=CloudProvider cloud-provider:qemuExport the printed environment variables:
export OMNI_ENDPOINT=...
export OMNI_SERVICE_ACCOUNT_KEY=...Build the project:
make omni-cloud-provider-qemu-linux-amd64Run the cloud provider:
./_out/omni-cloud-provider-qemu-linux-amd64Now, when Omni creates a MachineRequest, you will see that one of the available machines will be provisioned and joined to Omni.