The primary configuration is a YAML file that controls which providers, Kubernetes versions, OS distributions, and resource sizes are included in the test matrix.
# Cloud providers to test (must match provider name)
providers:
- kubevirt
# Kubernetes versions to test
releases:
- "1.31"
- "1.32"
# OS distributions to include
enableDistributions:
- ubuntu
- flatcar
# OS distributions to exclude (takes precedence over enableDistributions)
excludeDistributions: []
# Fine-grained modifier filtering
included:
datacenterDescriptions: []
clusterDescriptions:
- "with cni plugin set to canal"
machineDescriptions: []
excluded:
clusterDescriptions:
- "with mla-logging enabled"
# Resource sizes for the combinatorial matrix
resources:
cpu: [2, 4]
memory: ["4Gi", "8Gi"]
diskSize: ["20Gi", "50Gi"]
# OS image sources per distribution and version
imageSources:
ubuntu:
"22.04": "docker://quay.io/kubermatic-virt-disks/ubuntu:22.04"
flatcar:
"3374.2.2": "docker://quay.io/kubermatic-virt-disks/flatcar:3374.2.2"
# Operating System Profile annotations
ospAnnotations:
"k8c.io/operating-system-profile": "osp-ubuntu"
# Custom DNS nameservers
nameservers:
- "8.8.8.8"
- "8.8.4.4"
# Container runtime settings applied to all nodes
nodeSettings:
insecureRegistries:
- "registry.local:5000"
registryMirrors:
- "https://mirror.gcr.io"
pauseImage: "registry.k8s.io/pause:3.9"
# Reporting
resultsFile: /reports/results.json
reportsRoot: /reports
# Timeouts
controlPlaneReadyWaitTimeout: 10m
nodeReadyTimeout: 20m
customTestTimeout: 10m
nodeCount: 1
providers:
- kubevirt
Specifies which cloud providers to test. Each provider must have a corresponding implementation in the build/provider/ directory.
| Provider | Status |
|---|---|
kubevirt |
Supported |
releases:
- "1.31"
- "1.32"
Kubernetes versions to include in the test matrix. Each version is combined with every provider, distribution, and modifier combination.
enableDistributions:
- ubuntu
- flatcar
excludeDistributions: []
Controls which OS distributions are tested. excludeDistributions takes precedence over enableDistributions.
included:
datacenterDescriptions: []
clusterDescriptions:
- "with cni plugin set to canal"
machineDescriptions: []
excluded:
clusterDescriptions:
- "with mla-logging enabled"
Filters the generated scenario matrix by modifier descriptions. Use this to focus tests on specific configurations or exclude known-problematic combinations.
resources:
cpu: [2, 4]
memory: ["4Gi", "8Gi"]
diskSize: ["20Gi", "50Gi"]
Resource sizes for machine deployments. Each combination of CPU, memory, and disk size produces a separate machine modifier in the test matrix.
imageSources:
ubuntu:
"22.04": "docker://quay.io/kubermatic-virt-disks/ubuntu:22.04"
flatcar:
"3374.2.2": "docker://quay.io/kubermatic-virt-disks/flatcar:3374.2.2"
Maps OS distribution names and versions to container image URIs used for KubeVirt virtual machine disks.
When no imageSources are configured, the following defaults are used:
| Distribution | Version | Source |
|---|---|---|
| ubuntu | 20.04 | docker://quay.io/kubermatic-virt-disks/ubuntu:20.04 |
| ubuntu | 22.04 | docker://quay.io/kubermatic-virt-disks/ubuntu:22.04 |
| rhel | 8 | docker://quay.io/kubermatic-virt-disks/rhel:8 |
| rhel | 9 | docker://quay.io/kubermatic-virt-disks/rhel:9 |
| flatcar | 3374.2.2 | docker://quay.io/kubermatic-virt-disks/flatcar:3374.2.2 |
| rockylinux | 8 | docker://quay.io/kubermatic-virt-disks/rocky:8 |
| rockylinux | 9 | docker://quay.io/kubermatic-virt-disks/rocky:9 |
nodeSettings:
insecureRegistries:
- "registry.local:5000"
registryMirrors:
- "https://mirror.gcr.io"
pauseImage: "registry.k8s.io/pause:3.9"
Container runtime settings applied to all worker nodes in created clusters.
controlPlaneReadyWaitTimeout: 10m
nodeReadyTimeout: 20m
customTestTimeout: 10m
| Timeout | Default | Description |
|---|---|---|
controlPlaneReadyWaitTimeout |
10m |
Time to wait for the control plane to become healthy |
nodeReadyTimeout |
20m |
Time to wait for worker nodes to reach Ready state |
customTestTimeout |
10m |
Timeout for individual custom test cases |