From efef182657cc080c1cc2e1ef0ec4b09c16ca6c82 Mon Sep 17 00:00:00 2001 From: Valeriy Khorunzhin Date: Tue, 7 Oct 2025 14:30:55 +0300 Subject: [PATCH 1/3] fix Signed-off-by: Valeriy Khorunzhin --- .../pkg/controller/conditions/builder.go | 16 +++++++++++++++- tests/e2e/default_config.yaml | 1 - 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/images/virtualization-artifact/pkg/controller/conditions/builder.go b/images/virtualization-artifact/pkg/controller/conditions/builder.go index 4ffbf9edaf..e301756334 100644 --- a/images/virtualization-artifact/pkg/controller/conditions/builder.go +++ b/images/virtualization-artifact/pkg/controller/conditions/builder.go @@ -66,15 +66,29 @@ func SetCondition(c Conder, conditions *[]metav1.Condition) { if !newCondition.LastTransitionTime.IsZero() && newCondition.LastTransitionTime.After(existingCondition.LastTransitionTime.Time) { existingCondition.LastTransitionTime = newCondition.LastTransitionTime + } else { + existingCondition.LastTransitionTime = metav1.NewTime(time.Now()) } } if existingCondition.Message != newCondition.Message { existingCondition.Message = newCondition.Message + if !newCondition.LastTransitionTime.IsZero() && + newCondition.LastTransitionTime.After(existingCondition.LastTransitionTime.Time) { + existingCondition.LastTransitionTime = newCondition.LastTransitionTime + } else { + existingCondition.LastTransitionTime = metav1.NewTime(time.Now()) + } } if existingCondition.ObservedGeneration != newCondition.ObservedGeneration { existingCondition.ObservedGeneration = newCondition.ObservedGeneration + if !newCondition.LastTransitionTime.IsZero() && + newCondition.LastTransitionTime.After(existingCondition.LastTransitionTime.Time) { + existingCondition.LastTransitionTime = newCondition.LastTransitionTime + } else { + existingCondition.LastTransitionTime = metav1.NewTime(time.Now()) + } } } @@ -164,7 +178,7 @@ func (c *ConditionBuilder) LastTransitionTime(lastTransitionTime time.Time) *Con } func (c *ConditionBuilder) Clone() *ConditionBuilder { - var out *ConditionBuilder + out := &ConditionBuilder{} *out = *c return out } diff --git a/tests/e2e/default_config.yaml b/tests/e2e/default_config.yaml index a42268ddfe..28ef9f36cf 100644 --- a/tests/e2e/default_config.yaml +++ b/tests/e2e/default_config.yaml @@ -48,7 +48,6 @@ logFilter: - "the server rejected our request due to an error in our request" # Err. - "failed to sync powerstate" # Msg. - "does not have a pvc reference" # "err": "kvvm head-345e7b6a-testcases-image-hotplug/head-345e7b6a-vm-image-hotplug spec volume vi-head-345e7b6a-vi-alpine-http does not have a pvc reference" - - "lastTransitionTime: Required value" # Err. - "virtualmachineipaddressleases.virtualization.deckhouse.io " - "Forbidden: no new finalizers can be added if the object is being deleted, found new finalizers" - "Failed to watch" # error if virtualization-controller restarts during tests. "msg": "Failed to watch", "err": "Get \"http://127.0.0.1:23915/apis/virtualization.deckhouse.io/v1alpha2/virtualmachinerestores?allowWatchBookmarks=true\u0026resourceVersion=709816257\u0026timeoutSeconds=310\u0026watch=true\": context canceled" From 871ce7fa11258d81a4c3044bbb8f294b40a03d2f Mon Sep 17 00:00:00 2001 From: Valeriy Khorunzhin Date: Wed, 8 Oct 2025 11:13:18 +0300 Subject: [PATCH 2/3] remove errored Signed-off-by: Valeriy Khorunzhin --- .../pkg/controller/conditions/builder.go | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/images/virtualization-artifact/pkg/controller/conditions/builder.go b/images/virtualization-artifact/pkg/controller/conditions/builder.go index e301756334..eee76d0cf7 100644 --- a/images/virtualization-artifact/pkg/controller/conditions/builder.go +++ b/images/virtualization-artifact/pkg/controller/conditions/builder.go @@ -73,22 +73,10 @@ func SetCondition(c Conder, conditions *[]metav1.Condition) { if existingCondition.Message != newCondition.Message { existingCondition.Message = newCondition.Message - if !newCondition.LastTransitionTime.IsZero() && - newCondition.LastTransitionTime.After(existingCondition.LastTransitionTime.Time) { - existingCondition.LastTransitionTime = newCondition.LastTransitionTime - } else { - existingCondition.LastTransitionTime = metav1.NewTime(time.Now()) - } } if existingCondition.ObservedGeneration != newCondition.ObservedGeneration { existingCondition.ObservedGeneration = newCondition.ObservedGeneration - if !newCondition.LastTransitionTime.IsZero() && - newCondition.LastTransitionTime.After(existingCondition.LastTransitionTime.Time) { - existingCondition.LastTransitionTime = newCondition.LastTransitionTime - } else { - existingCondition.LastTransitionTime = metav1.NewTime(time.Now()) - } } } From 04b5c7f145e4386a99f552ef3d5fac3d00136b4e Mon Sep 17 00:00:00 2001 From: Valeriy Khorunzhin Date: Wed, 8 Oct 2025 11:14:50 +0300 Subject: [PATCH 3/3] do not touch magic) Signed-off-by: Valeriy Khorunzhin --- .../pkg/controller/conditions/builder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/virtualization-artifact/pkg/controller/conditions/builder.go b/images/virtualization-artifact/pkg/controller/conditions/builder.go index eee76d0cf7..8fdefacd44 100644 --- a/images/virtualization-artifact/pkg/controller/conditions/builder.go +++ b/images/virtualization-artifact/pkg/controller/conditions/builder.go @@ -166,7 +166,7 @@ func (c *ConditionBuilder) LastTransitionTime(lastTransitionTime time.Time) *Con } func (c *ConditionBuilder) Clone() *ConditionBuilder { - out := &ConditionBuilder{} + var out *ConditionBuilder *out = *c return out }