Skip to content

Commit d67a083

Browse files
committed
Accumulate and report errors from cleanup steps instead of silently ignoring them
1 parent 101161d commit d67a083

File tree

1 file changed

+17
-0
lines changed
  • cmd/kubectl-datadog/autoscaling/cluster/uninstall

1 file changed

+17
-0
lines changed

cmd/kubectl-datadog/autoscaling/cluster/uninstall/uninstall.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,28 +161,45 @@ func (o *options) run(cmd *cobra.Command) error {
161161
return fmt.Errorf("failed to build clients: %w", err)
162162
}
163163

164+
// Accumulate errors from cleanup steps - continue on failure to clean up as much as possible
165+
var errs []error
166+
164167
if err = deleteKarpenterNodePools(ctx, clients); err != nil {
165168
log.Printf("Warning: failed to delete NodePools: %v", err)
169+
errs = append(errs, fmt.Errorf("NodePool deletion: %w", err))
166170
}
167171

168172
if err = deleteKarpenterEC2NodeClasses(ctx, clients); err != nil {
169173
log.Printf("Warning: failed to delete EC2NodeClasses: %v", err)
174+
errs = append(errs, fmt.Errorf("EC2NodeClass deletion: %w", err))
170175
}
171176

172177
if err = waitForKarpenterNodesToTerminate(ctx, clients, clusterName); err != nil {
173178
log.Printf("Warning: failed to wait for Karpenter nodes to terminate: %v", err)
179+
errs = append(errs, fmt.Errorf("node termination wait: %w", err))
174180
}
175181

176182
if err = o.uninstallHelmChart(ctx, karpenterNamespace); err != nil {
177183
log.Printf("Warning: failed to uninstall Helm chart: %v", err)
184+
errs = append(errs, fmt.Errorf("Helm uninstall: %w", err))
178185
}
179186

180187
if err = removeAwsAuthConfigMapRole(ctx, clients, clusterName); err != nil {
181188
log.Printf("Warning: failed to remove aws-auth role: %v", err)
189+
errs = append(errs, fmt.Errorf("aws-auth role removal: %w", err))
182190
}
183191

184192
if err = deleteCloudFormationStacks(ctx, clients, clusterName); err != nil {
185193
log.Printf("Warning: failed to delete CloudFormation stacks: %v", err)
194+
errs = append(errs, fmt.Errorf("CloudFormation stack deletion: %w", err))
195+
}
196+
197+
if len(errs) > 0 {
198+
msg = "Uninstall completed with errors. Some resources may not have been cleaned up."
199+
cmd.Println("╭─" + strings.Repeat("─", len(msg)) + "─╮")
200+
cmd.Println("│ " + msg + " │")
201+
cmd.Println("╰─" + strings.Repeat("─", len(msg)) + "─╯")
202+
return fmt.Errorf("uninstall encountered %d error(s):\n%w", len(errs), errors.Join(errs...))
186203
}
187204

188205
msg = "Karpenter uninstalled from cluster " + clusterName + "."

0 commit comments

Comments
 (0)