Skip to content

Commit dfd2b59

Browse files
committed
fix(vm): fix issue with deleting vmbda from a stopped VM
Signed-off-by: Dmitry Lopatin <[email protected]>
1 parent 8d854eb commit dfd2b59

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

images/virtualization-artifact/go.mod

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,10 @@ require (
145145
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
146146
)
147147

148-
replace github.com/deckhouse/virtualization/api => ./../../api
148+
replace (
149+
github.com/deckhouse/virtualization/api => ./../../api
150+
kubevirt.io/api => github.com/deckhouse/3p-kubevirt-api v1.3.1-v12n.0
151+
)
149152

150153
replace (
151154
k8s.io/api => k8s.io/api v0.33.3

images/virtualization-artifact/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
4545
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4646
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
4747
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
48+
github.com/deckhouse/3p-kubevirt-api v1.3.1-v12n.0 h1:Tygrxudb159/H4ozBY+jvVhNWWGP6GYNYz8Hg8k2Sok=
49+
github.com/deckhouse/3p-kubevirt-api v1.3.1-v12n.0/go.mod h1:tCn7VAZktEvymk490iPSMPCmKM9UjbbfH2OsFR/IOLU=
4850
github.com/deckhouse/deckhouse/pkg/log v0.0.0-20250226105106-176cd3afcdd5 h1:PsN1E0oxC/+4zdA977txrqUCuObFL3HAuu5Xnud8m8c=
4951
github.com/deckhouse/deckhouse/pkg/log v0.0.0-20250226105106-176cd3afcdd5/go.mod h1:Mk5HRzkc5pIcDIZ2JJ6DPuuqnwhXVkb3you8M8Mg+4w=
5052
github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=

images/virtualization-artifact/pkg/controller/kvbuilder/kvvm.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,8 @@ func (b *KVVM) SetDisk(name string, opts SetDiskOptions) error {
365365

366366
case opts.ContainerDisk != nil:
367367
vs.ContainerDisk = &virtv1.ContainerDiskSource{
368-
Image: *opts.ContainerDisk,
368+
Image: *opts.ContainerDisk,
369+
Hotpluggable: opts.IsHotplugged,
369370
}
370371

371372
case opts.Provisioning != nil:

images/virtualization-artifact/pkg/controller/kvbuilder/kvvm_utils.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ type HotPlugDeviceSettings struct {
8484
VolumeName string
8585
PVCName string
8686
DataVolumeName string
87+
ImageName string
8788
}
8889

8990
func ApplyVirtualMachineSpec(
@@ -130,11 +131,10 @@ func ApplyVirtualMachineSpec(
130131
PVCName: volume.PersistentVolumeClaim.ClaimName,
131132
})
132133
}
133-
// FIXME(VM): not used, now only supports PVC
134-
if volume.DataVolume != nil && volume.DataVolume.Hotpluggable {
134+
if volume.ContainerDisk != nil && volume.ContainerDisk.Hotpluggable {
135135
hotpluggedDevices = append(hotpluggedDevices, HotPlugDeviceSettings{
136-
VolumeName: volume.Name,
137-
DataVolumeName: volume.DataVolume.Name,
136+
VolumeName: volume.Name,
137+
ImageName: volume.ContainerDisk.Image,
138138
})
139139
}
140140
}
@@ -227,8 +227,13 @@ func ApplyVirtualMachineSpec(
227227
}); err != nil {
228228
return err
229229
}
230-
// FIXME(VM): not used, now only supports PVC
231-
case device.DataVolumeName != "":
230+
case device.ImageName != "":
231+
if err := kvvm.SetDisk(device.VolumeName, SetDiskOptions{
232+
ContainerDisk: pointer.GetPointer(device.ImageName),
233+
IsHotplugged: true,
234+
}); err != nil {
235+
return err
236+
}
232237
}
233238
}
234239
if err := kvvm.SetProvisioning(vm.Spec.Provisioning); err != nil {

0 commit comments

Comments
 (0)