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
talosctl
being present in your$PATH
(or pass its location via--talosctl-path
flag)
Create a cloud provider service account named qemu
on Omni:
omnictl serviceaccount create --use-user-role=false --role=CloudProvider cloud-provider:qemu
Export the printed environment variables:
export OMNI_ENDPOINT=...
export OMNI_SERVICE_ACCOUNT_KEY=...
Build the project:
make omni-cloud-provider-qemu-linux-amd64
Run the cloud provider:
./_out/omni-cloud-provider-qemu-linux-amd64
Now, when Omni creates a MachineRequest
, you will see that one of the available machines will be provisioned and joined to Omni.