in pkg/build/inline.go [68:134]
func (n *Inliner) BundleFiles(ctx context.Context, data *bundle.BundleBuilder, bundlePath string) (*bundle.Bundle, error) {
bundleURL, err := url.Parse(bundlePath)
if err != nil {
return nil, err
}
bundleURL, err = makeAbsForFileScheme(bundleURL)
if err != nil {
return nil, err
}
if !filepath.IsAbs(bundleURL.Path) {
return nil, fmt.Errorf("bundlePath must be absolute but was %s", bundleURL.Path)
}
var comps []*bundle.Component
for _, f := range data.ComponentFiles {
furl, err := f.ParsedURL()
if err != nil {
return nil, err
}
f.URL = makeAbsWithParent(bundleURL, furl).String()
contents, err := n.readFile(ctx, f)
if err != nil {
return nil, fmt.Errorf("error reading file %q: %v", f.URL, err)
}
uns, err := converter.FromFileName(f.URL, contents).ToUnstructured()
if err != nil {
return nil, err
}
kind := uns.GetKind()
switch kind {
case "Component":
c, err := converter.FromFileName(f.URL, contents).ToComponent()
if err != nil {
return nil, err
}
comps = append(comps, c)
case "ComponentBuilder":
c, err := converter.FromFileName(f.URL, contents).ToComponentBuilder()
if err != nil {
return nil, err
}
if c.GetName() == "" && data.ComponentNamePolicy == "SetAndComponent" {
c.ObjectMeta.Name = strings.Join([]string{data.SetName, data.Version, c.ComponentName, c.Version}, "-")
}
comp, err := n.ComponentFiles(ctx, c, f.URL)
if err != nil {
return nil, err
}
comps = append(comps, comp)
default:
return nil, fmt.Errorf("unsupported kind for component: %q; only supported kinds are Component and ComponentBuilder", kind)
}
}
newBundle := &bundle.Bundle{
TypeMeta: metav1.TypeMeta{
APIVersion: "bundle.gke.io/v1alpha1",
Kind: "Bundle",
},
ObjectMeta: *data.ObjectMeta.DeepCopy(),
SetName: data.SetName,
Version: data.Version,
Components: comps,
}
return newBundle, nil
}