func()

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
}