func filterNodes(candidates []*api.Node, filters ...func(*api.Node) bool) []*api.Node {
    result := []*api.Node{}

    for _, c := range candidates {
        match := true