From fafea7378054091bade344c6032e2e45d9c14355 Mon Sep 17 00:00:00 2001 From: "Eric.Runquist" Date: Thu, 16 Feb 2017 14:26:20 -0600 Subject: [PATCH] Added support for multiple values files. --- build.sh | 8 ++++++++ main.go | 8 ++++---- plugin.go | 12 +++++++----- 3 files changed, 19 insertions(+), 9 deletions(-) create mode 100755 build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..661d40b --- /dev/null +++ b/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +export GOOS=linux +export GOARCH=386 +go build +docker build -t drone-helm . diff --git a/main.go b/main.go index 7ea1df5..d086da1 100644 --- a/main.go +++ b/main.go @@ -44,9 +44,9 @@ func main() { EnvVar: "PLUGIN_VALUES,VALUES", }, cli.StringFlag{ - Name: "values_file", - Usage: "Kubernetes helm release", - EnvVar: "PLUGIN_VALUES_FILE,VALUES_FILE", + Name: "values_files", + Usage: "Helm values override files", + EnvVar: "PLUGIN_VALUES_FILES,VALUES_FILES", }, cli.BoolFlag{ Name: "skip_tls_verify", @@ -91,7 +91,7 @@ func run(c *cli.Context) error { Namespace: c.String("namespace"), SkipTLSVerify: c.Bool("skip_tls_verify"), Values: c.String("values"), - ValuesFile: c.String("values_file"), + ValuesFiles: c.String("values_files"), Release: c.String("release"), Chart: c.String("chart"), Debug: c.Bool("debug"), diff --git a/plugin.go b/plugin.go index 910c80a..d58af01 100644 --- a/plugin.go +++ b/plugin.go @@ -26,7 +26,7 @@ type ( Release string `json:"release"` Chart string `json:"chart"` Values string `json:"values"` - ValuesFile string `json:"values_file"` + ValuesFiles string `json:"values_files"` Debug bool `json:"debug"` DryRun bool `json:"dry_run"` Secrets []string `json:"secrets"` @@ -63,9 +63,11 @@ func setPushEventCommand(p *Plugin) { upgrade = append(upgrade, "--set") upgrade = append(upgrade, p.Config.Values) } - if p.Config.ValuesFile != "" { - upgrade = append(upgrade, "--values") - upgrade = append(upgrade, p.Config.ValuesFile) + if p.Config.ValuesFiles != "" { + for _, valuesFile := range strings.Split(p.Config.ValuesFiles, ",") { + upgrade = append(upgrade, "--values") + upgrade = append(upgrade, valuesFile) + } } if p.Config.Namespace != "" { upgrade = append(upgrade, "--namespace") @@ -203,7 +205,7 @@ func (p *Plugin) debug() { fmt.Printf("Api server: %s \n", p.Config.APIServer) fmt.Printf("Values: %s \n", p.Config.Values) fmt.Printf("Secrets: %s \n", p.Config.Secrets) - fmt.Printf("ValuesFile: %s \n", p.Config.ValuesFile) + fmt.Printf("ValuesFiles: %s \n", p.Config.ValuesFiles) kubeconfig, err := ioutil.ReadFile(KUBECONFIG) if err == nil {