Merge "Substring replacement fix in ReplacementTranformer"
This commit is contained in:
commit
ad21e64a98
pkg/document/plugin/replacement/v1alpha1
@ -169,8 +169,17 @@ func substitute(m resmap.ResMap, to *types.ReplTarget, replacement interface{})
|
||||
tmp = append(tmp, part)
|
||||
}
|
||||
p = strings.Join(tmp, "[")
|
||||
// Exclude substring portion from dot replacer
|
||||
// substring can contain IP or any dot separated string
|
||||
substringPattern := ""
|
||||
p, substringPattern = extractSubstringPattern(p)
|
||||
|
||||
pathSlice := strings.Split(p, ".")
|
||||
// append back the extracted substring
|
||||
if len(substringPattern) > 0 {
|
||||
pathSlice[len(pathSlice)-1] = pathSlice[len(pathSlice)-1] + "%" +
|
||||
substringPattern + "%"
|
||||
}
|
||||
for i, part := range pathSlice {
|
||||
pathSlice[i] = strings.ReplaceAll(part, dotReplacer, ".")
|
||||
}
|
||||
|
@ -158,6 +158,49 @@ kind: ReplacementTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
replacements:
|
||||
- source:
|
||||
value: 1.17.0
|
||||
target:
|
||||
objref:
|
||||
kind: Deployment
|
||||
fieldrefs:
|
||||
- spec.template.spec.containers[name=nginx-tagged].image%1.7.9%
|
||||
`,
|
||||
|
||||
in: `
|
||||
group: apps
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deploy1
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- image: nginx:1.7.9
|
||||
name: nginx-tagged
|
||||
`,
|
||||
expectedOut: `apiVersion: v1
|
||||
group: apps
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deploy1
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- image: nginx:1.17.0
|
||||
name: nginx-tagged
|
||||
`,
|
||||
},
|
||||
|
||||
{
|
||||
cfg: `
|
||||
apiVersion: airshipit.org/v1alpha1
|
||||
kind: ReplacementTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
replacements:
|
||||
- source:
|
||||
objref:
|
||||
kind: Pod
|
||||
|
Loading…
x
Reference in New Issue
Block a user