@@ -26,33 +26,66 @@ func getClientSet(context string) (*kubernetes.Clientset, error) {
2626 return clientset , err
2727}
2828
29+ func getDaemonSetsForNode (
30+ clientset * kubernetes.Clientset , namespace string , nodeName string ,
31+ ) ([]string , error ) {
32+ _ , daemonSets , err := getDaemonSetInfo (
33+ clientset , "" , namespace , nodeName ,
34+ )
35+ if err != nil {
36+ return nil , err
37+ }
38+
39+ return daemonSets , err
40+ }
41+
2942func getPodsForDaemonSet (
3043 clientset * kubernetes.Clientset , daemonSetName , namespace string ,
3144 nodeName string ,
3245) ([]corev1.Pod , error ) {
33- var pods []corev1.Pod
46+ pods , _ , err := getDaemonSetInfo (
47+ clientset , daemonSetName , namespace , nodeName ,
48+ )
49+ if err != nil {
50+ return nil , err
51+ }
52+ return pods , err
53+ }
54+
55+ func getDaemonSetInfo (
56+ clientset * kubernetes.Clientset , daemonSetName , namespace string ,
57+ nodeName string ,
58+ ) ([]corev1.Pod , []string , error ) {
59+ var pods []corev1.Pod
60+ ds_set := make (map [string ]struct {})
3461
3562 podList , err := clientset .CoreV1 ().Pods (namespace ).List (
3663 context .TODO (), metav1.ListOptions {},
3764 )
3865 if err != nil {
39- return nil , err
66+ return nil , nil , err
4067 }
4168
42- for _ , pod := range podList .Items {
69+ for _ , pod := range podList .Items {
4370 if nodeName != "" && pod .Spec .NodeName != nodeName {
4471 continue
4572 }
46- for _ , owner := range pod .OwnerReferences {
47- if owner .Kind == "DaemonSet" && (
73+ for _ , owner := range pod .OwnerReferences {
74+ if owner .Kind == "DaemonSet" && (
4875 daemonSetName == "" || owner .Name == daemonSetName ) {
49- pods = append (pods , pod )
50- break
51- }
52- }
53- }
76+ pods = append (pods , pod )
77+ ds_set [owner .Name ] = struct {}{}
78+ break
79+ }
80+ }
81+ }
82+
83+ var daemonSets []string
84+ for k := range ds_set {
85+ daemonSets = append (daemonSets , k )
86+ }
5487
55- return pods , nil
88+ return pods , daemonSets , nil
5689}
5790
5891func countReadyContainers (
0 commit comments