232bb5eb96
These comments were a reasonable attempt at ensuring the documentation matched reality, but the checkbox in the pull request template is much more likely to produce results.
86 lines
1.6 KiB
Go
86 lines
1.6 KiB
Go
package run
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// Upgrade is an execution step that calls `helm upgrade` when executed.
|
|
type Upgrade struct {
|
|
Chart string
|
|
Release string
|
|
|
|
ChartVersion string
|
|
DryRun bool
|
|
Wait bool
|
|
ReuseValues bool
|
|
Timeout string
|
|
Force bool
|
|
|
|
cmd cmd
|
|
}
|
|
|
|
// Execute executes the `helm upgrade` command.
|
|
func (u *Upgrade) Execute(_ Config) error {
|
|
return u.cmd.Run()
|
|
}
|
|
|
|
// Prepare gets the Upgrade ready to execute.
|
|
func (u *Upgrade) Prepare(cfg Config) error {
|
|
if u.Chart == "" {
|
|
return fmt.Errorf("chart is required")
|
|
}
|
|
if u.Release == "" {
|
|
return fmt.Errorf("release is required")
|
|
}
|
|
|
|
args := make([]string, 0)
|
|
|
|
if cfg.Namespace != "" {
|
|
args = append(args, "--namespace", cfg.Namespace)
|
|
}
|
|
if cfg.Debug {
|
|
args = append(args, "--debug")
|
|
}
|
|
|
|
args = append(args, "upgrade", "--install")
|
|
|
|
if u.ChartVersion != "" {
|
|
args = append(args, "--version", u.ChartVersion)
|
|
}
|
|
if u.DryRun {
|
|
args = append(args, "--dry-run")
|
|
}
|
|
if u.Wait {
|
|
args = append(args, "--wait")
|
|
}
|
|
if u.ReuseValues {
|
|
args = append(args, "--reuse-values")
|
|
}
|
|
if u.Timeout != "" {
|
|
args = append(args, "--timeout", u.Timeout)
|
|
}
|
|
if u.Force {
|
|
args = append(args, "--force")
|
|
}
|
|
if cfg.Values != "" {
|
|
args = append(args, "--set", cfg.Values)
|
|
}
|
|
if cfg.StringValues != "" {
|
|
args = append(args, "--set-string", cfg.StringValues)
|
|
}
|
|
for _, vFile := range cfg.ValuesFiles {
|
|
args = append(args, "--values", vFile)
|
|
}
|
|
|
|
args = append(args, u.Release, u.Chart)
|
|
u.cmd = command(helmBin, args...)
|
|
u.cmd.Stdout(cfg.Stdout)
|
|
u.cmd.Stderr(cfg.Stderr)
|
|
|
|
if cfg.Debug {
|
|
fmt.Fprintf(cfg.Stderr, "Generated command: '%s'\n", u.cmd.String())
|
|
}
|
|
|
|
return nil
|
|
}
|