Skip to content

Provider Catalog

Last updated: 2025-08-26T14:30:00Z

The VirtRigaud Provider Catalog lists all verified and community providers available for the VirtRigaud virtualization management platform. All providers in this catalog have been tested for conformance and compatibility.

Provider Overview

Provider Description Capabilities Conformance Maintainer License
Mock Provider A mock provider for testing and demonstrations core, snapshot, clone, image-prepare, advanced Conformance virtrigaud@projectbeskar.com Apache-2.0
vSphere Provider VMware vSphere provider for VirtRigaud core, snapshot, clone, advanced Conformance virtrigaud@projectbeskar.com Apache-2.0
Libvirt Provider Libvirt/KVM provider for VirtRigaud core, snapshot, clone Conformance virtrigaud@projectbeskar.com Apache-2.0

Quick Start

Installing a Provider

To install a provider in your Kubernetes cluster, use the VirtRigaud provider runtime Helm chart:

# Add the VirtRigaud Helm repository
helm repo add virtrigaud https://projectbeskar.github.io/virtrigaud
helm repo update

# Install a provider using the runtime chart
helm install my-vsphere-provider virtrigaud/virtrigaud-provider-runtime \
  --namespace vsphere-providers \
  --create-namespace \
  --set image.repository=ghcr.io/projectbeskar/virtrigaud/provider-vsphere \
  --set image.tag=0.1.1 \
  --set env[0].name=VSPHERE_SERVER \
  --set env[0].value=vcenter.example.com

Provider Discovery

Once installed, providers automatically register with the VirtRigaud manager. You can list available providers:

kubectl get providers -n virtrigaud-system

Provider Details

Mock Provider

The mock provider is perfect for: - Testing VirtRigaud functionality - Development and CI/CD pipelines - Learning provider concepts - Demonstrating VirtRigaud capabilities

Installation:

helm install mock-provider virtrigaud/virtrigaud-provider-runtime \
  --namespace development \
  --create-namespace \
  --set image.repository=ghcr.io/projectbeskar/virtrigaud/provider-mock \
  --set image.tag=0.1.1 \
  --set env[0].name=LOG_LEVEL \
  --set env[0].value=debug

vSphere Provider

The vSphere provider enables VirtRigaud to manage VMware vSphere environments, including: - VM lifecycle management (create, update, delete) - Power operations (on, off, restart, suspend) - Snapshot management - VM cloning and templates - Resource allocation and configuration

Prerequisites: - VMware vSphere 6.7 or later - vCenter Server credentials - Network connectivity to vCenter API

Installation:

# Create secret for vSphere credentials
kubectl create secret generic vsphere-credentials \
  --namespace vsphere-providers \
  --from-literal=username=your-username \
  --from-literal=password=your-password

# Install provider
helm install vsphere-provider virtrigaud/virtrigaud-provider-runtime \
  --namespace vsphere-providers \
  --create-namespace \
  --set image.repository=ghcr.io/projectbeskar/virtrigaud/provider-vsphere \
  --set image.tag=0.1.1 \
  --set env[0].name=VSPHERE_SERVER \
  --set env[0].value=vcenter.example.com \
  --set env[1].name=VSPHERE_USERNAME \
  --set env[1].valueFrom.secretKeyRef.name=vsphere-credentials \
  --set env[1].valueFrom.secretKeyRef.key=username \
  --set env[2].name=VSPHERE_PASSWORD \
  --set env[2].valueFrom.secretKeyRef.name=vsphere-credentials \
  --set env[2].valueFrom.secretKeyRef.key=password

Libvirt Provider

The libvirt provider manages KVM/QEMU virtual machines through libvirt, supporting: - VM lifecycle management - Power state control - Snapshot operations - Basic cloning capabilities - Local and remote libvirt connections

Prerequisites: - Libvirt daemon running on target hosts - SSH access for remote connections - Shared storage for multi-host deployments

Installation:

helm install libvirt-provider virtrigaud/virtrigaud-provider-runtime \
  --namespace libvirt-providers \
  --create-namespace \
  --set image.repository=ghcr.io/projectbeskar/virtrigaud/provider-libvirt \
  --set image.tag=0.1.1 \
  --set env[0].name=LIBVIRT_URI \
  --set env[0].value=qemu:///system \
  --set securityContext.runAsUser=0 \
  --set podSecurityContext.runAsUser=0

Capability Profiles

VirtRigaud defines several capability profiles that providers can implement:

Core Profile

Required for all providers - vm.create - Create virtual machines - vm.read - Get virtual machine information - vm.update - Update virtual machine configuration - vm.delete - Delete virtual machines - vm.power - Control power state (on/off/restart) - vm.list - List virtual machines

Snapshot Profile

Optional - for providers supporting VM snapshots - vm.snapshot.create - Create VM snapshots - vm.snapshot.list - List VM snapshots - vm.snapshot.delete - Delete VM snapshots - vm.snapshot.restore - Restore VM from snapshot

Clone Profile

Optional - for providers supporting VM cloning - vm.clone - Clone virtual machines - vm.template - Create and manage VM templates

Image Prepare Profile

Optional - for providers with image management - image.prepare - Prepare VM images - image.list - List available images - image.upload - Upload custom images

Advanced Profile

Optional - for advanced provider features - vm.migrate - Live migrate VMs between hosts - vm.resize - Dynamic resource allocation - vm.backup - Backup and restore operations - vm.monitoring - Advanced monitoring and metrics

Contributing a Provider

Want to add your provider to the catalog? Follow these steps:

1. Develop Your Provider

Use the Provider Developer Tutorial to create your provider using the VirtRigaud SDK.

2. Ensure Conformance

Run the VirtRigaud Conformance Test Suite (VCTS) to verify your provider meets the requirements:

# Install the VCTS tool
go install github.com/projectbeskar/virtrigaud/cmd/vcts@latest

# Run conformance tests
vcts run --provider-endpoint=localhost:9443 --profile=core

3. Publish to Catalog

Use the vrtg-provider publish command to submit your provider:

vrtg-provider publish \
  --name your-provider \
  --image ghcr.io/yourorg/your-provider \
  --tag v1.0.0 \
  --repo https://github.com/yourorg/your-provider \
  --maintainer your-email@example.com \
  --license Apache-2.0

This will: 1. Run conformance tests 2. Generate provider badges 3. Create a catalog entry 4. Open a pull request to add your provider

4. Catalog Requirements

To be included in the catalog, providers must:

  • ✅ Pass VCTS core profile tests
  • ✅ Include comprehensive documentation
  • ✅ Provide Helm chart for deployment
  • ✅ Follow security best practices
  • ✅ Include proper error handling
  • ✅ Support health checks and metrics
  • ✅ Have active maintenance and support

Provider Support Matrix

Provider Kubernetes VirtRigaud Go Version Platforms
Mock 1.25+ 0.1.0+ 1.23+ linux/amd64, linux/arm64
vSphere 1.25+ 0.1.0+ 1.23+ linux/amd64, linux/arm64
Libvirt 1.25+ 0.1.0+ 1.23+ linux/amd64

Community and Support

Versioning and Compatibility

Providers follow semantic versioning (SemVer) and maintain compatibility with VirtRigaud versions:

  • Major versions (1.0.0 → 2.0.0): Breaking changes to APIs or behavior
  • Minor versions (1.0.0 → 1.1.0): New features, backward compatible
  • Patch versions (1.0.0 → 1.0.1): Bug fixes, security updates

Compatibility Policy: - Current VirtRigaud version supports providers from current major version - Providers should support at least 2 minor versions of VirtRigaud - Breaking changes require migration documentation

All providers in this catalog are open source and follow the licensing terms specified in their individual repositories. The catalog itself is maintained under the Apache 2.0 license.

Trademark Notice: VMware and vSphere are trademarks of VMware, Inc. KVM and QEMU are trademarks of their respective owners. All trademarks are the property of their respective owners.