Skip to content

siderolabs/omni-cloud-provider-qemu

Repository files navigation

omni-cloud-provider-qemu

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.

Prerequisites

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)

Usage

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.