omni-cloud-provider-qemu

module
v0.0.0-...-335731d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2024 License: MPL-2.0

README

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.

Directories

Path Synopsis
api
cmd
omni-cloud-provider-qemu
Package main contains the entrypoint.
Package main contains the entrypoint.
internal
controller
Package controller provides the controller for the machine request status.
Package controller provides the controller for the machine request status.
debug
Package debug provides a way to check if the build is a debug build.
Package debug provides a way to check if the build is a debug build.
ipxe
Package ipxe provides an iPXE server that serves iPXE scripts to boot machines.
Package ipxe provides an iPXE server that serves iPXE scripts to boot machines.
meta
Package meta contains meta information about the provider.
Package meta contains meta information about the provider.
provider
Package provider holds the main logic of the Omni cloud provider QEMU.
Package provider holds the main logic of the Omni cloud provider QEMU.
provisioner
Package provisioner implements the Omni cloud provider QEMU provisioner.
Package provisioner implements the Omni cloud provider QEMU provisioner.
resources
Package resources contains resource definitions of the omni-cloud-provider-qemu.
Package resources contains resource definitions of the omni-cloud-provider-qemu.
version
Package version provides version information.
Package version provides version information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL