feat(cmd): show progress before waiting for resources

Signed-off-by: Karthik Chowdary <21139050+Karthik-Chowdary@users.noreply.github.com>
pull/32549/head
Karthik Chowdary 4 weeks ago
parent d62bee21c2
commit a2504521ab

@ -38,6 +38,7 @@ import (
"helm.sh/helm/v4/pkg/cmd/require"
"helm.sh/helm/v4/pkg/downloader"
"helm.sh/helm/v4/pkg/getter"
"helm.sh/helm/v4/pkg/kube"
release "helm.sh/helm/v4/pkg/release/v1"
)
@ -157,6 +158,8 @@ func newInstallCmd(cfg *action.Configuration, out io.Writer) *cobra.Command {
}
client.DryRunStrategy = dryRunStrategy
printWaitMessage(out, outfmt, client.WaitStrategy, client.Timeout)
rel, err := runInstall(args, client, valueOpts, out)
if err != nil {
return fmt.Errorf("INSTALLATION FAILED: %w", err)
@ -370,6 +373,13 @@ func checkIfInstallable(ch chart.Accessor) error {
return fmt.Errorf("%s charts are not installable", meta["Type"])
}
func printWaitMessage(out io.Writer, outfmt output.Format, strategy kube.WaitStrategy, timeout time.Duration) {
if outfmt != output.Table || strategy == kube.HookOnlyStrategy {
return
}
fmt.Fprintf(out, "Waiting for resources to become ready (timeout: %s)\n", timeout)
}
// Provide dynamic auto-completion for the install and template commands
func compInstall(args []string, toComplete string, client *action.Install) ([]string, cobra.ShellCompDirective) {
requiredArgs := 1

@ -1,3 +1,4 @@
Waiting for resources to become ready (timeout: 5m0s)
NAME: apollo
LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default

@ -1,3 +1,4 @@
Waiting for resources to become ready (timeout: 5m0s)
NAME: apollo
LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default

@ -1,3 +1,4 @@
Waiting for resources to become ready (timeout: 5m0s)
Release "crazy-bunny" has been upgraded. Happy Helming!
NAME: crazy-bunny
LAST DEPLOYED: Fri Sep 2 22:04:05 1977

@ -1,3 +1,4 @@
Waiting for resources to become ready (timeout: 5m0s)
Release "crazy-bunny" has been upgraded. Happy Helming!
NAME: crazy-bunny
LAST DEPLOYED: Fri Sep 2 22:04:05 1977

@ -163,6 +163,8 @@ func newUpgradeCmd(cfg *action.Configuration, out io.Writer) *cobra.Command {
instClient.Replace = true
}
printWaitMessage(out, outfmt, instClient.WaitStrategy, instClient.Timeout)
rel, err := runInstall(args, instClient, valueOpts, out)
if err != nil {
return err
@ -257,6 +259,8 @@ func newUpgradeCmd(cfg *action.Configuration, out io.Writer) *cobra.Command {
cancel()
}()
printWaitMessage(out, outfmt, client.WaitStrategy, client.Timeout)
rel, err := client.RunWithContext(ctx, args[0], ch, vals)
if err != nil {
return fmt.Errorf("UPGRADE FAILED: %w", err)

Loading…
Cancel
Save