From 0da4b21cb00f6f40455c96a1449c1c74e420a74b Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Sun, 10 Sep 2023 19:27:13 +0300 Subject: [PATCH] bundle: Fix values merge with module defaults Signed-off-by: Stefan Prodan --- cmd/timoni/build_test.go | 1 + cmd/timoni/testdata/module/templates/config.cue | 3 +++ cmd/timoni/testdata/module/values.cue | 2 +- internal/engine/module_builder.go | 12 +++++------- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cmd/timoni/build_test.go b/cmd/timoni/build_test.go index 25746a85..ba432f04 100644 --- a/cmd/timoni/build_test.go +++ b/cmd/timoni/build_test.go @@ -143,6 +143,7 @@ func TestBuild(t *testing.T) { g.Expect(len(objects)).To(BeEquivalentTo(1)) g.Expect(objects[0].GetName()).To(BeEquivalentTo(name + "-client")) g.Expect(objects[0].GetAnnotations()).To(HaveKeyWithValue("scope", "external")) + g.Expect(objects[0].GetLabels()).To(HaveKeyWithValue("app.kubernetes.io/team", "test")) val, _, err := unstructured.NestedString(objects[0].Object, "data", "server") g.Expect(err).ToNot(HaveOccurred()) diff --git a/cmd/timoni/testdata/module/templates/config.cue b/cmd/timoni/testdata/module/templates/config.cue index cff3273e..77745134 100644 --- a/cmd/timoni/testdata/module/templates/config.cue +++ b/cmd/timoni/testdata/module/templates/config.cue @@ -1,6 +1,8 @@ package templates #Config: { + team!: string + metadata: { name: *"test" | string namespace: *"default" | string @@ -8,6 +10,7 @@ package templates "app.kubernetes.io/name": metadata.name "app.kubernetes.io/version": moduleVersion "app.kubernetes.io/kube": kubeVersion + "app.kubernetes.io/team": team } | {[ string]: string} annotations?: {[ string]: string} } diff --git a/cmd/timoni/testdata/module/values.cue b/cmd/timoni/testdata/module/values.cue index 731f0376..55a6a787 100644 --- a/cmd/timoni/testdata/module/values.cue +++ b/cmd/timoni/testdata/module/values.cue @@ -4,5 +4,5 @@ package main values: { - // Placeholder for user-supplied values + team: "test" } diff --git a/internal/engine/module_builder.go b/internal/engine/module_builder.go index 33e24651..7c8aaa30 100644 --- a/internal/engine/module_builder.go +++ b/internal/engine/module_builder.go @@ -98,16 +98,14 @@ func (b *ModuleBuilder) MergeValuesFile(overlays [][]byte) error { // WriteValuesFileWithDefaults merges the module's root values.cue with the supplied value. func (b *ModuleBuilder) WriteValuesFileWithDefaults(val cue.Value) error { - defaultFile := filepath.Join(b.pkgPath, defaultValuesFile) + valData := []byte(fmt.Sprintf("%s: %v", apiv1.ValuesSelector.String(), val)) - baseVal, err := ExtractValueFromFile(b.ctx, defaultFile, apiv1.ValuesSelector.String()) - if err != nil { - return fmt.Errorf("loading default values from module failed: %w", err) - } + vb := NewValuesBuilder(b.ctx) + defaultFile := filepath.Join(b.pkgPath, defaultValuesFile) - finalVal, err := MergeValue(val, baseVal) + finalVal, err := vb.MergeValues([][]byte{valData}, defaultFile) if err != nil { - return fmt.Errorf("merging values failed: %w", err) + return err } cueGen := fmt.Sprintf("package %s\n%s: %v", b.pkgName, apiv1.ValuesSelector, finalVal)