Skip to content

Commit

Permalink
Fix flaky test fire VMStorageClassWarning when rxbounce is disabled
Browse files Browse the repository at this point in the history
Signed-off-by: João Vilaça <machadovilaca@gmail.com>
  • Loading branch information
machadovilaca committed Nov 11, 2024
1 parent 68a7929 commit 3804429
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 12 deletions.
30 changes: 20 additions & 10 deletions tests/monitoring_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"gomodules.xyz/jsonpatch/v2"

routev1 "github.com/openshift/api/route/v1"
templatev1 "github.com/openshift/api/template/v1"
promApi "github.com/prometheus/client_golang/api"
Expand All @@ -19,11 +21,11 @@ import (
apps "k8s.io/api/apps/v1"
authnv1 "k8s.io/api/authentication/v1"
core "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/rand"
"k8s.io/utils/pointer"
kubevirtv1 "kubevirt.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"

Expand Down Expand Up @@ -245,6 +247,17 @@ var _ = Describe("Prometheus Alerts", func() {
var createResources = func(createDataVolume bool, rxbounceEnabled bool) string {
vmName := fmt.Sprintf("testvmi-%v", rand.String(10))

vmi := NewMinimalVMIWithNS(strategy.GetNamespace(), vmName)
vm = NewVirtualMachine(vmi)
runStrategyAlways := kubevirtv1.RunStrategyAlways
vm.Spec.RunStrategy = &runStrategyAlways
vm.Spec.Template.ObjectMeta.Annotations = map[string]string{
"vm.kubevirt.io/os": "windows-10",
}

eventuallyCreateVm(vm)
waitForSeriesToBeDetected(fmt.Sprintf("kubevirt_vmi_info{name='%s', os='windows-10'} == 1", vmi.Name))

var volumes []kubevirtv1.Volume

if createDataVolume {
Expand All @@ -259,13 +272,10 @@ var _ = Describe("Prometheus Alerts", func() {
})
}

vmi := NewMinimalVMIWithNS(strategy.GetNamespace(), vmName)
vmi.Spec = kubevirtv1.VirtualMachineInstanceSpec{
Volumes: volumes,
}
vm = NewVirtualMachine(vmi)
vm.Spec.Running = pointer.Bool(false)
eventuallyCreateVm(vm)
operation := jsonpatch.NewOperation("add", "/spec/template/spec/volumes", volumes)
patch := encodePatch([]jsonpatch.Operation{operation})
err := apiClient.Patch(ctx, vm, patch)
Expect(err).NotTo(HaveOccurred())

return vmName
}
Expand All @@ -285,8 +295,8 @@ var _ = Describe("Prometheus Alerts", func() {
Expect(err).ToNot(HaveOccurred())

Eventually(func(g Gomega) error {
return apiClient.Get(ctx, types.NamespacedName{Name: vmName, Namespace: strategy.GetNamespace()}, vm)
}).Should(MatchError(ContainSubstring(fmt.Sprintf("virtualmachines.kubevirt.io \"%s\" not found", vmName))))
return apiClient.Get(ctx, types.NamespacedName{Name: vm.Name, Namespace: vm.Namespace}, vm)
}, 1*time.Minute, 5*time.Second).Should(MatchError(k8serrors.IsNotFound))

waitForSeriesToBeDetected(fmt.Sprintf("kubevirt_ssp_vm_rbd_block_volume_without_rxbounce{name='%s'} == 0", vmName))
alertShouldNotBeActive("VMStorageClassWarning")
Expand Down
4 changes: 2 additions & 2 deletions tests/tests_common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ func NewMinimalVMIWithNS(namespace, name string) *kubevirtv1.VirtualMachineInsta
}

func NewVirtualMachine(vmi *kubevirtv1.VirtualMachineInstance) *kubevirtv1.VirtualMachine {
running := false
runStrategyHalted := kubevirtv1.RunStrategyHalted
name := vmi.Name
namespace := vmi.Namespace
vm := &kubevirtv1.VirtualMachine{
Expand All @@ -371,7 +371,7 @@ func NewVirtualMachine(vmi *kubevirtv1.VirtualMachineInstance) *kubevirtv1.Virtu
Namespace: namespace,
},
Spec: kubevirtv1.VirtualMachineSpec{
Running: &running,
RunStrategy: &runStrategyHalted,
Template: &kubevirtv1.VirtualMachineInstanceTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{"kubevirt.io/vm": name},
Expand Down

0 comments on commit 3804429

Please sign in to comment.