Skip to content
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
41df9e4
[Multi_K8s-Plugin] Prune orphaned resources on rollback
mohammedfirdouss May 7, 2026
ce00220
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 9, 2026
5e579da
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 17, 2026
2985a48
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 19, 2026
335f07d
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 22, 2026
9d484b0
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 24, 2026
af5e52a
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 24, 2026
949a564
fix(kubernetes_multicluster): use live resources for rollback pruning
mohammedfirdouss May 24, 2026
249bba0
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 25, 2026
b482407
fix(kubernetes_multicluster): fix gofmt formatting in misc_test.go
mohammedfirdouss May 26, 2026
762028b
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 26, 2026
b1f3909
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 26, 2026
63a833f
fix(kubernetes_multicluster): log pruning info when no live resources…
mohammedfirdouss May 26, 2026
b4b3f95
fix(kubernetes_multicluster): log pruning info when no live resources…
mohammedfirdouss May 26, 2026
29bbcb7
Merge branch 'master' into feat/multicluster-rollback-pruning
mohammedfirdouss May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,29 @@ func (p *Plugin) rollback(ctx context.Context, input *sdk.ExecuteStageInput[kube
failed = true
}

// TODO: prune resources which don't exist in the running manifests but exist in the target manifests.
// This occurs when the user adds a new resource and the deployment pipeline fails.
lp.Info("Start finding and pruning resources that no longer exist in the running manifests")
namespacedLiveResources, clusterScopedLiveResources, err := provider.GetLiveResources(ctx, kubectl, deployTargetConfig.KubeConfigPath, input.Request.Deployment.ApplicationID)
switch {
case err != nil:
lp.Errorf("Failed while getting live resources (%v)", err)
failed = true
case len(namespacedLiveResources)+len(clusterScopedLiveResources) > 0:
removeKeys := provider.FindRemoveResources(manifests, namespacedLiveResources, clusterScopedLiveResources)
if len(removeKeys) == 0 {
lp.Info("There are no live resources to prune")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's good to log this info even when len(namespacedLiveResources)+len(clusterScopedLiveResources) == 0.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah exactly.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mohammedfirdouss This does not seem to be resolved. Please check?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lint check failed for now...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will add the log too

} else {
lp.Infof("Start pruning %d resources", len(removeKeys))
deletedCount, err := deleteResources(ctx, lp, applier, removeKeys)
if err != nil {
lp.Errorf("Failed to delete some resources, %d/%d resources were deleted (%v)", deletedCount, len(removeKeys), err)
failed = true
} else {
lp.Successf("Successfully deleted %d resources", deletedCount)
}
}
default:
lp.Info("There are no live resources to prune")
}

if failed {
return sdk.StageStatusFailure
Expand Down
Loading