From 2664fcb4c4a130d5553d29a879746140cc23d81e Mon Sep 17 00:00:00 2001 From: Luke Reed Date: Wed, 2 Mar 2022 14:54:39 -0500 Subject: [PATCH] [Go] fix file-based values declarations (#534) --- pkg/course/course.go | 5 +++-- pkg/reckoner/plot.go | 12 ++++++++---- pkg/reckoner/plot_test.go | 13 ++++++++----- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/pkg/course/course.go b/pkg/course/course.go index 35679f3c..510b6be5 100644 --- a/pkg/course/course.go +++ b/pkg/course/course.go @@ -260,11 +260,12 @@ func convertV1toV2(fileName string) (*FileV2, error) { Name: release.Name, Namespace: release.Namespace, NamespaceMgmt: release.NamespaceMgmt, - Repository: repositoryName, Chart: release.Chart, + Hooks: release.Hooks, Version: release.Version, + Repository: repositoryName, + Files: release.Files, Values: release.Values, - Hooks: release.Hooks, } } return newFile, nil diff --git a/pkg/reckoner/plot.go b/pkg/reckoner/plot.go index 71641e50..7feb3bb0 100644 --- a/pkg/reckoner/plot.go +++ b/pkg/reckoner/plot.go @@ -57,7 +57,7 @@ func (c *Client) Plot() error { return err } - args, tmpFile, err := buildHelmArgs("upgrade", *release) + args, tmpFile, err := buildHelmArgs("upgrade", c.BaseDirectory, *release) if err != nil { color.Red(err.Error()) continue @@ -141,7 +141,7 @@ func (c Client) TemplateRelease(releaseName string) (string, error) { releaseIndex := funk.IndexOf(c.CourseFile.Releases, func(release *course.Release) bool { return release.Name == releaseName }) - args, tmpFile, err := buildHelmArgs("template", *c.CourseFile.Releases[releaseIndex]) + args, tmpFile, err := buildHelmArgs("template", c.BaseDirectory, *c.CourseFile.Releases[releaseIndex]) if err != nil { return "", err } @@ -159,7 +159,7 @@ func (c Client) TemplateRelease(releaseName string) (string, error) { // takes a command either "upgrade" or "template" // also returns the temp file of the values file to close // NOTE: The order is really important here -func buildHelmArgs(command string, release course.Release) ([]string, *os.File, error) { +func buildHelmArgs(command, baseDir string, release course.Release) ([]string, *os.File, error) { var valuesFile *os.File var args []string switch command { @@ -191,7 +191,11 @@ func buildHelmArgs(command string, release course.Release) ([]string, *os.File, if len(release.Files) > 0 { for _, file := range release.Files { - args = append(args, fmt.Sprintf("--values=%s", file)) + if file[0] == '/' { + args = append(args, fmt.Sprintf("--values=%s", file)) + } else { + args = append(args, fmt.Sprintf("--values=%s/%s", baseDir, file)) + } } } diff --git a/pkg/reckoner/plot_test.go b/pkg/reckoner/plot_test.go index 97f30598..0eede4c2 100644 --- a/pkg/reckoner/plot_test.go +++ b/pkg/reckoner/plot_test.go @@ -28,12 +28,14 @@ func Test_buildHelmArgs(t *testing.T) { } tests := []struct { name string + baseDir string args args want []string wantErr bool }{ { - name: "basic template", + name: "basic template", + baseDir: "path/to/chart", args: args{ command: "template", release: course.Release{ @@ -51,14 +53,15 @@ func Test_buildHelmArgs(t *testing.T) { "template", "basic-release", "helmrepo/helmchart", - "--values=a-values-file.yaml", + "--values=path/to/chart/a-values-file.yaml", "--namespace=basic-ns", "--version=v0.0.0", }, wantErr: false, }, { - name: "basic upgrade", + name: "basic upgrade", + baseDir: "path/to/chart", args: args{ command: "upgrade", release: course.Release{ @@ -77,7 +80,7 @@ func Test_buildHelmArgs(t *testing.T) { "--install", "basic-release", "helmrepo/helmchart", - "--values=a-values-file.yaml", + "--values=path/to/chart/a-values-file.yaml", "--namespace=basic-ns", "--version=v0.0.0", }, @@ -86,7 +89,7 @@ func Test_buildHelmArgs(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, _, err := buildHelmArgs(tt.args.command, tt.args.release) + got, _, err := buildHelmArgs(tt.args.command, tt.baseDir, tt.args.release) if tt.wantErr { assert.Error(t, err) } else {