fix: retry Helm downloads and extend install timeout - #115
Open
bugkeep wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
App Store installs can fail on transient Helm repository or OCI registry errors because chart metadata and archives are downloaded once without retry or reuse. Opening the install dialog and then submitting the install can also download the same large artifact twice.
The install path also uses a fixed 10-minute readiness timeout while an active task is considered abandoned after 11 minutes. A healthy large installation can therefore be marked stale while Helm is still running, allowing another request to install the same release. When Helm eventually fails, the release and partially created resources are not cleaned up automatically.
What changed
helmInstallTimeout, defaulting to 20 minutesCompatibility and failure behavior
The configuration is backward compatible: an omitted value uses the new 20-minute default, while an invalid or non-positive duration is rejected before installation. Retries are finite and only cover transient failures. Authentication errors, missing charts, invalid values, and other permanent failures return immediately.
The cache is process-local, time-limited, and memory-bounded. No API payload, database schema, workflow, application-specific values, or image source is changed.
Validation
go test ./...go vet ./...go build ./...deployed, exposed its endpoint, and uninstalled cleanly