From 755a7b57cfcd5d8fb02be16682958b66806dca62 Mon Sep 17 00:00:00 2001 From: Michael Grosser Date: Fri, 9 Feb 2024 13:26:54 -0800 Subject: [PATCH] karmada: ignore sync errors since they are temporary --- .../app/models/kubernetes/resource_status.rb | 10 ++++++++-- .../test/models/kubernetes/resource_status_test.rb | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/kubernetes/app/models/kubernetes/resource_status.rb b/plugins/kubernetes/app/models/kubernetes/resource_status.rb index 95508ccb44..308dca4c11 100644 --- a/plugins/kubernetes/app/models/kubernetes/resource_status.rb +++ b/plugins/kubernetes/app/models/kubernetes/resource_status.rb @@ -25,6 +25,11 @@ class ResourceStatus ], Service: [ "FailedToUpdateEndpointSlices" + ], + # karmada can fail to sync a resource when something else also updated the resource, + # this does not necessarily indicate that sync will be broken forever + All: [ + 'ApplyPolicyFailed' ] }.freeze @@ -117,8 +122,9 @@ def bad_events(kind) failures = events(type: "Warning") ignored = @resource.dig(:metadata, :annotations, :"samson/ignore_events").to_s.split(",") + - (IGNORED_EVENT_REASONS[kind.to_sym] || []) - failures.reject! { |e| ignored.include? e[:reason] } if ignored.any? + (IGNORED_EVENT_REASONS[kind.to_sym] || []) + + IGNORED_EVENT_REASONS[:All] + failures.reject! { |e| ignored.include? e[:reason] } failures end end diff --git a/plugins/kubernetes/test/models/kubernetes/resource_status_test.rb b/plugins/kubernetes/test/models/kubernetes/resource_status_test.rb index 1eb7d4b8e1..923ff330c0 100644 --- a/plugins/kubernetes/test/models/kubernetes/resource_status_test.rb +++ b/plugins/kubernetes/test/models/kubernetes/resource_status_test.rb @@ -110,6 +110,11 @@ def expect_event_request(&block) } expect_event_request { details.must_equal "Error event" } end + + it "ignores karmada sync" do + events[0][:reason] = "ApplyPolicyFailed" + expect_event_request { details.must_equal "Live" } + end end end end