diff --git a/kyaml/setters2/settersutil/substitutioncreator.go b/kyaml/setters2/settersutil/substitutioncreator.go index 15059abd0..4134f4271 100644 --- a/kyaml/setters2/settersutil/substitutioncreator.go +++ b/kyaml/setters2/settersutil/substitutioncreator.go @@ -109,10 +109,13 @@ func (c SubstitutionCreator) CreateSettersForSubstitution(openAPIPath string) er sd := setters2.SetterDefinition{ // get the setter name from ref. Ex: from #/definitions/io.k8s.cli.setters.image_setter // extract image_setter - Name: strings.Split(value.Ref, ".")[4], - Value: m[value.Marker], + Name: strings.TrimPrefix(value.Ref, "#/definitions/io.k8s.cli.setters."), + Value: m[value.Marker], + } + err := sd.AddToFile(openAPIPath) + if err != nil { + return err } - sd.AddToFile(openAPIPath) } } return nil @@ -126,23 +129,23 @@ func (c SubstitutionCreator) GetValuesForMarkers() (map[string]string, error) { if err != nil { return nil, err } - s:=c.FieldValue - p:=c.Pattern - i:=0 - j:=0 + s := c.FieldValue + p := c.Pattern + i := 0 + j := 0 // iterate s, p with indices i, j respectively and when j hits the index of a marker, freeze j and iterate // i and capture string till we find the substring just after current marker and before next marker // Ex: s = "something/ubuntu:0.1.0", p = "something/IMAGE::VERSION", till j reaches 10 // just proceed i and j and check if s[i]==p[j] // when j is 10, freeze j and move i till it sees substring '::' which derives IMAGE = ubuntu and so on. - for i< len(s) && j< len(p) { + for i < len(s) && j < len(p) { if marker, ok := indices[j]; ok { value := "" - e := j+len(marker) + e := j + len(marker) - for i j { res = min(k-j, res) } @@ -201,8 +204,8 @@ func lenToNextMarker(m map[int]string, j int) int { } func min(a int, b int) int { - if a