diff --git a/charts/kubevirt/Chart.yaml b/charts/kubevirt/Chart.yaml index 4381310..0133079 100644 --- a/charts/kubevirt/Chart.yaml +++ b/charts/kubevirt/Chart.yaml @@ -3,7 +3,7 @@ name: kubevirt description: KubeVirt - Virtual Machine Management on Kubernetes - Deploy and manage VMs as native Kubernetes resources type: application version: 0.2.1 -appVersion: "v1.7.0" +appVersion: "v1.9.1" keywords: - kubevirt - virtualization diff --git a/charts/kubevirt/README.md b/charts/kubevirt/README.md index 4149bfd..ba4b6a5 100644 --- a/charts/kubevirt/README.md +++ b/charts/kubevirt/README.md @@ -1,6 +1,6 @@ # kubevirt -![Version: 0.2.1](https://img.shields.io/badge/Version-0.2.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.7.0](https://img.shields.io/badge/AppVersion-v1.7.0-informational?style=flat-square) +![Version: 0.2.1](https://img.shields.io/badge/Version-0.2.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.9.1](https://img.shields.io/badge/AppVersion-v1.9.1-informational?style=flat-square) KubeVirt - Virtual Machine Management on Kubernetes - Deploy and manage VMs as native Kubernetes resources @@ -13,10 +13,10 @@ KubeVirt - Virtual Machine Management on Kubernetes - Deploy and manage VMs as n ## Description -KubeVirt is a Kubernetes add-on that enables you to run and manage virtual machines alongside container workloads. This Helm chart provides a deployment of KubeVirt v1.7.0 with comprehensive configuration options. +KubeVirt is a Kubernetes add-on that enables you to run and manage virtual machines alongside container workloads. This Helm chart provides a deployment of KubeVirt v1.9.1 with comprehensive configuration options. **Key Features:** -- Full KubeVirt v1.7.0 support with all feature gates +- Full KubeVirt v1.9.1 support with all feature gates - Operator-based lifecycle management - Comprehensive RBAC configuration - Monitoring integration (ServiceMonitor & PrometheusRule) @@ -105,7 +105,7 @@ helm install kubevirt encircle360-oss/kubevirt \ | `namespace.name` | Namespace for KubeVirt | `kubevirt` | | `namespace.create` | Create the namespace | `true` | | `operator.replicas` | Number of operator replicas | `2` | -| `operator.image.tag` | Operator image tag | `v1.7.0` | +| `operator.image.tag` | Operator image tag | `v1.9.1` | ### Feature Gates @@ -114,7 +114,7 @@ KubeVirt uses feature gates to control optional functionality. Feature gates are - **Beta**: Features that are stable but may have limitations - **GA**: Stable features (enabled by default, no gate needed) -#### Alpha/Beta Feature Gates (v1.7.0) +#### Alpha/Beta Feature Gates (v1.9.1) ```yaml kubevirt: @@ -124,7 +124,7 @@ kubevirt: # Storage - ExpandDisks # Dynamic disk expansion - HostDisk # Host disk access - - ImageVolume # Image volume support (Beta in v1.7.0) + - ImageVolume # Image volume support (Beta in v1.9.1) # Performance - CPUManager # CPU pinning and NUMA topology @@ -164,7 +164,7 @@ kubevirt: #### GA Feature Gates (No Configuration Needed) -The following features are **stable and enabled by default** in v1.7.0. You do NOT need to specify these in feature gates: +The following features are **stable and enabled by default** in v1.9.1. You do NOT need to specify these in feature gates: - `LiveMigration` - Live migration of VMs - `SRIOVLiveMigration` - Live migration with SR-IOV @@ -173,20 +173,20 @@ The following features are **stable and enabled by default** in v1.7.0. You do N - `CPUNodeDiscovery` - CPU node discovery - `NUMA` - NUMA topology support - `GPU` - GPU passthrough -- `VMLiveUpdateFeatures` - Live update VM features (GA in v1.5.0) -- `CommonInstancetypesDeploymentGate` - Common instance types (GA in v1.4.0) -- `HotplugNICs` - Hot-plug network interfaces (GA in v1.4.0) -- `BochsDisplayForEFIGuests` - Bochs display for EFI (GA in v1.4.0) -- `AutoResourceLimitsGate` - Automatic resource limits (GA in v1.5.0) -- `NetworkBindingPlugins` - Network binding plugins (GA in v1.5.0) -- `DynamicPodInterfaceNaming` - Dynamic pod interface naming (GA in v1.5.0) -- `VolumesUpdateStrategy` - Volumes update strategy (GA in v1.5.0) -- `VolumeMigration` - Volume migration (GA in v1.5.0) -- `InstancetypeReferencePolicy` - Instance type reference policy (GA in v1.6.0) -- `Snapshot` - VM snapshot support (GA in v1.7.0) -- `VMExport` - VM export functionality (GA in v1.7.0) -- `HotplugVolumes` - Hot-plug/unplug volumes (GA in v1.7.0) -- `NodeRestriction` - Node restriction (GA in v1.7.0) +- `VMLiveUpdateFeatures` - Live update VM features (GA in v1.9.1) +- `CommonInstancetypesDeploymentGate` - Common instance types (GA in v1.9.1) +- `HotplugNICs` - Hot-plug network interfaces (GA in v1.9.1) +- `BochsDisplayForEFIGuests` - Bochs display for EFI (GA in v1.9.1) +- `AutoResourceLimitsGate` - Automatic resource limits (GA in v1.9.1) +- `NetworkBindingPlugins` - Network binding plugins (GA in v1.9.1) +- `DynamicPodInterfaceNaming` - Dynamic pod interface naming (GA in v1.9.1) +- `VolumesUpdateStrategy` - Volumes update strategy (GA in v1.9.1) +- `VolumeMigration` - Volume migration (GA in v1.9.1) +- `InstancetypeReferencePolicy` - Instance type reference policy (GA in v1.9.1) +- `Snapshot` - VM snapshot support (GA in v1.9.1) +- `VMExport` - VM export functionality (GA in v1.9.1) +- `HotplugVolumes` - Hot-plug/unplug volumes (GA in v1.9.1) +- `NodeRestriction` - Node restriction (GA in v1.9.1) ### CPU Configuration @@ -586,9 +586,9 @@ kubectl delete namespace kubevirt **Note:** By default, CRDs are kept on uninstallation to prevent data loss (`helm.sh/resource-policy: keep`). To also remove CRDs: `kubectl delete crd kubevirts.kubevirt.io` -## Upgrading from v0.1.x to v0.2.0 +## Upgrading from v0.1.x to v1.9.1 -In v0.2.0, CRD management moved from `crds/` directory (install-only) to regular Helm templates (updated on every upgrade). Existing installations need a one-time CRD adoption before upgrading: +In v1.9.1, CRD management moved from `crds/` directory (install-only) to regular Helm templates (updated on every upgrade). Existing installations need a one-time CRD adoption before upgrading: ```bash # Annotate the existing CRD for Helm adoption (one-time, safe, idempotent) @@ -633,14 +633,14 @@ If you're currently using raw KubeVirt manifests: ## Breaking Changes -### v1.6.x → v1.7.0 +### v1.6.x → v1.9.1 - **Minimum Kubernetes version**: Bumped from 1.30 to 1.32 - **GA Feature Gates**: `Snapshot`, `VMExport`, `HotplugVolumes`, and `NodeRestriction` are now GA. Listing them in featureGates is harmless but unnecessary. - **Operator scheduling**: Default affinity now prefers control-plane nodes. Override with `operator.affinity` if needed. - **Instancetype API versions**: `v1alpha1` and `v1alpha2` instancetype APIs are removed. Migrate to `v1beta1` or `v1` before upgrading. -### v1.5.0 → v1.6.x +### v1.9.1 → v1.6.x - **VirtualMachineInstanceMigration RBAC**: Namespace admins no longer have default permissions to create/edit/delete migrations. Grant explicitly if needed. @@ -810,14 +810,14 @@ Kubernetes: `>=1.32.0-0` | monitoring.serviceMonitorNamespace | string | `""` | Namespace for ServiceMonitor resource Leave empty to deploy in the same namespace as KubeVirt | | namespace | object | `{"name":""}` | Namespace configuration | | namespace.name | string | `""` | Name of the namespace for KubeVirt installation. Defaults to the Helm release namespace when left empty, which is the natural fit for most installs and is required for `helm install --create-namespace` and chart-testing workflows to work without an extra namespace override. Set this only when you want KubeVirt managed-resources to live somewhere other than the release namespace. | -| operator | object | `{"affinity":{},"enabled":true,"image":{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"kubevirt/virt-operator","tag":"v1.7.0"},"imagePullSecrets":[],"nodeSelector":{},"podAnnotations":{},"priorityClassName":"kubevirt-cluster-critical","replicas":2,"resources":{"limits":{"cpu":"1000m","memory":"450Mi"},"requests":{"cpu":"10m","memory":"450Mi"}},"tolerations":[]}` | KubeVirt Operator configuration | +| operator | object | `{"affinity":{},"enabled":true,"image":{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"kubevirt/virt-operator","tag":"v1.9.1"},"imagePullSecrets":[],"nodeSelector":{},"podAnnotations":{},"priorityClassName":"kubevirt-cluster-critical","replicas":2,"resources":{"limits":{"cpu":"1000m","memory":"450Mi"},"requests":{"cpu":"10m","memory":"450Mi"}},"tolerations":[]}` | KubeVirt Operator configuration | | operator.affinity | object | `{}` | Affinity rules for operator pods Default: pod anti-affinity for better distribution across nodes Set to {} to use template defaults or override with custom affinity | | operator.enabled | bool | `true` | Enable operator deployment | -| operator.image | object | `{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"kubevirt/virt-operator","tag":"v1.7.0"}` | Operator container image configuration | +| operator.image | object | `{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"kubevirt/virt-operator","tag":"v1.9.1"}` | Operator container image configuration | | operator.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | operator.image.registry | string | `"quay.io"` | Image registry | | operator.image.repository | string | `"kubevirt/virt-operator"` | Image repository | -| operator.image.tag | string | `"v1.7.0"` | Image tag (defaults to chart appVersion) | +| operator.image.tag | string | `"v1.9.1"` | Image tag (defaults to chart appVersion) | | operator.imagePullSecrets | list | `[]` | Image pull secrets for private registries | | operator.nodeSelector | object | `{}` | Node selector for operator pods (default: kubernetes.io/os: linux) Set to {} to use template defaults or override with custom selectors | | operator.podAnnotations | object | `{}` | Pod annotations (e.g., for OpenShift: openshift.io/required-scc: restricted-v2) | diff --git a/charts/kubevirt/README.md.gotmpl b/charts/kubevirt/README.md.gotmpl index 27dd489..7251923 100644 --- a/charts/kubevirt/README.md.gotmpl +++ b/charts/kubevirt/README.md.gotmpl @@ -14,10 +14,10 @@ ## Description -KubeVirt is a Kubernetes add-on that enables you to run and manage virtual machines alongside container workloads. This Helm chart provides a deployment of KubeVirt v1.7.0 with comprehensive configuration options. +KubeVirt is a Kubernetes add-on that enables you to run and manage virtual machines alongside container workloads. This Helm chart provides a deployment of KubeVirt v1.9.1 with comprehensive configuration options. **Key Features:** -- Full KubeVirt v1.7.0 support with all feature gates +- Full KubeVirt v1.9.1 support with all feature gates - Operator-based lifecycle management - Comprehensive RBAC configuration - Monitoring integration (ServiceMonitor & PrometheusRule) @@ -106,7 +106,7 @@ helm install kubevirt encircle360-oss/kubevirt \ | `namespace.name` | Namespace for KubeVirt | `kubevirt` | | `namespace.create` | Create the namespace | `true` | | `operator.replicas` | Number of operator replicas | `2` | -| `operator.image.tag` | Operator image tag | `v1.7.0` | +| `operator.image.tag` | Operator image tag | `v1.9.1` | ### Feature Gates @@ -115,7 +115,7 @@ KubeVirt uses feature gates to control optional functionality. Feature gates are - **Beta**: Features that are stable but may have limitations - **GA**: Stable features (enabled by default, no gate needed) -#### Alpha/Beta Feature Gates (v1.7.0) +#### Alpha/Beta Feature Gates (v1.9.1) ```yaml kubevirt: @@ -125,7 +125,7 @@ kubevirt: # Storage - ExpandDisks # Dynamic disk expansion - HostDisk # Host disk access - - ImageVolume # Image volume support (Beta in v1.7.0) + - ImageVolume # Image volume support (Beta in v1.9.1) # Performance - CPUManager # CPU pinning and NUMA topology @@ -165,7 +165,7 @@ kubevirt: #### GA Feature Gates (No Configuration Needed) -The following features are **stable and enabled by default** in v1.7.0. You do NOT need to specify these in feature gates: +The following features are **stable and enabled by default** in v1.9.1. You do NOT need to specify these in feature gates: - `LiveMigration` - Live migration of VMs - `SRIOVLiveMigration` - Live migration with SR-IOV @@ -174,20 +174,20 @@ The following features are **stable and enabled by default** in v1.7.0. You do N - `CPUNodeDiscovery` - CPU node discovery - `NUMA` - NUMA topology support - `GPU` - GPU passthrough -- `VMLiveUpdateFeatures` - Live update VM features (GA in v1.5.0) -- `CommonInstancetypesDeploymentGate` - Common instance types (GA in v1.4.0) -- `HotplugNICs` - Hot-plug network interfaces (GA in v1.4.0) -- `BochsDisplayForEFIGuests` - Bochs display for EFI (GA in v1.4.0) -- `AutoResourceLimitsGate` - Automatic resource limits (GA in v1.5.0) -- `NetworkBindingPlugins` - Network binding plugins (GA in v1.5.0) -- `DynamicPodInterfaceNaming` - Dynamic pod interface naming (GA in v1.5.0) -- `VolumesUpdateStrategy` - Volumes update strategy (GA in v1.5.0) -- `VolumeMigration` - Volume migration (GA in v1.5.0) -- `InstancetypeReferencePolicy` - Instance type reference policy (GA in v1.6.0) -- `Snapshot` - VM snapshot support (GA in v1.7.0) -- `VMExport` - VM export functionality (GA in v1.7.0) -- `HotplugVolumes` - Hot-plug/unplug volumes (GA in v1.7.0) -- `NodeRestriction` - Node restriction (GA in v1.7.0) +- `VMLiveUpdateFeatures` - Live update VM features (GA in v1.9.1) +- `CommonInstancetypesDeploymentGate` - Common instance types (GA in v1.9.1) +- `HotplugNICs` - Hot-plug network interfaces (GA in v1.9.1) +- `BochsDisplayForEFIGuests` - Bochs display for EFI (GA in v1.9.1) +- `AutoResourceLimitsGate` - Automatic resource limits (GA in v1.9.1) +- `NetworkBindingPlugins` - Network binding plugins (GA in v1.9.1) +- `DynamicPodInterfaceNaming` - Dynamic pod interface naming (GA in v1.9.1) +- `VolumesUpdateStrategy` - Volumes update strategy (GA in v1.9.1) +- `VolumeMigration` - Volume migration (GA in v1.9.1) +- `InstancetypeReferencePolicy` - Instance type reference policy (GA in v1.9.1) +- `Snapshot` - VM snapshot support (GA in v1.9.1) +- `VMExport` - VM export functionality (GA in v1.9.1) +- `HotplugVolumes` - Hot-plug/unplug volumes (GA in v1.9.1) +- `NodeRestriction` - Node restriction (GA in v1.9.1) ### CPU Configuration @@ -587,9 +587,9 @@ kubectl delete namespace kubevirt **Note:** By default, CRDs are kept on uninstallation to prevent data loss (`helm.sh/resource-policy: keep`). To also remove CRDs: `kubectl delete crd kubevirts.kubevirt.io` -## Upgrading from v0.1.x to v0.2.0 +## Upgrading from v0.1.x to v1.9.1 -In v0.2.0, CRD management moved from `crds/` directory (install-only) to regular Helm templates (updated on every upgrade). Existing installations need a one-time CRD adoption before upgrading: +In v1.9.1, CRD management moved from `crds/` directory (install-only) to regular Helm templates (updated on every upgrade). Existing installations need a one-time CRD adoption before upgrading: ```bash # Annotate the existing CRD for Helm adoption (one-time, safe, idempotent) @@ -634,14 +634,14 @@ If you're currently using raw KubeVirt manifests: ## Breaking Changes -### v1.6.x → v1.7.0 +### v1.6.x → v1.9.1 - **Minimum Kubernetes version**: Bumped from 1.30 to 1.32 - **GA Feature Gates**: `Snapshot`, `VMExport`, `HotplugVolumes`, and `NodeRestriction` are now GA. Listing them in featureGates is harmless but unnecessary. - **Operator scheduling**: Default affinity now prefers control-plane nodes. Override with `operator.affinity` if needed. - **Instancetype API versions**: `v1alpha1` and `v1alpha2` instancetype APIs are removed. Migrate to `v1beta1` or `v1` before upgrading. -### v1.5.0 → v1.6.x +### v1.9.1 → v1.6.x - **VirtualMachineInstanceMigration RBAC**: Namespace admins no longer have default permissions to create/edit/delete migrations. Grant explicitly if needed. diff --git a/charts/kubevirt/values.yaml b/charts/kubevirt/values.yaml index 4638eaf..bdb106d 100644 --- a/charts/kubevirt/values.yaml +++ b/charts/kubevirt/values.yaml @@ -5,7 +5,6 @@ global: # -- Enable deployment of KubeVirt enabled: true - # -- Namespace configuration namespace: # -- Name of the namespace for KubeVirt installation. Defaults to the @@ -15,20 +14,16 @@ namespace: # override. Set this only when you want KubeVirt managed-resources # to live somewhere other than the release namespace. name: "" - # -- CRD configuration crds: # -- Install CRDs as part of the Helm release (updated on every helm upgrade) install: true - # -- KubeVirt Operator configuration operator: # -- Enable operator deployment enabled: true - # -- Number of operator replicas replicas: 2 - # -- Operator container image configuration image: # -- Image registry @@ -36,16 +31,13 @@ operator: # -- Image repository repository: kubevirt/virt-operator # -- Image tag (defaults to chart appVersion) - tag: "v1.7.0" + tag: "v1.9.1" # -- Image pull policy pullPolicy: IfNotPresent - # -- Image pull secrets for private registries imagePullSecrets: [] - # -- Pod annotations (e.g., for OpenShift: openshift.io/required-scc: restricted-v2) podAnnotations: {} - # -- Resource limits and requests for operator resources: requests: @@ -54,31 +46,24 @@ operator: limits: cpu: 1000m memory: 450Mi - # -- Priority class for operator pods priorityClassName: kubevirt-cluster-critical - # -- Node selector for operator pods (default: kubernetes.io/os: linux) # Set to {} to use template defaults or override with custom selectors nodeSelector: {} - # -- Tolerations for operator pods (default: CriticalAddonsOnly) # Set to [] to use template defaults or override with custom tolerations tolerations: [] - # -- Affinity rules for operator pods # Default: pod anti-affinity for better distribution across nodes # Set to {} to use template defaults or override with custom affinity affinity: {} - # -- KubeVirt CR configuration kubevirt: # -- Deploy KubeVirt Custom Resource (disable for CI tests or when CRDs don't exist yet) deploy: true - # -- Name of the KubeVirt CR name: kubevirt - # -- Image configuration for KubeVirt components image: # -- Custom image registry (leave empty to use default quay.io/kubevirt) @@ -87,7 +72,6 @@ kubevirt: tag: "" # -- Image pull policy pullPolicy: IfNotPresent - # -- Certificate rotation strategy certificateRotateStrategy: selfSigned: @@ -97,7 +81,6 @@ kubevirt: certRotateInterval: "168h" # -- CA rotation interval caRotateInterval: "168h" - # -- Main configuration section configuration: # -- Developer configuration @@ -105,151 +88,130 @@ kubevirt: # -- Use QEMU software emulation instead of KVM hardware virtualization # Useful for testing on non-virtualization-capable nodes useEmulation: false - # -- Feature gates configuration # Feature gates control optional KubeVirt features # See: https://kubevirt.io/user-guide/operations/activating_feature_gates/ featureGates: - # ============================================ - # ALPHA/BETA FEATURES (must be explicitly enabled) - # ============================================ - - # - ExpandDisks # Enable dynamic disk expansion - # - CPUManager # CPU pinning and NUMA topology - # - ExperimentalIgnitionSupport # Ignition config support for provisioning - # - HypervStrictCheck # Strict Hyper-V feature checking - # - Sidecar # Sidecar container injection - # - HostDevices # PCI device passthrough - # - HostDisk # Host disk access - # - DownwardMetrics # Expose metrics to VMs via downward API - # - Root # Run virt-launcher as root - # - WorkloadEncryptionSEV # AMD SEV memory encryption - # - VSOCK # AF_VSOCK support for host-guest communication - # - KubevirtSeccompProfile # Custom seccomp profiles - # - DisableMDEVConfiguration # Disable automatic MDEV configuration - # - PersistentReservation # SCSI persistent reservations - # - MultiArchitecture # Multi-architecture support - # - AlignCPUs # Align guest and host CPU topology - # - ImageVolume # Image volume support (Beta in v1.7.0) - # - VirtIOFSConfigVolumesGate # VirtioFS for config volumes - # - VirtIOFSStorageVolumeGate # VirtioFS for storage volumes - # - GPUsWithDRA # GPU support with Dynamic Resource Allocation - # - HostDevicesWithDRA # Host devices with DRA - # - DecentralizedLiveMigration # Decentralized live migration - # - ObjectGraph # Object graph feature - # - DeclarativeHotplugVolumes # Declarative hotplug volumes - # - SecureExecution # IBM Secure Execution - # - VideoConfig # Video device configuration - # - PanicDevices # Panic device support - # - PasstIPStackMigration # PASST IP stack migration - - # ============================================ - # GA FEATURES (enabled by default, no gate needed) - # These features are stable and don't need feature gates anymore: - # - LiveMigration, SRIOVLiveMigration, NonRoot, PSA, - # - CPUNodeDiscovery, NUMA, GPU, VMLiveUpdateFeatures (GA in v1.5.0) - # - CommonInstancetypesDeploymentGate (GA in v1.4.0) - # - HotplugNICs (GA in v1.4.0), BochsDisplayForEFIGuests (GA in v1.4.0) - # - AutoResourceLimitsGate (GA in v1.5.0), NetworkBindingPlugins (GA in v1.5.0) - # - DynamicPodInterfaceNaming (GA in v1.5.0), VolumesUpdateStrategy (GA in v1.5.0) - # - VolumeMigration (GA in v1.5.0), InstancetypeReferencePolicy (GA in v1.6.0) - # - Snapshot (GA in v1.7.0), VMExport (GA in v1.7.0) - # - HotplugVolumes (GA in v1.7.0), NodeRestriction (GA in v1.7.0) - # ============================================ - + # ============================================ + # ALPHA/BETA FEATURES (must be explicitly enabled) + # ============================================ + + # - ExpandDisks # Enable dynamic disk expansion + # - CPUManager # CPU pinning and NUMA topology + # - ExperimentalIgnitionSupport # Ignition config support for provisioning + # - HypervStrictCheck # Strict Hyper-V feature checking + # - Sidecar # Sidecar container injection + # - HostDevices # PCI device passthrough + # - HostDisk # Host disk access + # - DownwardMetrics # Expose metrics to VMs via downward API + # - Root # Run virt-launcher as root + # - WorkloadEncryptionSEV # AMD SEV memory encryption + # - VSOCK # AF_VSOCK support for host-guest communication + # - KubevirtSeccompProfile # Custom seccomp profiles + # - DisableMDEVConfiguration # Disable automatic MDEV configuration + # - PersistentReservation # SCSI persistent reservations + # - MultiArchitecture # Multi-architecture support + # - AlignCPUs # Align guest and host CPU topology + # - ImageVolume # Image volume support (Beta in v1.7.0) + # - VirtIOFSConfigVolumesGate # VirtioFS for config volumes + # - VirtIOFSStorageVolumeGate # VirtioFS for storage volumes + # - GPUsWithDRA # GPU support with Dynamic Resource Allocation + # - HostDevicesWithDRA # Host devices with DRA + # - DecentralizedLiveMigration # Decentralized live migration + # - ObjectGraph # Object graph feature + # - DeclarativeHotplugVolumes # Declarative hotplug volumes + # - SecureExecution # IBM Secure Execution + # - VideoConfig # Video device configuration + # - PanicDevices # Panic device support + # - PasstIPStackMigration # PASST IP stack migration + + # ============================================ + # GA FEATURES (enabled by default, no gate needed) + # These features are stable and don't need feature gates anymore: + # - LiveMigration, SRIOVLiveMigration, NonRoot, PSA, + # - CPUNodeDiscovery, NUMA, GPU, VMLiveUpdateFeatures (GA in v1.5.0) + # - CommonInstancetypesDeploymentGate (GA in v1.4.0) + # - HotplugNICs (GA in v1.4.0), BochsDisplayForEFIGuests (GA in v1.4.0) + # - AutoResourceLimitsGate (GA in v1.5.0), NetworkBindingPlugins (GA in v1.5.0) + # - DynamicPodInterfaceNaming (GA in v1.5.0), VolumesUpdateStrategy (GA in v1.5.0) + # - VolumeMigration (GA in v1.5.0), InstancetypeReferencePolicy (GA in v1.6.0) + # - Snapshot (GA in v1.7.0), VMExport (GA in v1.7.0) + # - HotplugVolumes (GA in v1.7.0), NodeRestriction (GA in v1.7.0) + # ============================================ # -- Default CPU model for VMs when not specified # Example: "host-passthrough", "host-model", "Penryn", "IvyBridge", etc. cpuModel: "" - # -- Default CPU request for VMs when not specified # Example: "100m" or "1" (1 core) cpuRequest: "" - # -- Obsolete CPU models that should not be used # These CPUs are considered too old and potentially insecure obsoleteCPUModels: {} - # pentium: true - # pentium2: true - # pentium3: true - # pentiumpro: true - # coreduo: true - # n270: true - # core2duo: true - # Conroe: true - # Penryn: true - # Nehalem: true - # Westmere: true - # Opteron_G1: true - # Opteron_G2: true + # pentium: true + # pentium2: true + # pentium3: true + # pentiumpro: true + # coreduo: true + # n270: true + # core2duo: true + # Conroe: true + # Penryn: true + # Nehalem: true + # Westmere: true + # Opteron_G1: true + # Opteron_G2: true # -- Network configuration network: # -- Default network interface type # Options: "masquerade", "bridge", "slirp" defaultNetworkInterface: "masquerade" - # -- Permit bridge interface on pod network permitBridgeInterfaceOnPodNetwork: false - # -- Permit SLIRP interface permitSlirpInterface: false - # -- Network binding plugins configuration binding: {} - # -- Live migration configuration migration: # -- Disable TLS for migrations (not recommended for production) disableTLS: false - # -- Allow auto-converge for slow migrations allowAutoConverge: false - # -- Network bandwidth limit per migration bandwidthPerGiB: "64Mi" - # -- Migration completion timeout per GiB of memory completionTimeoutPerGiB: 800 - # -- Progress timeout in seconds progressTimeout: 150 - # -- Maximum number of parallel migrations in the cluster parallelMigrationsPerCluster: 5 - # -- Maximum number of parallel outbound migrations per node parallelOutboundMigrationsPerNode: 2 - # -- Allow post-copy migration (use with caution) allowPostCopy: false - # -- Unsafe migration override (allows migrations in unsafe conditions) unsafeMigrationOverride: false - # -- Node drain taint key nodeDrainTaintKey: "kubevirt.io/drain" - # -- Dedicated migration network (optional) # Example: "migration-network" network: "" - # -- Storage class for VM state (snapshots, etc.) vmStateStorageClass: "" - # -- Permitted host devices for passthrough permittedHostDevices: # -- PCI host devices pciHostDevices: [] - # - pciVendorSelector: "10DE:1EB8" # NVIDIA Tesla T4 - # resourceName: "nvidia.com/T4" - # - pciVendorSelector: "8086:1572" # Intel X710 - # resourceName: "intel.com/X710" + # - pciVendorSelector: "10DE:1EB8" # NVIDIA Tesla T4 + # resourceName: "nvidia.com/T4" + # - pciVendorSelector: "8086:1572" # Intel X710 + # resourceName: "intel.com/X710" # -- Mediated devices (vGPU, etc.) mediatedDevices: [] - # - mdevNameSelector: "GRID T4-1Q" - # resourceName: "nvidia.com/GRID_T4-1Q" - + # - mdevNameSelector: "GRID T4-1Q" + # resourceName: "nvidia.com/GRID_T4-1Q" # -- Instancetype configuration instancetype: # -- Reference policy for instance types @@ -258,125 +220,101 @@ kubevirt: # - expand: Expand instancetype into VM spec once # - expandAll: Always expand instancetype referencePolicy: "reference" - # -- SELinux configuration selinuxLauncherType: "virt_launcher.process" - # -- SMBIOS configuration (system information exposed to VMs) smbios: {} - # manufacturer: "MyCompany" - # product: "MyProduct" - # version: "1.0" - # sku: "SKU123" - # family: "MyFamily" - + # manufacturer: "MyCompany" + # product: "MyProduct" + # version: "1.0" + # sku: "SKU123" + # family: "MyFamily" # -- Workload update strategy workloadUpdateStrategy: # -- Workload update methods # Options: "LiveMigrate", "Evict" workloadUpdateMethods: [] - # - LiveMigrate - # - Evict + # - LiveMigrate + # - Evict # -- Number of VMs to evict in parallel during updates batchEvictionSize: 10 - # -- Interval between batch evictions batchEvictionInterval: "1m" - # -- Infrastructure components placement (virt-api, virt-controller) infra: # -- Node placement configuration for infrastructure components nodePlacement: # -- Node selector nodeSelector: {} - # node-role.kubernetes.io/control-plane: "" + # node-role.kubernetes.io/control-plane: "" # -- Affinity rules affinity: {} - # -- Tolerations tolerations: [] - # - key: node-role.kubernetes.io/control-plane - # effect: NoSchedule - + # - key: node-role.kubernetes.io/control-plane + # effect: NoSchedule # -- Workload components placement (virt-handler, virt-launcher) workloads: # -- Node placement configuration for workload components nodePlacement: # -- Node selector nodeSelector: {} - # kubevirt.io/vm-workload: "true" + # kubevirt.io/vm-workload: "true" # -- Affinity rules affinity: {} - # -- Tolerations tolerations: [] - # -- Custom labels for KubeVirt CR labels: {} - # -- Custom annotations for KubeVirt CR annotations: {} - # -- Monitoring configuration monitoring: # -- Enable monitoring (ServiceMonitor and PrometheusRule) enabled: false - # -- Namespace where Prometheus is installed namespace: "monitoring" - # -- ServiceAccount used by Prometheus serviceAccount: "prometheus-k8s" - # -- Namespace for ServiceMonitor resource # Leave empty to deploy in the same namespace as KubeVirt serviceMonitorNamespace: "" - # -- Additional labels for ServiceMonitor serviceMonitorLabels: {} - # prometheus: kube-prometheus + # prometheus: kube-prometheus # -- Scrape interval for metrics scrapeInterval: "30s" - # -- PrometheusRule configuration prometheusRule: # -- Enable PrometheusRule enabled: false - # -- Additional labels for PrometheusRule labels: {} - # prometheus: kube-prometheus + # prometheus: kube-prometheus # -- Custom alerting rules # Add your custom Prometheus alerting rules here additionalRules: [] - # -- RBAC configuration rbac: # -- Create RBAC resources create: true - # -- Priority class configuration priorityClass: # -- Create priority class create: true - # -- Priority class name name: kubevirt-cluster-critical - # -- Priority value (higher = more important) value: 1000000000 - # -- Global default (not recommended for KubeVirt) globalDefault: false - # -- Description description: "This priority class should be used for core kubevirt components only." - # Note: KubeVirt CRDs are managed as regular Helm templates (not via crds/ directory). # This ensures CRDs are updated on every 'helm upgrade' (crds/ only works on install). # The CRD has 'helm.sh/resource-policy: keep' to prevent deletion on 'helm uninstall'.