in pkg/build/inline.go [224:272]
func (n *Inliner) objectFiles(ctx context.Context, objFiles []bundle.File, ref bundle.ComponentReference, componentPath *url.URL) ([]*unstructured.Unstructured, map[string][]*unstructured.Unstructured, error) {
var newObjs []*unstructured.Unstructured
objTmplBuilders := make(map[string][]*unstructured.Unstructured)
for _, cf := range objFiles {
furl, err := cf.ParsedURL()
if err != nil {
return nil, nil, err
}
cf.URL = makeAbsWithParent(componentPath, furl).String()
contents, err := n.readFile(ctx, cf)
if err != nil {
return nil, nil, fmt.Errorf("error reading file %v for component %v: %v", cf, ref, err)
}
ext := filepath.Ext(cf.URL)
if ext == ".yaml" && multiDoc.Match(contents) {
splat := multiDoc.Split(string(contents), -1)
for i, s := range splat {
if onlyWhitespace.MatchString(s) {
continue
}
obj, err := converter.FromYAMLString(s).ToUnstructured()
if err != nil {
return nil, nil, fmt.Errorf("converting multi-doc object number %d for component %v, %v", i, ref, err)
}
if obj.GetKind() == "ObjectTemplateBuilder" {
if objTmplBuilders[cf.URL] == nil {
objTmplBuilders[cf.URL] = []*unstructured.Unstructured{obj}
} else {
objTmplBuilders[cf.URL] = append(objTmplBuilders[cf.URL], obj)
}
} else {
newObjs = append(newObjs, obj)
}
}
} else {
obj, err := converter.FromFileName(cf.URL, contents).ToUnstructured()
if err != nil {
return nil, nil, fmt.Errorf("for component %q, %v", ref, err)
}
if obj.GetKind() == "ObjectTemplateBuilder" {
objTmplBuilders[cf.URL] = []*unstructured.Unstructured{obj}
} else {
newObjs = append(newObjs, obj)
}
}
}
return newObjs, objTmplBuilders, nil
}