Skip to content

Commit

Permalink
Remove enovy-proxy finalizer from load balancers (#46)
Browse files Browse the repository at this point in the history
Signed-off-by: Waleed Malik <[email protected]>
  • Loading branch information
ahmedwaleedmalik authored Aug 12, 2024
1 parent 445edcb commit 992788c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion internal/controllers/kubelb/envoy_cp_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ func (r *EnvoyCPReconciler) ListLoadBalancersAndRoutes(ctx context.Context, req

lbs := make([]kubelbv1alpha1.LoadBalancer, 0, len(loadBalancers.Items))
for _, lb := range loadBalancers.Items {
if lb.DeletionTimestamp.IsZero() && controllerutil.ContainsFinalizer(&lb, envoyProxyCleanupFinalizer) {
if lb.DeletionTimestamp.IsZero() && controllerutil.ContainsFinalizer(&lb, CleanupFinalizer) {
lbs = append(lbs, lb)
}
}
Expand Down
19 changes: 12 additions & 7 deletions internal/controllers/kubelb/loadbalancer_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,9 @@ func (r *LoadBalancerReconciler) Reconcile(ctx context.Context, req ctrl.Request
}
// Resource is marked for deletion.
if loadBalancer.DeletionTimestamp != nil {
if controllerutil.ContainsFinalizer(&loadBalancer, envoyProxyCleanupFinalizer) {
return reconcile.Result{}, r.handleEnvoyProxyCleanup(ctx, loadBalancer, resourceNamespace)
if controllerutil.ContainsFinalizer(&loadBalancer, envoyProxyCleanupFinalizer) ||
controllerutil.ContainsFinalizer(&loadBalancer, CleanupFinalizer) {
return reconcile.Result{}, r.cleanup(ctx, loadBalancer, resourceNamespace)
}
// Finalizer doesn't exist so clean up is already done
return reconcile.Result{}, nil
Expand All @@ -158,9 +159,9 @@ func (r *LoadBalancerReconciler) Reconcile(ctx context.Context, req ctrl.Request
}

// If the resource is disabled, we need to clean up the resources
if controllerutil.ContainsFinalizer(&loadBalancer, envoyProxyCleanupFinalizer) && disabled {
if controllerutil.ContainsFinalizer(&loadBalancer, CleanupFinalizer) && disabled {
log.V(3).Info("Removing load balancer as load balancing is disabled")
return reconcile.Result{}, r.handleEnvoyProxyCleanup(ctx, loadBalancer, resourceNamespace)
return reconcile.Result{}, r.cleanup(ctx, loadBalancer, resourceNamespace)
}

if !shouldReconcile {
Expand All @@ -177,12 +178,15 @@ func (r *LoadBalancerReconciler) Reconcile(ctx context.Context, req ctrl.Request
annotations := GetAnnotations(tenant, config)

// Add finalizer if it doesn't exist
if !controllerutil.ContainsFinalizer(&loadBalancer, envoyProxyCleanupFinalizer) {
if ok := controllerutil.AddFinalizer(&loadBalancer, envoyProxyCleanupFinalizer); !ok {
if !controllerutil.ContainsFinalizer(&loadBalancer, CleanupFinalizer) {
if ok := controllerutil.AddFinalizer(&loadBalancer, CleanupFinalizer); !ok {
log.Error(nil, "Failed to add finalizer for the LoadBalancer")
return ctrl.Result{Requeue: true}, nil
}

// Remove old finalizer since it is not used anymore.
controllerutil.RemoveFinalizer(&loadBalancer, envoyProxyCleanupFinalizer)

if err := r.Update(ctx, &loadBalancer); err != nil {
return reconcile.Result{}, fmt.Errorf("failed to add finalizer: %w", err)
}
Expand Down Expand Up @@ -358,7 +362,7 @@ func (r *LoadBalancerReconciler) reconcileService(ctx context.Context, loadBalan
})
}

func (r *LoadBalancerReconciler) handleEnvoyProxyCleanup(ctx context.Context, lb kubelbv1alpha1.LoadBalancer, resourceNamespace string) error {
func (r *LoadBalancerReconciler) cleanup(ctx context.Context, lb kubelbv1alpha1.LoadBalancer, resourceNamespace string) error {
log := ctrl.LoggerFrom(ctx).WithValues("cleanup", "LoadBalancer")
log.V(2).Info("Cleaning up LoadBalancer", "name", lb.Name, "namespace", lb.Namespace)

Expand Down Expand Up @@ -387,6 +391,7 @@ func (r *LoadBalancerReconciler) handleEnvoyProxyCleanup(ctx context.Context, lb
}

// Remove finalizer
controllerutil.RemoveFinalizer(&lb, CleanupFinalizer)
controllerutil.RemoveFinalizer(&lb, envoyProxyCleanupFinalizer)

// Update instance
Expand Down

0 comments on commit 992788c

Please sign in to comment.