in pkg/build/inline.go [144:205]
func (n *Inliner) ComponentFiles(ctx context.Context, comp *bundle.ComponentBuilder, componentPath string) (*bundle.Component, error) {
componentURL, err := url.Parse(componentPath)
if err != nil {
return nil, err
}
componentURL, err = makeAbsForFileScheme(componentURL)
if err != nil {
return nil, err
}
if !filepath.IsAbs(componentURL.Path) {
return nil, fmt.Errorf("componentURL must be absolute but was %s", componentURL.Path)
}
newObjs, tmplBuilders, err := n.objectFiles(ctx, comp.ObjectFiles, comp.ComponentReference(), componentURL)
if err != nil {
return nil, err
}
// tmplObjs from template builder
tmplObjs, err := n.objectTemplateBuilders(ctx, tmplBuilders, comp.ComponentReference())
if err != nil {
return nil, err
}
newObjs = append(newObjs, tmplObjs...)
// tmplObjs from template files
tmplObjs, err = n.templateFiles(ctx, comp.TemplateFiles, comp.ComponentReference(), componentURL, comp.ObjectMeta)
if err != nil {
return nil, err
}
newObjs = append(newObjs, tmplObjs...)
cfgObj, err := n.rawTextFiles(ctx, comp.RawTextFiles, comp.ComponentReference(), componentURL)
if err != nil {
return nil, err
}
newObjs = append(newObjs, cfgObj...)
om := *comp.ObjectMeta.DeepCopy()
if om.Name == "" {
name := strings.ToLower(comp.ComponentName + `-` + comp.Version)
om.Name = nonDNS.ReplaceAllLiteralString(name, `-`)
}
errs := validation.IsDNS1123Subdomain(om.Name)
if len(errs) > 0 {
return nil, fmt.Errorf("metadata.Name %q is not a valid DNS 1123 subdomain in component %q/%q: %v",
om.Name, comp.ComponentName, comp.Version, errs)
}
newComp := &bundle.Component{
TypeMeta: metav1.TypeMeta{
APIVersion: "bundle.gke.io/v1alpha1",
Kind: "Component",
},
ObjectMeta: om,
Spec: bundle.ComponentSpec{
ComponentName: comp.ComponentName,
Version: comp.Version,
Objects: newObjs,
},
}
return newComp, nil
}