From fb9137c8835ae76030c65d347f33b03735a7cf10 Mon Sep 17 00:00:00 2001 From: Kevin Tsai Date: Tue, 13 Jun 2017 19:23:22 +0900 Subject: [PATCH] support reuse_values --- main.go | 10 ++++++++-- plugin.go | 4 ++++ plugin_test.go | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 6df8989..e836586 100644 --- a/main.go +++ b/main.go @@ -82,8 +82,8 @@ func main() { Name: "recreate-pods", Usage: "performs pods restart for the resource if applicable", EnvVar: "PLUGIN_RECREATE_PODS,RECREATE_PODS", - }, - cli.BoolFlag{ + }, + cli.BoolFlag{ Name: "upgrade", Usage: "if set, will upgrade tiller to the latest version", EnvVar: "PLUGIN_UPGRADE,UPGRADE", @@ -93,6 +93,11 @@ func main() { Usage: "if set, it will initilises helm in the client side only", EnvVar: "PLUGIN_CLIENT_ONLY,CLIENT_ONLY", }, + cli.BoolFlag{ + Name: "reuse-values", + Usage: "when upgrading, reuse the last release's values, and merge in any new values", + EnvVar: "PLUGIN_REUSE_VALUES,REUSE_VALUES", + }, } if err := app.Run(os.Args); err != nil { logrus.Fatal(err) @@ -123,6 +128,7 @@ func run(c *cli.Context) error { RecreatePods: c.Bool("recreate-pods"), ClientOnly: c.Bool("client-only"), Upgrade: c.Bool("upgrade"), + ReuseValues: c.Bool("reuse-values"), }, } resolveSecrets(&plugin) diff --git a/plugin.go b/plugin.go index 01110e4..0755b36 100644 --- a/plugin.go +++ b/plugin.go @@ -37,6 +37,7 @@ type ( RecreatePods bool `json:"recreate_pods"` Upgrade bool `json:"upgrade"` ClientOnly bool `json:"client_only"` + ReuseValues bool `json:"reuse_values"` } // Plugin default Plugin struct { @@ -94,6 +95,9 @@ func setPushEventCommand(p *Plugin) { if p.Config.RecreatePods { upgrade = append(upgrade, "--recreate-pods") } + if p.Config.ReuseValues { + upgrade = append(upgrade, "--reuse-values") + } p.Config.HelmCommand = upgrade } diff --git a/plugin_test.go b/plugin_test.go index 434f713..fe52f4b 100644 --- a/plugin_test.go +++ b/plugin_test.go @@ -55,11 +55,12 @@ func TestGetHelmCommand(t *testing.T) { Release: "test-release", Values: "image.tag=v.0.1.0,nameOverride=my-over-app", Wait: true, + ReuseValues: true, }, } setHelmCommand(plugin) res := strings.Join(plugin.Config.HelmCommand[:], " ") - expected := "upgrade --install test-release ./chart/test --set image.tag=v.0.1.0,nameOverride=my-over-app --namespace default --dry-run --debug --wait" + expected := "upgrade --install test-release ./chart/test --set image.tag=v.0.1.0,nameOverride=my-over-app --namespace default --dry-run --debug --wait --reuse-values" if res != expected { t.Errorf("Result is %s and we expected %s", res, expected) }