feat(clustertool): retry helm-install after etcs timeout

This commit is contained in:
Kjeld Schouten
2024-11-12 14:54:57 +01:00
parent 8dc3b8e67d
commit 0610afa19b
+15 -1
View File
@@ -239,9 +239,23 @@ func HelmInstall(repoURL string, chartName string, releaseName string, namespace
}
// Install the chart with merged values
log.Debug().Msg("Installing chart...")
release, err := client.Run(chart, vals)
if err != nil {
return fmt.Errorf("failed to install chart: %w", err)
log.Debug().Msg("Chart install returned an error")
if strings.Contains(err.Error(), "timed out") {
// Wait for 15 seconds and try again
log.Warn().Msg("Chart install recieved a timeout, retrying in 15 seconds...")
time.Sleep(15 * time.Second)
release, err = client.Run(chart, vals)
if err != nil && strings.Contains(err.Error(), "timed out") {
return fmt.Errorf("failed to install chart after retry, with another timeout: %w", err)
} else if err != nil {
return fmt.Errorf("failed to install chart after retry: %w", err)
}
} else {
return fmt.Errorf("failed to install chart: %w", err)
}
}
if wait {