optimize: used a unified context in cluster_controller reconcile

Signed-off-by: xovoxy <xilovele@gmail.com>
This commit is contained in:
xovoxy 2024-07-31 14:48:15 +08:00
parent 145a67e873
commit f30e450a36
1 changed files with 19 additions and 19 deletions

View File

@ -222,7 +222,7 @@ func (c *Controller) SetupWithManager(mgr controllerruntime.Manager) error {
func (c *Controller) syncCluster(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) { func (c *Controller) syncCluster(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) {
// create execution space // create execution space
err := c.createExecutionSpace(cluster) err := c.createExecutionSpace(ctx, cluster)
if err != nil { if err != nil {
c.EventRecorder.Event(cluster, corev1.EventTypeWarning, events.EventReasonCreateExecutionSpaceFailed, err.Error()) c.EventRecorder.Event(cluster, corev1.EventTypeWarning, events.EventReasonCreateExecutionSpaceFailed, err.Error())
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
@ -235,7 +235,7 @@ func (c *Controller) syncCluster(ctx context.Context, cluster *clusterv1alpha1.C
} }
// ensure finalizer // ensure finalizer
return c.ensureFinalizer(cluster) return c.ensureFinalizer(ctx, cluster)
} }
func (c *Controller) removeCluster(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) { func (c *Controller) removeCluster(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) {
@ -245,7 +245,7 @@ func (c *Controller) removeCluster(ctx context.Context, cluster *clusterv1alpha1
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
} }
if err := c.removeExecutionSpace(cluster); err != nil { if err := c.removeExecutionSpace(ctx, cluster); err != nil {
klog.Errorf("Failed to remove execution space %s: %v", cluster.Name, err) klog.Errorf("Failed to remove execution space %s: %v", cluster.Name, err)
c.EventRecorder.Event(cluster, corev1.EventTypeWarning, events.EventReasonRemoveExecutionSpaceFailed, err.Error()) c.EventRecorder.Event(cluster, corev1.EventTypeWarning, events.EventReasonRemoveExecutionSpaceFailed, err.Error())
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
@ -253,7 +253,7 @@ func (c *Controller) removeCluster(ctx context.Context, cluster *clusterv1alpha1
msg := fmt.Sprintf("Removed execution space for cluster(%s).", cluster.Name) msg := fmt.Sprintf("Removed execution space for cluster(%s).", cluster.Name)
c.EventRecorder.Event(cluster, corev1.EventTypeNormal, events.EventReasonRemoveExecutionSpaceSucceed, msg) c.EventRecorder.Event(cluster, corev1.EventTypeNormal, events.EventReasonRemoveExecutionSpaceSucceed, msg)
if exist, err := c.ExecutionSpaceExistForCluster(cluster.Name); err != nil { if exist, err := c.ExecutionSpaceExistForCluster(ctx, cluster.Name); err != nil {
klog.Errorf("Failed to check weather the execution space exist in the given member cluster or not, error is: %v", err) klog.Errorf("Failed to check weather the execution space exist in the given member cluster or not, error is: %v", err)
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
} else if exist { } else if exist {
@ -275,7 +275,7 @@ func (c *Controller) removeCluster(ctx context.Context, cluster *clusterv1alpha1
} }
} }
return c.removeFinalizer(cluster) return c.removeFinalizer(ctx, cluster)
} }
func (c *Controller) isTargetClusterRemoved(ctx context.Context, cluster *clusterv1alpha1.Cluster) (bool, error) { func (c *Controller) isTargetClusterRemoved(ctx context.Context, cluster *clusterv1alpha1.Cluster) (bool, error) {
@ -305,7 +305,7 @@ func (c *Controller) isTargetClusterRemoved(ctx context.Context, cluster *cluste
} }
// removeExecutionSpace deletes the given execution space // removeExecutionSpace deletes the given execution space
func (c *Controller) removeExecutionSpace(cluster *clusterv1alpha1.Cluster) error { func (c *Controller) removeExecutionSpace(ctx context.Context, cluster *clusterv1alpha1.Cluster) error {
executionSpaceName := names.GenerateExecutionSpaceName(cluster.Name) executionSpaceName := names.GenerateExecutionSpaceName(cluster.Name)
executionSpaceObj := &corev1.Namespace{ executionSpaceObj := &corev1.Namespace{
@ -315,12 +315,12 @@ func (c *Controller) removeExecutionSpace(cluster *clusterv1alpha1.Cluster) erro
} }
// delete finalizers of work objects when the sync-mode is pull and cluster status is notready or unknown // delete finalizers of work objects when the sync-mode is pull and cluster status is notready or unknown
if cluster.Spec.SyncMode == clusterv1alpha1.Pull && !util.IsClusterReady(&cluster.Status) { if cluster.Spec.SyncMode == clusterv1alpha1.Pull && !util.IsClusterReady(&cluster.Status) {
if err := c.deleteFinalizerForWorks(executionSpaceObj); err != nil { if err := c.deleteFinalizerForWorks(ctx, executionSpaceObj); err != nil {
klog.Errorf("Error while deleting finalizers of work which in %s: %s", executionSpaceName, err) klog.Errorf("Error while deleting finalizers of work which in %s: %s", executionSpaceName, err)
return err return err
} }
} }
if err := c.Client.Delete(context.TODO(), executionSpaceObj); err != nil && !apierrors.IsNotFound(err) { if err := c.Client.Delete(ctx, executionSpaceObj); err != nil && !apierrors.IsNotFound(err) {
klog.Errorf("Error while deleting namespace %s: %s", executionSpaceName, err) klog.Errorf("Error while deleting namespace %s: %s", executionSpaceName, err)
return err return err
} }
@ -329,11 +329,11 @@ func (c *Controller) removeExecutionSpace(cluster *clusterv1alpha1.Cluster) erro
} }
// ExecutionSpaceExistForCluster determine whether the execution space exists in the cluster // ExecutionSpaceExistForCluster determine whether the execution space exists in the cluster
func (c *Controller) ExecutionSpaceExistForCluster(clusterName string) (bool, error) { func (c *Controller) ExecutionSpaceExistForCluster(ctx context.Context, clusterName string) (bool, error) {
executionSpaceName := names.GenerateExecutionSpaceName(clusterName) executionSpaceName := names.GenerateExecutionSpaceName(clusterName)
executionSpaceObj := &corev1.Namespace{} executionSpaceObj := &corev1.Namespace{}
err := c.Client.Get(context.TODO(), types.NamespacedName{Name: executionSpaceName}, executionSpaceObj) err := c.Client.Get(ctx, types.NamespacedName{Name: executionSpaceName}, executionSpaceObj)
if apierrors.IsNotFound(err) { if apierrors.IsNotFound(err) {
klog.V(2).Infof("Execution space(%s) no longer exists", executionSpaceName) klog.V(2).Infof("Execution space(%s) no longer exists", executionSpaceName)
return false, nil return false, nil
@ -346,9 +346,9 @@ func (c *Controller) ExecutionSpaceExistForCluster(clusterName string) (bool, er
} }
// Delete finalizers of work objects // Delete finalizers of work objects
func (c *Controller) deleteFinalizerForWorks(workSpace *corev1.Namespace) error { func (c *Controller) deleteFinalizerForWorks(ctx context.Context, workSpace *corev1.Namespace) error {
workList := &workv1alpha1.WorkList{} workList := &workv1alpha1.WorkList{}
err := c.Client.List(context.TODO(), workList, &client.ListOptions{ err := c.Client.List(ctx, workList, &client.ListOptions{
Namespace: workSpace.Name, Namespace: workSpace.Name,
}) })
if err != nil { if err != nil {
@ -378,13 +378,13 @@ func (c *Controller) removeWorkFinalizer(work *workv1alpha1.Work) error {
return err return err
} }
func (c *Controller) removeFinalizer(cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) { func (c *Controller) removeFinalizer(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) {
if !controllerutil.ContainsFinalizer(cluster, util.ClusterControllerFinalizer) { if !controllerutil.ContainsFinalizer(cluster, util.ClusterControllerFinalizer) {
return controllerruntime.Result{}, nil return controllerruntime.Result{}, nil
} }
controllerutil.RemoveFinalizer(cluster, util.ClusterControllerFinalizer) controllerutil.RemoveFinalizer(cluster, util.ClusterControllerFinalizer)
err := c.Client.Update(context.TODO(), cluster) err := c.Client.Update(ctx, cluster)
if err != nil { if err != nil {
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
} }
@ -392,13 +392,13 @@ func (c *Controller) removeFinalizer(cluster *clusterv1alpha1.Cluster) (controll
return controllerruntime.Result{}, nil return controllerruntime.Result{}, nil
} }
func (c *Controller) ensureFinalizer(cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) { func (c *Controller) ensureFinalizer(ctx context.Context, cluster *clusterv1alpha1.Cluster) (controllerruntime.Result, error) {
if controllerutil.ContainsFinalizer(cluster, util.ClusterControllerFinalizer) { if controllerutil.ContainsFinalizer(cluster, util.ClusterControllerFinalizer) {
return controllerruntime.Result{}, nil return controllerruntime.Result{}, nil
} }
controllerutil.AddFinalizer(cluster, util.ClusterControllerFinalizer) controllerutil.AddFinalizer(cluster, util.ClusterControllerFinalizer)
err := c.Client.Update(context.TODO(), cluster) err := c.Client.Update(ctx, cluster)
if err != nil { if err != nil {
return controllerruntime.Result{}, err return controllerruntime.Result{}, err
} }
@ -407,12 +407,12 @@ func (c *Controller) ensureFinalizer(cluster *clusterv1alpha1.Cluster) (controll
} }
// createExecutionSpace creates member cluster execution space when member cluster joined // createExecutionSpace creates member cluster execution space when member cluster joined
func (c *Controller) createExecutionSpace(cluster *clusterv1alpha1.Cluster) error { func (c *Controller) createExecutionSpace(ctx context.Context, cluster *clusterv1alpha1.Cluster) error {
executionSpaceName := names.GenerateExecutionSpaceName(cluster.Name) executionSpaceName := names.GenerateExecutionSpaceName(cluster.Name)
// create member cluster execution space when member cluster joined // create member cluster execution space when member cluster joined
executionSpaceObj := &corev1.Namespace{} executionSpaceObj := &corev1.Namespace{}
err := c.Client.Get(context.TODO(), types.NamespacedName{Name: executionSpaceName}, executionSpaceObj) err := c.Client.Get(ctx, types.NamespacedName{Name: executionSpaceName}, executionSpaceObj)
if err != nil { if err != nil {
if !apierrors.IsNotFound(err) { if !apierrors.IsNotFound(err) {
klog.Errorf("Failed to get namespace(%s): %v", executionSpaceName, err) klog.Errorf("Failed to get namespace(%s): %v", executionSpaceName, err)
@ -428,7 +428,7 @@ func (c *Controller) createExecutionSpace(cluster *clusterv1alpha1.Cluster) erro
}, },
}, },
} }
err = c.Client.Create(context.TODO(), executionSpace) err = c.Client.Create(ctx, executionSpace)
if err != nil { if err != nil {
klog.Errorf("Failed to create execution space for cluster(%s): %v", cluster.Name, err) klog.Errorf("Failed to create execution space for cluster(%s): %v", cluster.Name, err)
return err return err