@@ -129,22 +129,26 @@ func cordonNode(cmd *cobra.Command, kubeClient client.Client, inputClusterName s
129
129
return errors .New ("no nodes were provided for cordoning" )
130
130
}
131
131
132
- var totalRemoved int
133
-
132
+ statistics := map [ string ] int {}
133
+ var observedErrors [] error
134
134
for _ , node := range nodes {
135
135
pods , err := fetchPodsOnNode (kubeClient , inputClusterName , namespace , node , clusterLabel )
136
136
if err != nil {
137
- return fmt .Errorf ("issue fetching Pods running on node %s. Error: %w" , node , err )
137
+ observedErrors = append (observedErrors , fmt .Errorf ("error fetching Pods from node: %s" , node ))
138
+ continue
138
139
}
140
+
139
141
if len (pods .Items ) == 0 {
140
- return fmt .Errorf ("no pods were found that were running on node %s" , node )
142
+ cmd .PrintErrln ("Cordoning node:" , node , "has no running pods" )
143
+ continue
141
144
}
145
+
142
146
var podNames []string
143
147
for _ , pod := range pods .Items {
144
148
podNames = append (podNames , pod .Name )
145
149
}
146
150
147
- cmd .Printf ( " \n Cordoning node: %s \n " , node )
151
+ cmd .Println ( "Cordoning node:" , node )
148
152
removedFromNode , err := replaceProcessGroups (cmd , kubeClient ,
149
153
processGroupSelectionOptions {
150
154
ids : podNames ,
@@ -160,10 +164,20 @@ func cordonNode(cmd *cobra.Command, kubeClient client.Client, inputClusterName s
160
164
removeAllFailed : false ,
161
165
})
162
166
if err != nil {
163
- return fmt .Errorf ("unable to cordon all Pods running on node %s. Error: %s" , node , err .Error ())
167
+ observedErrors = append (observedErrors , fmt .Errorf ("unable to cordon all Pods on node %s" , node ))
168
+ continue
164
169
}
165
- totalRemoved += removedFromNode
170
+
171
+ statistics [node ] = removedFromNode
166
172
}
167
- cmd .Printf ("\n Completed removal of %d Pods\n " , totalRemoved )
168
- return nil
173
+
174
+ cmd .Println ("Completed removal cordoning, printing summary:" )
175
+ var total int
176
+ for _ , node := range nodes {
177
+ cmd .Println ("Removed:" , statistics [node ], "pods from node:" , node )
178
+ total += statistics [node ]
179
+ }
180
+ cmd .Println ("Removed:" , total , "pods from" , len (nodes ), "nodes" )
181
+
182
+ return errors .Join (observedErrors ... )
169
183
}
0 commit comments