Skip to content

Commit c05ccaa

Browse files
authored
🐛 Fix inject overwrite manifest. (#21)
* 🐛 Fix inject overwriting manifest. Signed-off-by: Jeff Ortel <[email protected]> * checkpoint Signed-off-by: Jeff Ortel <[email protected]> --------- Signed-off-by: Jeff Ortel <[email protected]>
1 parent b9f051e commit c05ccaa

File tree

4 files changed

+47
-29
lines changed

4 files changed

+47
-29
lines changed

cmd/cmd_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,26 @@ func TestManifestMerge(t *testing.T) {
1515
"a": api.Map{
1616
"b": 2,
1717
},
18+
"n": api.Map{
19+
"L": 0,
20+
"K": 1,
21+
},
1822
"c": 25,
1923
}}
2024

21-
d := api.Map{
22-
"manifest.a.b": 100,
23-
"manifest.a.n.x": 200,
24-
"manifest.a.n.y": 200,
25-
"manifest.c": 300,
26-
"port": 8080,
25+
withValues := api.Map{
26+
"application": 0, // protected
27+
"application.name": 0, // protected
28+
"tags": 0, // protected
29+
"tags.name": 0, // protected
30+
"manifest.a.b": 100,
31+
"manifest.a.n.x": 200,
32+
"manifest.a.n.y": 200,
33+
"manifest.c": 300,
34+
"port": 8080,
2735
}
2836

29-
injected, _ := v.inject(d)
37+
injected, _ := v.inject(withValues)
3038

3139
v2 := Values{Manifest: api.Map{
3240
"a": api.Map{
@@ -36,6 +44,10 @@ func TestManifestMerge(t *testing.T) {
3644
"y": 200,
3745
},
3846
},
47+
"n": api.Map{
48+
"L": 0,
49+
"K": 1,
50+
},
3951
"c": 300,
4052
}}
4153
expected := v2.asMap()

cmd/generate.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -678,10 +678,10 @@ func (v *Values) protected() (keySet map[string]byte) {
678678
}
679679

680680
// inject nodes into the values document.
681-
func (v *Values) inject(inject ...api.Map) (mp api.Map, injected []string) {
681+
func (v *Values) inject(with ...Map) (mp api.Map, injected []string) {
682682
mp = v.asMap()
683683
protected := v.protected()
684-
for _, m := range inject {
684+
for _, m := range with {
685685
if m == nil {
686686
continue
687687
}
@@ -700,16 +700,19 @@ func (v *Values) inject(inject ...api.Map) (mp api.Map, injected []string) {
700700
node[p] = value
701701
break
702702
}
703-
v, found := node[p]
704-
nested, cast := v.(Map)
705-
if !found || !cast {
703+
v := node[p]
704+
switch nested := v.(type) {
705+
case Map:
706+
node = nested
707+
case api.Map:
708+
node = nested
709+
default:
706710
nested = make(Map)
707711
node[p] = nested
712+
node = nested.(Map)
708713
}
709-
node = nested
710714
}
711715
}
712716
}
713-
714717
return
715718
}

go.mod

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,20 @@ toolchain go1.23.10
66

77
require (
88
github.com/cloudfoundry/go-cfclient/v3 v3.0.0-alpha.12.0.20250712142925-13a7dc5466ad
9+
github.com/goccy/go-json v0.10.2
910
github.com/jortel/go-utils v0.1.4
10-
github.com/konveyor/asset-generation v0.1.10
11+
github.com/konveyor/asset-generation v0.1.12
1112
github.com/konveyor/tackle2-addon v0.8.0-alpha.1
1213
github.com/konveyor/tackle2-hub v0.8.0-alpha.1.0.20250806105606-ac22f2e6ebba
13-
github.com/onsi/gomega v1.38.0
14+
github.com/onsi/gomega v1.38.2
1415
sigs.k8s.io/yaml v1.4.0
1516
)
1617

1718
require (
1819
dario.cat/mergo v1.0.1 // indirect
1920
github.com/BurntSushi/toml v1.4.0 // indirect
2021
github.com/Masterminds/goutils v1.1.1 // indirect
21-
github.com/Masterminds/semver/v3 v3.3.1 // indirect
22+
github.com/Masterminds/semver/v3 v3.4.0 // indirect
2223
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
2324
github.com/Nerzal/gocloak/v13 v13.9.0 // indirect
2425
github.com/PaesslerAG/gval v1.2.2 // indirect
@@ -53,7 +54,6 @@ require (
5354
github.com/go-playground/validator/v10 v10.27.0 // indirect
5455
github.com/go-resty/resty/v2 v2.12.0 // indirect
5556
github.com/gobwas/glob v0.2.3 // indirect
56-
github.com/goccy/go-json v0.10.2 // indirect
5757
github.com/goccy/go-yaml v1.11.3 // indirect
5858
github.com/gogo/protobuf v1.3.2 // indirect
5959
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
@@ -111,6 +111,7 @@ require (
111111
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
112112
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
113113
github.com/yuin/gopher-lua v1.1.1 // indirect
114+
go.yaml.in/yaml/v3 v3.0.4 // indirect
114115
golang.org/x/arch v0.3.0 // indirect
115116
golang.org/x/crypto v0.41.0 // indirect
116117
golang.org/x/net v0.43.0 // indirect
@@ -120,7 +121,7 @@ require (
120121
golang.org/x/text v0.28.0 // indirect
121122
golang.org/x/time v0.7.0 // indirect
122123
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
123-
google.golang.org/protobuf v1.36.6 // indirect
124+
google.golang.org/protobuf v1.36.7 // indirect
124125
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
125126
gopkg.in/inf.v0 v0.9.1 // indirect
126127
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // indirect

go.sum

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0
66
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
77
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
88
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
9-
github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
10-
github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
9+
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
10+
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
1111
github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
1212
github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
1313
github.com/Nerzal/gocloak/v13 v13.9.0 h1:YWsJsdM5b0yhM2Ba3MLydiOlujkBry4TtdzfIzSVZhw=
@@ -158,8 +158,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
158158
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
159159
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
160160
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
161-
github.com/konveyor/asset-generation v0.1.10 h1:IzN/vGjAOEE/AAPsDsM/ojSQzkAumK26EZLNJySdwAQ=
162-
github.com/konveyor/asset-generation v0.1.10/go.mod h1:LB5Y6uiT8ioWpTBDS0BfbQi0dFCumk6FQux8pSb0lew=
161+
github.com/konveyor/asset-generation v0.1.12 h1:G3ZUzCzC+Shl0WqhZ8s/1rt26z2jEbZM9q2WmUGyjF0=
162+
github.com/konveyor/asset-generation v0.1.12/go.mod h1:DYew3e2TaiI0OB05HThjlD/YcO8rZTa+o8JmNPY4uQI=
163163
github.com/konveyor/tackle2-addon v0.8.0-alpha.1 h1:KpeGiJC/YQOUkvp6tOahwz8P/B98nt7oqz/YCnbHK10=
164164
github.com/konveyor/tackle2-addon v0.8.0-alpha.1/go.mod h1:mITXAU1o/8ZdBoGacaTZxXORfFe1q2S74W9RfTHHm7A=
165165
github.com/konveyor/tackle2-hub v0.8.0-alpha.1.0.20250806105606-ac22f2e6ebba h1:oFfga3vokkT2MzBdTyLimJbsPbZ+UtRRxHUTIROVpYo=
@@ -207,10 +207,10 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
207207
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
208208
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
209209
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
210-
github.com/onsi/ginkgo/v2 v2.25.1 h1:Fwp6crTREKM+oA6Cz4MsO8RhKQzs2/gOIVOUscMAfZY=
211-
github.com/onsi/ginkgo/v2 v2.25.1/go.mod h1:ppTWQ1dh9KM/F1XgpeRqelR+zHVwV81DGRSDnFxK7Sk=
212-
github.com/onsi/gomega v1.38.0 h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
213-
github.com/onsi/gomega v1.38.0/go.mod h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
210+
github.com/onsi/ginkgo/v2 v2.25.3 h1:Ty8+Yi/ayDAGtk4XxmmfUy4GabvM+MegeB4cDLRi6nw=
211+
github.com/onsi/ginkgo/v2 v2.25.3/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE=
212+
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
213+
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
214214
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
215215
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
216216
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
@@ -288,6 +288,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
288288
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
289289
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
290290
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
291+
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
292+
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
291293
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
292294
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
293295
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
@@ -376,8 +378,8 @@ golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3j
376378
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
377379
gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
378380
gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
379-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
380-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
381+
google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
382+
google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
381383
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
382384
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
383385
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

0 commit comments

Comments
 (0)