-
Bug
-
Resolution: Done-Errata
-
None
-
False
-
-
False
-
CLOSED
-
---
-
---
-
-
-
No
Description of problem:
After performing hot-unplug, the interface remains in the VMI (with state: absent), and it remains like this even after migrating the VM.
Version-Release number of selected component (if applicable):
CNV 4.14.0
How reproducible:
Always
Steps to Reproduce:
1. Create and run a basic VM (no secondary NICs).
$ oc create ns yoss-ns
namespace/yoss-ns created
$ oc project yoss-ns
Now using project "yoss-ns" on server "https://api.net-ys-414o.rhos-psi.cnv-qe.rhood.us:6443".
$ oc apply -f vm-fedora.yaml
virtualmachine.kubevirt.io/vm-fedora created
$ virtctl start vm-fedora
VM vm-fedora was scheduled to start
2. Create a bridge interface over one of the nodes secondary NICs using a NodeNetworkConfigurationPolicy.
$ oc apply -f nncp-linux-bridge.yaml
oc get nncp -w
nodenetworkconfigurationpolicy.nmstate.io/hotplug-linux-bridge created
ysegev@ysegev-fedora (hotplug) $ oc get nncp -w
NAME STATUS REASON
hotplug-linux-bridge
hotplug-linux-bridge Progressing ConfigurationProgressing
hotplug-linux-bridge Progressing ConfigurationProgressing
...
hotplug-linux-bridge Available SuccessfullyConfigured
3. Create a NetworkattachmentDefinition for the bridge.
$ oc apply -f bridge-nad.yaml
networkattachmentdefinition.k8s.cni.cncf.io/hp-br-nad created
4. Run the command to add the new interface to the VM:
$ virtctl addinterface vm-fedora --network-attachment-definition-name hp-br-nad --name hp2
5. Migrate the VM to completely apply the hot-plug action (using a VirtualMachineInstanceMigration resource).
$ cat << EOF | oc apply -f -
> apiVersion: kubevirt.io/v1
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: vm-fedora
> EOF
virtualmachineinstancemigration.kubevirt.io/migration-job created
$ oc get vmim -w
NAME PHASE VMI
migration-job Scheduling vm-fedora
migration-job Scheduled vm-fedora
migration-job PreparingTarget vm-fedora
migration-job TargetReady vm-fedora
migration-job Running vm-fedora
migration-job Succeeded vm-fedora
6. Delete the migration job
$ oc delete vmim migration-job
7. Remove the hot-plugged interface:
$ virtctl addinterface vm-fedora --name hp2
8. Migrate again (to complete the hot-unplug):
Simply repeat step 5.
9. Check the VM spec (specifically the `networks` and `interfaces` sections).
Actual results:
<BUG>
The hot-unplugged interfaces is still there (as `absent`):
interfaces:
- masquerade: {}
name: default - bridge: {}
name: hp2
state: absent
...
networks: - name: default
pod: {} - multus:
networkName: hp-br-nad
name: hp2
Expected results:
The removed interface should be completely removed from the VM spec.