in pkg/build/patchbuild.go [89:125]
func ComponentPatchTemplates(c *bundle.Component, fopts *filter.Options, opts options.JSONOptions) (*bundle.Component, error) {
ptbFilter := fopts
if ptbFilter == nil {
ptbFilter = &filter.Options{}
}
ptbFilter.Kinds = []string{`PatchTemplateBuilder`}
f := filter.NewFilter()
// select all patch template builders that match the filter
ptbs, objs := f.PartitionObjects(c.Spec.Objects, ptbFilter)
c.Spec.Objects = objs
// loop through each and generate a patch template
for _, obj := range ptbs {
var ptb bundle.PatchTemplateBuilder
err := converter.FromUnstructured(obj).ToObject(&ptb)
if err != nil {
return nil, err
}
pt, err := PatchTemplate(&ptb, opts)
if err != nil {
return nil, err
}
y, err := converter.FromObject(pt).ToYAML()
if err != nil {
return nil, err
}
o, err := converter.FromYAML(y).ToUnstructured()
if err != nil {
return nil, err
}
c.Spec.Objects = append(c.Spec.Objects, o)
}
return c, nil
}