From ad8d5095ead55109056ddc1372f8a90fd29555b1 Mon Sep 17 00:00:00 2001 From: Rohit Aggarwal Date: Fri, 20 Sep 2024 14:06:22 +0530 Subject: [PATCH 1/2] Rephrasing the error message in case of continuous failure Signed-off-by: Rohit Aggarwal --- pkg/kapp/resourcesmisc/custom_waiting_resource.go | 4 ++-- test/e2e/wait_timeout_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/kapp/resourcesmisc/custom_waiting_resource.go b/pkg/kapp/resourcesmisc/custom_waiting_resource.go index 110ea5689..f2902ec38 100644 --- a/pkg/kapp/resourcesmisc/custom_waiting_resource.go +++ b/pkg/kapp/resourcesmisc/custom_waiting_resource.go @@ -99,8 +99,8 @@ func (s CustomWaitingResource) IsDoneApplying() DoneApplyState { isTimeOutConditionPresent = true if s.hasTimeoutOccurred(condMatcher.Timeout, s.resource.Description()) { return DoneApplyState{Done: true, Successful: false, Message: fmt.Sprintf( - "Encountered failure condition %s == %s: %s (message: %s) continuously for %s duration", - cond.Type, condMatcher.Status, cond.Reason, cond.Message, condMatcher.Timeout)} + "continuously failed for %s with %s == %s: %s (message: %s)", + condMatcher.Timeout, cond.Type, condMatcher.Status, cond.Reason, cond.Message)} } return DoneApplyState{Done: false, Message: fmt.Sprintf( "%s: %s (message: %s)", diff --git a/test/e2e/wait_timeout_test.go b/test/e2e/wait_timeout_test.go index b6b4ccecb..515222791 100644 --- a/test/e2e/wait_timeout_test.go +++ b/test/e2e/wait_timeout_test.go @@ -103,7 +103,7 @@ waitRules: RunOpts{IntoNs: true, AllowError: true, StdinReader: strings.NewReader(fmt.Sprintf(yaml2, "nginx:200"))}) require.Error(t, err) - require.Contains(t, err.Error(), "message: containers with unready status: [nginx]) continuously for 50s duration") + require.Contains(t, err.Error(), "Continuously failed for 50s with") }) cleanUp() From eeac83e446c52d3258104fc86607ec2f1381af90 Mon Sep 17 00:00:00 2001 From: Rohit Aggarwal Date: Thu, 26 Sep 2024 10:02:04 +0530 Subject: [PATCH 2/2] Providing startTime and currentTime to facilitate timeout in case of ytt wait rules Signed-off-by: Rohit Aggarwal --- pkg/kapp/resourcesmisc/custom_waiting_resource.go | 8 +++++++- pkg/kapp/resourcesmisc/wait_rule_contract_v1.go | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/kapp/resourcesmisc/custom_waiting_resource.go b/pkg/kapp/resourcesmisc/custom_waiting_resource.go index f2902ec38..f3d8065e5 100644 --- a/pkg/kapp/resourcesmisc/custom_waiting_resource.go +++ b/pkg/kapp/resourcesmisc/custom_waiting_resource.go @@ -65,10 +65,16 @@ func (s CustomWaitingResource) IsDoneApplying() DoneApplyState { } if s.waitRule.Ytt != nil { + startTime, found := timeoutMap.Load(s.resource.Description()) + if !found { + timeoutMap.Store(s.resource.Description(), time.Now().Unix()) + } configObj, err := WaitRuleContractV1{ ResourceMatcher: ctlres.AnyMatcher{ Matchers: ctlconf.ResourceMatchers(s.waitRule.ResourceMatchers).AsResourceMatchers()}, - Starlark: s.waitRule.Ytt.FuncContractV1.Resource, + Starlark: s.waitRule.Ytt.FuncContractV1.Resource, + CurrentTime: time.Now().Unix(), + StartTime: startTime.(int64), }.Apply(s.resource) if err != nil { return DoneApplyState{Done: true, Successful: false, Message: fmt.Sprintf( diff --git a/pkg/kapp/resourcesmisc/wait_rule_contract_v1.go b/pkg/kapp/resourcesmisc/wait_rule_contract_v1.go index e1344d9ac..077247eeb 100644 --- a/pkg/kapp/resourcesmisc/wait_rule_contract_v1.go +++ b/pkg/kapp/resourcesmisc/wait_rule_contract_v1.go @@ -16,6 +16,8 @@ import ( type WaitRuleContractV1 struct { ResourceMatcher ctlres.ResourceMatcher Starlark string + CurrentTime int64 + StartTime int64 } type waitRuleContractV1Result struct { @@ -48,6 +50,7 @@ func (t WaitRuleContractV1) evalYtt(res ctlres.Resource) (*WaitRuleContractV1Res } return yaml.Marshal(res.DeepCopyRaw()) } + opts.DataValuesFlags.KVsFromStrings = []string{fmt.Sprintf("startTime=%d", t.StartTime), fmt.Sprintf("currentTime=%d", t.CurrentTime)} filesToProcess := []*files.File{ files.MustNewFileFromSource(files.NewBytesSource("resource.star", []byte(t.Starlark))),