INNER CODE UNIT · Go
getPodsAndNodes
robscott/kube-capacity · pkg/capacity/capacity.go:61
func getPodsAndNodes(clientset kubernetes.Interface, excludeTainted bool, podLabels, nodeLabels, nodeTaints, namespaceLabels, namespace string) (*corev1.PodList, *corev1.NodeList) {
nodeList, err := clientset.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{
LabelSelector: nodeLabels,
})
if err != nil {
fmt.Printf("Error listing Nodes: %v\n", err)
os.Exit(2)
}
if excludeTainted {
filteredNodeList := []corev1.Node{}
for _, node := range nodeList.Items {
if len(node.Spec.Taints) == 0 {
filteredNodeList = append(filteredNodeList, node)
}
}
nodeList.Items = filteredNodeList
}