Skip to content

Commit 2165849

Browse files
authored
Merge pull request #1310 from 100mik/kctrl-build-values-fix
Ensure that `--build-values` does not affect package output
2 parents 60a80de + 4a58d51 commit 2165849

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

cli/pkg/kctrl/cmd/app/release/app_spec_builder.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (b *AppSpecBuilder) Build() (kcv1alpha1.AppSpec, error) {
6565
Git: &kcv1alpha1.AppFetchGit{},
6666
},
6767
},
68-
Template: b.opts.BuildTemplate,
68+
Template: b.deepCopyAppTemplateList(b.opts.BuildTemplate),
6969
Deploy: b.opts.BuildDeploy,
7070
},
7171
}
@@ -169,3 +169,12 @@ func (b *AppSpecBuilder) checkForErrorsAfterReconciliation(app kcv1alpha1.App, f
169169
}
170170
return nil
171171
}
172+
173+
func (b *AppSpecBuilder) deepCopyAppTemplateList(src []kcv1alpha1.AppTemplate) []kcv1alpha1.AppTemplate {
174+
copy := []kcv1alpha1.AppTemplate{}
175+
for _, templateStep := range src {
176+
templateStepCopy := templateStep.DeepCopy()
177+
copy = append(copy, *templateStepCopy)
178+
}
179+
return copy
180+
}

cli/test/e2e/build_values_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,13 @@ namespace: test
160160

161161
// Verify that validation checks are not performed while running ytt to build packages
162162
kappCtrl.RunWithOpts([]string{"package", "release", "--chdir", workingDir, "--build-values", "build-values.yml"}, RunOpts{NoNamespace: true})
163+
164+
// Ensure that flag does not affect package output
165+
packageFile, err := os.ReadFile(path.Join(workingDir, "carvel-artifacts", "packages", "samplepackage.corp.com", "package.yml"))
166+
if err != nil {
167+
t.Fatal(err)
168+
}
169+
require.NotContains(t, string(packageFile), "valuesFrom")
163170
})
164171
}
165172

@@ -313,5 +320,12 @@ fooVal: bar
313320
t.Fatal(err)
314321
}
315322
kappCtrl.RunWithOpts([]string{"package", "release", "--chdir", workingDir, "--build-values", "build-values.yml"}, RunOpts{NoNamespace: true})
323+
324+
// Ensure that flag does not affect package output
325+
packageFile, err := os.ReadFile(path.Join(workingDir, "carvel-artifacts", "packages", "samplepackage.corp.com", "package.yml"))
326+
if err != nil {
327+
t.Fatal(err)
328+
}
329+
require.NotContains(t, string(packageFile), "valuesFrom")
316330
})
317331
}

0 commit comments

Comments
 (0)