Multi-Hypervisor Node Labeller changes for comparison#111
Draft
harshitgupta1337 wants to merge 96 commits intomultihypervisor/1-controllerfrom
Draft
Multi-Hypervisor Node Labeller changes for comparison#111harshitgupta1337 wants to merge 96 commits intomultihypervisor/1-controllerfrom
harshitgupta1337 wants to merge 96 commits intomultihypervisor/1-controllerfrom
Conversation
in hotplug tests. Signed-off-by: dsanatar <dsanatar@redhat.com>
Signed-off-by: dsanatar <dsanatar@redhat.com>
…bevirtci Flannel has been the default in kubevirtci for a number of months[1] so this is no longer required to be configured. [1] kubevirt/kubevirtci#1526 Signed-off-by: Brian Carey <brian.carey@protonmail.com>
…test Signed-off-by: Jed Lejosne <jed@redhat.com>
Signed-off-by: Jed Lejosne <jed@redhat.com>
This feature gate will be responsible for: - disabling VMI controller's NetworkAttachmentDefinition query. - disabling the deployment of NetworkAttachmentDefinition-related RBAC rules. This is part of VEP 106 [1]. [1] kubevirt/enhancements#106 Signed-off-by: Orel Misan <omisan@redhat.com>
Currently, the VMI controller queries kube-api for each secondary network present on the VMI. It then requires ths relevant resources on the virt-launcher pod's compute container in order to assist with scheduling. Conditionally disable this logic in case the `DisableNADResourceInjection` feature gate is enabled. This is done in preparation for dropping KubeVirt's dependency on NetworkAttachmentDefinition objects as part of VEP 106 [1]. Users may deploy [2] before enabling this feature gate in case they require the disabled functionality (using SR-IOV, bridge-marker, etc). [1] kubevirt/enhancements#106 [2] https://github.com/k8snetworkplumbingwg/network-resources-injector Signed-off-by: Orel Misan <omisan@redhat.com>
Following [1], the kind-sriov provider deploys the network-resources-injector [2]. Enable the FG to disable NAD query so [2] will query the NAD objects and mutate the virt-launcher pods to have the correct network resources. The SR-IOV tests are already serial, so they shouldn't take a significant runtime hit by enabling the feature gate. [1] kubevirt/kubevirtci#1609 [2] https://github.com/k8snetworkplumbingwg/network-resources-injector Signed-off-by: Orel Misan <omisan@redhat.com>
Replaces QuiesceFailed indication with QuiesceTimeout to better reflect Windows VSS 10-second limitation. When the freeze window times out before snapshot completion, the QuiesceTimeout indication is set instead. Signed-off-by: Noam Assouline <nassouli@redhat.com>
Sets pre.hook.backup.velero.io/timeout annotation to 60s on virt-launcher pods. Also increases gRPC timeout for freeze operations to 60s in virt-handler client. This allows sufficient time to complete the freeze operation during backups. Signed-off-by: Noam Assouline <nassouli@redhat.com>
kubevirt#16616 quarantined the 2 tests under the with error disk context. While the first test that runs has a legitimate failure that's caused by a regression in the QEMU version that KubeVirt currently uses[1], the second test fails because the scsi_debug cleanup was failing silently. This commit changes the test cleanup logic to ensure that scsi_debug runs after the referenced disk is no longer in-use and dequarantines the affected test. [1] https://issues.redhat.com/browse/RHEL-144004 Signed-off-by: Adi Aloni <aaloni@redhat.com>
… kubevirt_virt_operator_ready to use sum and * instead of count and + Signed-off-by: ronilerr <rrabinov@redhat.com>
…eeze-command-timeout Improve handling of Windows VSS fsfreeze limitations
Introduce a builder pattern to help with the simplification of `DomainConfigurator.configureInterface`. Signed-off-by: Orel Misan <omisan@redhat.com>
Currently, the logic responsible for configuring the interface's driver field is spread across the file. Extract all of it into a single function. Signed-off-by: Orel Misan <omisan@redhat.com>
Signed-off-by: Orel Misan <omisan@redhat.com>
Signed-off-by: Orel Misan <omisan@redhat.com>
Use the builder for setting: - Interface Type - Boot order - ROM Signed-off-by: Orel Misan <omisan@redhat.com>
Signed-off-by: Orel Misan <omisan@redhat.com>
VEP 106: virt-ctrl, template: Conditionally disable NAD query
Signed-off-by: Martin Sivak <msivak@redhat.com>
PDBsForVMI is not a very useful function anymore, keep util leaner. Signed-off-by: Dan Kenigsberg <danken@redhat.com>
a8e4a22 to
3d98227
Compare
Fix virt-controller and virt-operator status recording rules and update e2e tests
VolumeNamePolicy was added to VirtualMachineClone by ed81071 and wired down into the resulting VirtualMachineRestore as a VolumeRestorePolicy by dd42fb8. Initially this was limited to the existing RandomizeNames policy through a simple openapi validation. PrefixTargetName was then added as a supported VolumeRestorePolicy for VirtualMachineRestore by a3306c8. This commit allows the use of PrefixTargetName as a VolumeNamePolicy by VirtualMachineClone that will map into a PrefixTargetName VolumeRestorePolicy used by the eventual VirtualMachineRestore. Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
VEP 0171: Add rebootPolicy to VMI
Add the Template feature gate which will enable the deployment of virt-template through virt-operator. Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
Add the VirtTemplateDeployment configurable which will allow to control the deploymennt of virt-template through virt-operator. Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
Bundle the install-virt-operator.yaml of virt-template into virt-operator and add a parser that will allow to use the contents of the bundle from virt-operator's generation code. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
Add a generator for the certificate secrets required by virt-template to virt-operator. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Felix Matouschek <fmatouschek@redhat.com>
Add passt binding support in netpod discovery and configuration phases as part of the migration from binding plugin to core binding. Discover and cache passt interface data. Configure privileged network settings (PingGroupRange and UnprivilegedPortStart) required for passt to function properly. Signed-off-by: Nir Dothan <ndothan@redhat.com>
Interfaces types that do not go through phase2 of network discovery should configure user specified MAC addresses at converter stage. This leaves a tiny bit of redundant code in [1], which will be handled in a follow-up. [1] https://github.com/kubevirt/kubevirt/blob/v1.8.0-alpha.0/pkg/network/domainspec/generators.go#L83 Signed-off-by: Nir Dothan <ndothan@redhat.com>
passt binding uses a vhostuser interface configuration in the domain XML. Its configuration options are significantly different from tap based bindings, which are configured as Ethernet type. Split the options between tap and passt, and augment some converter tests to follow the tap flow, as passt has a dedicated test file its own flow. Implement passt interface creation with vhostuser interface type, passt backend, port forwarding, and shared memory backing configuration. Support interface attributes and Istio proxy injection handling. Assisted by Cursor AI Signed-off-by: Nir Dothan <ndothan@redhat.com>
Extract binding-specific logic from configureInterface into dedicated methods tapBindingOptions and passtBindingOptions. This reduces the cyclomatic complexity from 16 to well under the linter threshold of 15, while improving readability by grouping each binding type's configuration in its own method. Signed-off-by: Nir Dothan <ndothan@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
PasstBinding doesn't require DHCP or Tap device. The entire configuration is completed in the converter step. Skip this stage as done for BP and SR-IOV. Signed-off-by: Nir Dothan <ndothan@redhat.com>
Replicate passt binding plugin tests and replace BP with core binding as part of the migration of passt binding plugin to the core. Add passt test to linter exceptions, as was done with bindingplugin_passt.go Signed-off-by: Nir Dothan <ndothan@redhat.com>
Revert e21905d, excluding passt BP tests on top of passt core binding tests. Those tests are deliberately duplicate, and passt BP tests will be removed in v1.9. Signed-off-by: Nir Dothan <ndothan@redhat.com>
[9ec4ec1 kind: Introduce kind-1.35 provider](kubevirt/kubevirtci#1625) [034a027 Automatic bump of CentOS Stream to latest](kubevirt/kubevirtci#1623) [6a20d60 Run go run ./robots/kubevirtci-bumper -ensure-last-three-minor-of v1 --k8s-provider-dir /home/prow/go/src/github.com/kubevirt/project-infra/../kubevirtci/cluster-provision/k8s](kubevirt/kubevirtci#1624) [266ffff chore: Remove old kind-1.33-vgpu cluster provider as no longer needed](kubevirt/kubevirtci#1622) ```release-note NONE ``` Signed-off-by: kubevirt-bot <kubevirtbot@redhat.com>
…-to-guest-checks tests: replace libvirt domain XML checks with guest-side verification
net: Passt Beta core backend implementation
Bump kubevirtci
Currently passt-repair is only called if the migrated VMI has a binding plugin (any binding not just passt). Following the introduction of passt core binding, seamless migration is only supported if the VMI has the core passt binding. Replace the condition to run passt repair accordingly. Adapt unit tests to modified functionality. This commit does not modify function signatures, such that callers are not impacted. The following commit removes the unused parameters. Signed-off-by: Nir Dothan <ndothan@redhat.com>
automation: Remove KUBEVIRT_FLANNEL as this is now the default for kubevirtci
Following the introduction of passt core binding, the signatures and Feature Gates for calling the passt-repair wrapper are changed. Remove unused arguments and FG. Adapt unit tests accordingly. Signed-off-by: Nir Dothan <ndothan@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Following the introduction of passt core binding, seamless migration with passt binding plugin is no longer supported, hence the FG has no use. Passt network binding plugin is still supported (without seamaless migration) though and does not require a FG. Signed-off-by: Nir Dothan <ndothan@redhat.com>
Signed-off-by: avlitman <alitman@redhat.com>
parallelized suites: - VM status metrics - VM snapshot metrics - VM metrics based on the guest agent - Metrics based on VMI connections - VM dirty rate metrics - Kubevirt alert rules - Migration Alerts - Deprecation Alerts kept disruptive suites Serial: - Cluster VM metrics - VM migration metrics - VM alerts - System Alerts updated to use shared vm/i: - VMI metrics Signed-off-by: avlitman <alitman@redhat.com>
container-disk tests: fix alpine vs cirros mismatch
virt-operator: Add support for deploying virt-template components
Fixed incorrect reference path to log package in logging.md
…errors tests, storage: dequarantine should report IO errors in the guest
fix(dockerized): avoid container cleanup affecting build
tests, instance types: Remove deprecated gomnd from nolint directive
Parallelize observability functional tests
…migration net, passt: Support seamless migration with core binding
Signed-off-by: Harshit Gupta <guptaharshit@microsoft.com>
Rename the struct implementing KVM's version of the hypervisor interface to KvmHypervisorBackend because it matches its purpose. The struct serves as the implementation for multiple hypervisor interfaces. Signed-off-by: Harshit Gupta <guptaharshit@microsoft.com>
Add env vars to the node-labeller.sh script to specify the hypervisor device (e.g., kvm or mshv) and the LibVirt virt-type of VMs on that hypervisor. Update the defn of the virt-handler daemonset to pass the default KVM-specific values to the script. If either of the env vars are not specified by the script caller the default KVM value is set for both the variables. Signed-off-by: Harshit Gupta <guptaharshit@microsoft.com>
Add HypervisorName to KubeVirtDeploymentConfig.AdditionalProperties. Extract HypervisorName from KubeVirtConfiguration. Invoke the LauncherResourceRenderer interface to fetch hypervisor dev and virtType to pass to node-labeller. Signed-off-by: Harshit Gupta <guptaharshit@microsoft.com>
1044303 to
6863b0b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
This PR decouples the node-labeler component from KVM. It passes the correct hypervisor device and virt-type to the node-labeller.sh script by using the
LauncherHypervisorResourcesinterface.References
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.
Release note