func SelectObjects()

in pkg/filter/filter.go [375:394]


func SelectObjects(components []*bundle.Component, predicate ComponentPredicate) []*bundle.Component {
	var out []*bundle.Component
	for _, component := range components {
		temp := component.DeepCopy()
		var selectedObjects []*unstructured.Unstructured
		for _, object := range component.Spec.Objects {
			temp.Spec.Objects = []*unstructured.Unstructured{object}
			if predicate(temp) {
				selectedObjects = append(selectedObjects, object)
			}
		}
		if len(selectedObjects) == 0 {
			continue
		}
		newComp := component.DeepCopy()
		newComp.Spec.Objects = selectedObjects
		out = append(out, newComp)
	}
	return out
}