Skip to content

Commit fe86746

Browse files
committed
🌱 Clean up resources on upgrade without k8s change
Clean up resources for upgrades that do not trigger the hook server because they don't upgrade the Kubernetes version Signed-off-by: janiskemper <[email protected]>
1 parent 31b3490 commit fe86746

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

internal/controller/clusteraddon_controller.go

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,6 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
212212
return reconcile.Result{}, fmt.Errorf("failed to get cluster addon config path: %w", err)
213213
}
214214

215-
logger := log.FromContext(ctx)
216-
217215
// Check whether current Helm chart has been applied in the workload cluster. If not, then we need to apply the helm chart (again).
218216
// the spec.clusterStack is only set after a Helm chart from a ClusterStack has been applied successfully.
219217
// If it is not set, the Helm chart has never been applied.
@@ -372,6 +370,28 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
372370
}
373371
}
374372

373+
// create the list of old release objects
374+
oldClusterStackObjectList, err := r.getOldReleaseObjects(ctx, in, clusterAddonConfig, oldRelease)
375+
if err != nil {
376+
return reconcile.Result{}, fmt.Errorf("failed to get old cluster stack object list from helm charts: %w", err)
377+
}
378+
379+
newClusterStackObjectList, err := r.getNewReleaseObjects(ctx, in, clusterAddonConfig)
380+
if err != nil {
381+
return reconcile.Result{}, fmt.Errorf("failed to get new cluster stack object list from helm charts: %w", err)
382+
}
383+
384+
shouldRequeue, err := r.cleanUpResources(ctx, in, oldClusterStackObjectList, newClusterStackObjectList)
385+
if err != nil {
386+
return reconcile.Result{}, fmt.Errorf("failed to clean up resources: %w", err)
387+
}
388+
if shouldRequeue {
389+
return reconcile.Result{RequeueAfter: 20 * time.Second}, nil
390+
}
391+
392+
// set upgrade annotation once done
393+
clusterAddon.SetStageAnnotations(csov1alpha1.StageUpgraded)
394+
375395
// Helm chart has been applied successfully
376396
conditions.MarkTrue(clusterAddon, csov1alpha1.HelmChartAppliedCondition)
377397

@@ -404,29 +424,24 @@ func (r *ClusterAddonReconciler) Reconcile(ctx context.Context, req reconcile.Re
404424
}
405425
}
406426

407-
logger.Info("the hook is here", "hook", in.clusterAddon.Spec.Hook)
408-
409427
if clusterAddon.Spec.Hook == "AfterControlPlaneInitialized" || clusterAddon.Spec.Hook == "BeforeClusterUpgrade" {
410428
if clusterAddon.Spec.Hook == "BeforeClusterUpgrade" {
411429
// create the list of old release objects
412430
oldClusterStackObjectList, err := r.getOldReleaseObjects(ctx, in, clusterAddonConfig, oldRelease)
413431
if err != nil {
414432
return reconcile.Result{}, fmt.Errorf("failed to get old cluster stack object list from helm charts: %w", err)
415433
}
416-
logger.Info("here is the old cluster stack object list", "list", oldClusterStackObjectList)
417434

418435
newClusterStackObjectList, err := r.getNewReleaseObjects(ctx, in, clusterAddonConfig)
419436
if err != nil {
420437
return reconcile.Result{}, fmt.Errorf("failed to get new cluster stack object list from helm charts: %w", err)
421438
}
422439

423-
logger.Info("here in the clean up begins", "currentList", newClusterStackObjectList)
424-
shouldReque, err := r.cleanUpResources(ctx, in, oldClusterStackObjectList, newClusterStackObjectList)
425-
logger.Info("here in the clean up done", "currentList", newClusterStackObjectList, "reque", shouldReque)
440+
shouldRequeue, err := r.cleanUpResources(ctx, in, oldClusterStackObjectList, newClusterStackObjectList)
426441
if err != nil {
427442
return reconcile.Result{}, fmt.Errorf("failed to clean up resources: %w", err)
428443
}
429-
if shouldReque {
444+
if shouldRequeue {
430445
return reconcile.Result{RequeueAfter: 20 * time.Second}, nil
431446
}
432447

0 commit comments

Comments
 (0)