Skip to content

fix: clean up helm releases in reverse order#10014

Open
singhlovepreet9 wants to merge 1 commit intoGoogleContainerTools:mainfrom
singhlovepreet9:fix/helm-cleanup-reverse-order-9837
Open

fix: clean up helm releases in reverse order#10014
singhlovepreet9 wants to merge 1 commit intoGoogleContainerTools:mainfrom
singhlovepreet9:fix/helm-cleanup-reverse-order-9837

Conversation

@singhlovepreet9
Copy link

Summary

Fixes #9837

  • When skaffold dev is interrupted (Ctrl+C), helm releases are now cleaned up in reverse order so that dependent releases (e.g. a PostgreSQL CR) are deleted before their dependencies (e.g. the postgres-operator).
  • Previously, releases were deleted in installation order, causing the operator to be removed first while the CR still existed — leaving orphaned resources.
  • The fix reverses the iteration in Deployer.Cleanup().

Test plan

  • Added helm3 cleanup releases in reverse order test case to TestHelmCleanup that verifies delete commands are issued in reverse order (E, D, C, B, A for releases defined as A, B, C, D, E)
  • All existing TestHelmCleanup tests continue to pass
  • go test ./pkg/skaffold/deploy/helm/ -run TestHelmCleanup -v passes

When skaffold cleans up helm releases (e.g. on Ctrl+C during skaffold dev),
it now removes them in reverse order so that dependent releases are deleted
before their dependencies. Previously releases were deleted in the same
order as installation, causing failures when a CR was deleted after its
operator.

Fixes GoogleContainerTools#9837
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue where interrupting skaffold dev could leave behind orphaned Kubernetes resources due to Helm releases being cleaned up in the incorrect order. The change ensures that releases are now cleaned up in reverse order of their installation, which correctly handles dependencies and prevents resource leakage, thereby improving the robustness of the development workflow.

Highlights

  • Helm Release Cleanup Order: Modified the skaffold dev cleanup process to delete Helm releases in reverse order of their installation. This ensures that dependent releases are removed before their dependencies, preventing orphaned resources when the development process is interrupted.
  • Test Coverage: Added a new test case to TestHelmCleanup to specifically verify that Helm releases are deleted in the correct reverse order (E, D, C, B, A for releases A, B, C, D, E).

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • pkg/skaffold/deploy/helm/helm.go
    • Changed the iteration logic in the Cleanup method to process Helm releases from the last installed to the first, ensuring reverse order deletion.
  • pkg/skaffold/deploy/helm/helm_test.go
    • Added a new test case named "helm3 cleanup releases in reverse order" to validate the functionality of deleting Helm releases in reverse order.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request modifies the Helm deployer's cleanup logic to iterate through releases in reverse order. This change ensures that dependencies are cleaned up after the resources that depend on them, which fixes an issue where interrupting skaffold dev could leave orphaned resources. A new test case has been added to TestHelmCleanup to verify that releases are now deleted in the reverse of their installation order. The implementation is correct and the added test validates the new behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Releases in the Helm deployer should be cleaned up in reverse order

1 participant