Skip to content

Configuration Options

This page provides a comprehensive reference for all configuration options available in the virtbench CLI and Python scripts.

VM Creation Tests

Configuration options for DataSource-based VM provisioning and boot storm tests.

Option Description Default
--start Starting namespace index 1
--end Ending namespace index 100
--vm-name VM resource name rhel-9-vm
--concurrency Max parallel monitoring threads 50
--ssh-pod Pod name for ping tests ssh-test-pod
--ssh-pod-ns Namespace of SSH pod default
--poll-interval Seconds between status checks 1
--ping-timeout Ping timeout in seconds 600
--log-file Output log file path stdout
--log-level Logging level (DEBUG/INFO/WARNING/ERROR) INFO
--namespace-prefix Prefix for test namespaces kubevirt-perf-test
--namespace-batch-size Namespaces to create in parallel 20
--boot-storm Enable boot storm testing false
--single-node Run all VMs on a single node false
--node-name Specific node to use (requires --single-node) auto-select
--cleanup Delete resources and namespaces after test false
--cleanup-on-failure Clean up even if tests fail false
--dry-run-cleanup Show what would be deleted without deleting false
--yes Skip confirmation prompt for cleanup false
--save-results Save detailed results (JSON and CSV) inside a timestamped folder under results/ folder false
--results-folder Base directory to store test results ../results
--storage-version Storage version to include in results path (optional) -

Live Migration Tests

Configuration options for VM live migration testing.

Option Description Default
--start Starting namespace index 1
--end Ending namespace index 10
--vm-name VM resource name rhel-9-vm
--namespace-prefix Prefix for test namespaces kubevirt-perf-test
--create-vms Create VMs before migration false
--vm-template VM template YAML file ../examples/vm-templates/vm-template.yaml
--single-node Create all VMs on a single node (requires --create-vms) false
--node-name Specific node to create VMs on (requires --single-node) auto-select
--source-node Source node name for migration None
--target-node Target node name for migration auto-select
--parallel Migrate VMs in parallel false
--evacuate Evacuate all VMs from source node false
--auto-select-busiest Auto-select the node with most VMs (requires --evacuate) false
--round-robin Migrate VMs in round-robin fashion across all nodes false
--concurrency Number of concurrent migrations 10
--migration-timeout Timeout for each migration in seconds 600
--max-migration-retries Maximum retries for failed migrations 3
--vm-startup-timeout Timeout waiting for VMs to reach Running state 3600 (1 hour)
--ssh-pod SSH test pod name for ping tests ssh-test-pod
--ssh-pod-ns SSH test pod namespace default
--ping-timeout Timeout for ping validation in seconds 3600 (1 hour)
--skip-ping Skip ping validation after migration false
--interleaved-scheduling Distribute parallel migration threads in interleaved pattern across nodes false
--log-file Output log file path stdout
--log-level Logging level (DEBUG/INFO/WARNING/ERROR) INFO
--cleanup Delete VMs, VMIMs, and namespaces after test false
--cleanup-on-failure Clean up resources even if tests fail false
--dry-run-cleanup Show what would be deleted without deleting false
--yes Skip confirmation prompt for cleanup false
--skip-checks Skip VM verifications before migration false
--save-results Save detailed migration results (JSON and CSV) under results/ false
--storage-version Storage version to include in results path (optional) -
--results-folder Base directory to store test results ../results

Failure Recovery Tests

Configuration options for failure and recovery testing with FAR.

Option Description Default
--start Starting namespace index 1
--end Ending namespace index 5
--vm-name VMI resource name rhel-9-vm
--concurrency Max parallel threads 10
--ssh-pod Pod name for ping tests ssh-test-pod
--ssh-pod-ns Namespace of SSH pod default
--poll-interval Seconds between polls 1
--log-file Output log file path stdout
--log-level Logging level INFO

Chaos Benchmark Tests

Configuration options for chaos benchmark testing.

Required Options

Option Description
--storage-class Storage class name (comma-separated for multiple)
--concurrency Number of concurrent operations (REQUIRED)

Test Configuration

Option Default Description
--namespace virt-chaos-benchmark Namespace for test resources
--max-iterations 0 (unlimited) Maximum number of iterations
--vms 5 Number of VMs per iteration
--data-volume-count 1 Number of data volumes per VM
--min-vol-size 30Gi Initial volume size (must include unit, e.g., 30Gi)
--min-vol-inc-size 10Gi Volume size increment for resize (must include unit, e.g., 10Gi)

VM Template Configuration

Option Default Description
--vm-yaml examples/vm-templates/vm-template.yaml Path to VM YAML template
--vm-name rhel-9-vm Base VM name
--datasource-name rhel9 DataSource name
--datasource-namespace openshift-virtualization-os-images DataSource namespace
--vm-memory 2048M VM memory
--vm-cpu-cores 1 VM CPU cores

Skip Options

Option Description
--skip-resize Skip volume resize phase
--skip-clone Skip volume clone phase
--skip-snapshot Skip snapshot phase
--skip-restart Skip restart phase

Execution Options

Option Default Description
--concurrency 50 Number of concurrent operations
--poll-interval 1 Polling interval in seconds
--scheduling-timeout 120 Seconds to wait in Scheduling state before declaring capacity reached

Cleanup Options

Option Description
--cleanup Cleanup resources after test completion
--cleanup-only Only cleanup resources from previous runs

Results Options

Option Default Description
--save-results false Save results to JSON/CSV files
--results-dir results Directory to save results
--storage-version default Storage version for folder hierarchy (e.g., 3.2.0)

Results are saved in the standard folder structure:

results/{storage-version}/{num-disks}-disk/{timestamp}_chaos_benchmark_{total_vms}vms/

Logging Options

Option Default Description
--log-file Auto-generated Log file path
--log-level INFO Logging level (DEBUG, INFO, WARNING, ERROR)

Common Options

These options are available across multiple test types:

Logging

  • --log-file: Path to save log output (default: stdout)
  • --log-level: Set logging verbosity (DEBUG, INFO, WARNING, ERROR)

Cleanup

  • --cleanup: Remove all test resources after completion
  • --cleanup-on-failure: Clean up even if tests fail
  • --dry-run-cleanup: Preview what would be deleted without actually deleting
  • --yes: Skip confirmation prompts

Results

  • --save-results: Save detailed results to JSON and CSV files
  • --storage-version: Organize results by storage version
  • --results-folder / --results-dir: Base directory for results

Network Testing

  • --ssh-pod: Name of SSH test pod for ping validation
  • --ssh-pod-ns: Namespace of SSH test pod
  • --ping-timeout: Timeout for network reachability tests
  • --skip-ping: Skip network validation (faster but less comprehensive)

Concurrency

  • --concurrency: Number of parallel operations
  • --poll-interval: Seconds between status checks

Environment Variables

VIRTBENCH_REPO

When using the virtbench CLI from any directory, set this variable to point to the repository root:

export VIRTBENCH_REPO=/path/to/kubevirt-benchmark-suite

Add to your shell profile for persistence:

echo 'export VIRTBENCH_REPO=/path/to/kubevirt-benchmark-suite' >> ~/.bashrc
source ~/.bashrc

Configuration Files

VM Templates

VM templates use placeholder variables that can be replaced:

Variable Description Example Values
{{VM_NAME}} VM name rhel-9-vm, my-test-vm
{{STORAGE_CLASS_NAME}} Storage class name standard, gp2, ceph-rbd
{{DATASOURCE_NAME}} DataSource name rhel9, fedora, centos
{{DATASOURCE_NAMESPACE}} DataSource namespace openshift-virtualization-os-images
{{STORAGE_SIZE}} Root disk storage size 30Gi, 50Gi, 100Gi
{{VM_MEMORY}} VM memory allocation 2048M, 4Gi, 8Gi
{{VM_CPU_CORES}} Number of CPU cores 1, 2, 4, 8

See the Installation Guide for details on using the template helper script.

See Also