From e7b59255ff18804d36d19ce4329efe58dc879e07 Mon Sep 17 00:00:00 2001 From: Vladimir Videlov Date: Thu, 23 Jan 2025 13:40:51 +0200 Subject: [PATCH] One more test --- pkg/lib/sidecars/proxy.go | 4 ++-- pkg/lib/sidecars/proxy_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/pkg/lib/sidecars/proxy.go b/pkg/lib/sidecars/proxy.go index 1225e4f19..d63bd8f77 100644 --- a/pkg/lib/sidecars/proxy.go +++ b/pkg/lib/sidecars/proxy.go @@ -66,13 +66,13 @@ func (p *ProxyRestart) RestartProxies(ctx context.Context, expectedImage predica func (p *ProxyRestart) RestartWithPredicates(ctx context.Context, preds []predicates.SidecarProxyPredicate, limits *pods.PodsRestartLimits, failOnError bool) ([]restart.RestartWarning, bool, error) { podsToRestart, err := p.podsLister.GetPodsToRestart(ctx, preds, limits) if err != nil { - p.logger.Error(err, "Getting Kyma pods to restart failed") + p.logger.Error(err, "Getting pods to restart failed") return nil, false, err } warnings, err := restart.Restart(ctx, p.k8sClient, podsToRestart, p.logger, failOnError) if err != nil { - p.logger.Error(err, "Restarting Kyma pods failed") + p.logger.Error(err, "Restarting pods failed") return nil, false, err } diff --git a/pkg/lib/sidecars/proxy_test.go b/pkg/lib/sidecars/proxy_test.go index 2e880617a..7d7a288af 100644 --- a/pkg/lib/sidecars/proxy_test.go +++ b/pkg/lib/sidecars/proxy_test.go @@ -15,6 +15,7 @@ import ( "github.com/kyma-project/istio/operator/pkg/labels" "github.com/kyma-project/istio/operator/pkg/lib/sidecars" "github.com/kyma-project/istio/operator/pkg/lib/sidecars/pods" + "github.com/kyma-project/istio/operator/pkg/lib/sidecars/restart" "github.com/kyma-project/istio/operator/pkg/lib/sidecars/test/helpers" . "github.com/onsi/ginkgo/v2" ginkgotypes "github.com/onsi/ginkgo/v2/types" @@ -346,6 +347,31 @@ var _ = Describe("RestartWithPredicates", func() { Expect(err.Error()).To(Equal("running pod restart action failed: intentionally failing client on client.Patch")) }) + + It("should not return error if restarting pods fails but failOnError is false", func() { + // given + pod := getPod("test-pod", "test-namespace", "podOwner", "ReplicaSet") + rsOwner := getReplicaSet("podOwner", "test-namespace", "rsOwner", "ReplicaSet") + rsOwnerRS := getReplicaSet("rsOwner", "test-namespace", "base", "ReplicaSet") + c := fakeClient(pod, rsOwner, rsOwnerRS) + + preds := []predicates.SidecarProxyPredicate{ + predicates.NewImageResourcesPredicate(predicates.SidecarImage{Repository: "istio", Tag: "1.1.0"}, helpers.DefaultSidecarResources), + } + limits := pods.NewPodsRestartLimits(2, 2) + + // when + failClient := &shouldFailClient{c, false, true} + + podsLister := pods.NewPods(failClient, &logger) + proxyRestarter := sidecars.NewProxyRestarter(failClient, podsLister, &logger) + warnings, hasMorePods, err := proxyRestarter.RestartWithPredicates(ctx, preds, limits, false) + + // then + Expect(err).ToNot(HaveOccurred()) + Expect(warnings).To(Equal([]restart.RestartWarning{})) + Expect(hasMorePods).To(BeFalse()) + }) }) func getPod(name, namespace, ownerName, ownerKind string) *v1.Pod {