From 49a37a78deeeac26c45af7a4e527e41ef4e3d963 Mon Sep 17 00:00:00 2001 From: zhzhuang-zju Date: Tue, 8 Apr 2025 11:11:21 +0800 Subject: [PATCH] fix the issue where discovery-timeout fails to work properly Signed-off-by: zhzhuang-zju --- pkg/karmadactl/addons/utils/helpers.go | 3 ++- pkg/karmadactl/cmdinit/utils/deploy.go | 3 ++- pkg/karmadactl/register/register.go | 2 +- pkg/karmadactl/util/check.go | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/karmadactl/addons/utils/helpers.go b/pkg/karmadactl/addons/utils/helpers.go index bb0a79b45..c67b84fcd 100644 --- a/pkg/karmadactl/addons/utils/helpers.go +++ b/pkg/karmadactl/addons/utils/helpers.go @@ -19,6 +19,7 @@ package utils import ( "context" "fmt" + "time" appsv1 "k8s.io/api/apps/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -35,7 +36,7 @@ var ( // This blocks until the Deployment's observed generation and ready replicas match the desired state, // ensuring it is fully rolled out. WaitForDeploymentRollout = func(c clientset.Interface, dep *appsv1.Deployment, timeoutSeconds int) error { - return cmdutil.WaitForDeploymentRollout(c, dep, timeoutSeconds) + return cmdutil.WaitForDeploymentRollout(c, dep, time.Duration(timeoutSeconds)*time.Second) } ) diff --git a/pkg/karmadactl/cmdinit/utils/deploy.go b/pkg/karmadactl/cmdinit/utils/deploy.go index 2c5194c1f..2143c98e0 100644 --- a/pkg/karmadactl/cmdinit/utils/deploy.go +++ b/pkg/karmadactl/cmdinit/utils/deploy.go @@ -18,6 +18,7 @@ package utils import ( "context" + "time" appsv1 "k8s.io/api/apps/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -32,5 +33,5 @@ func CreateDeployAndWait(kubeClientSet kubernetes.Interface, deployment *appsv1. if _, err := kubeClientSet.AppsV1().Deployments(deployment.GetNamespace()).Create(context.TODO(), deployment, metav1.CreateOptions{}); err != nil { klog.Warning(err) } - return util.WaitForDeploymentRollout(kubeClientSet, deployment, waitComponentReadyTimeout) + return util.WaitForDeploymentRollout(kubeClientSet, deployment, time.Duration(waitComponentReadyTimeout)*time.Second) } diff --git a/pkg/karmadactl/register/register.go b/pkg/karmadactl/register/register.go index 6c33ce831..b8dbfe714 100644 --- a/pkg/karmadactl/register/register.go +++ b/pkg/karmadactl/register/register.go @@ -437,7 +437,7 @@ func (o *CommandRegisterOption) EnsureNecessaryResourcesExistInMemberCluster(boo return err } - if err = cmdutil.WaitForDeploymentRollout(o.memberClusterClient, KarmadaAgentDeployment, int(o.Timeout)); err != nil { + if err = cmdutil.WaitForDeploymentRollout(o.memberClusterClient, KarmadaAgentDeployment, o.Timeout); err != nil { return err } diff --git a/pkg/karmadactl/util/check.go b/pkg/karmadactl/util/check.go index fedf901ac..8c8be3a29 100644 --- a/pkg/karmadactl/util/check.go +++ b/pkg/karmadactl/util/check.go @@ -59,10 +59,10 @@ func WaitForStatefulSetRollout(c kubernetes.Interface, sts *appsv1.StatefulSet, return nil } -// WaitForDeploymentRollout wait for Deployment reaches the ready state or timeout. -func WaitForDeploymentRollout(c kubernetes.Interface, dep *appsv1.Deployment, timeoutSeconds int) error { +// WaitForDeploymentRollout wait for Deployment reaches the ready state or timeout. +func WaitForDeploymentRollout(c kubernetes.Interface, dep *appsv1.Deployment, timeout time.Duration) error { var lastErr error - pollError := wait.PollUntilContextTimeout(context.TODO(), time.Second, time.Duration(timeoutSeconds)*time.Second, true, func(ctx context.Context) (bool, error) { + pollError := wait.PollUntilContextTimeout(context.TODO(), time.Second, timeout, true, func(ctx context.Context) (bool, error) { d, err := c.AppsV1().Deployments(dep.GetNamespace()).Get(ctx, dep.GetName(), metav1.GetOptions{}) if err != nil { lastErr = err