in pkg/function/outputs.go [45:82]
func (w *OutputWriter) Add(outs ...client.Object) error {
if w.committed {
return fmt.Errorf("cannot add to a committed output")
}
// Doing a "filter" to avoid committing nil values.
for _, o := range outs {
if o == nil {
continue
}
// Resolve GVK if needed
if o.GetObjectKind().GroupVersionKind().Empty() {
gvks, _, err := Scheme.ObjectKinds(o)
if err != nil || len(gvks) == 0 {
return fmt.Errorf("unable to determine GVK for object %s: %w", o.GetName(), err)
}
o.GetObjectKind().SetGroupVersionKind(gvks[0])
}
// Encode
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(o)
if err != nil {
return fmt.Errorf(
"converting %s %s to unstructured: %w",
o.GetName(),
o.GetObjectKind().GroupVersionKind().Kind,
err,
)
}
u := &unstructured.Unstructured{Object: obj}
if w.munge != nil {
w.munge(u)
}
w.outputs = append(w.outputs, u)
}
return nil
}