@@ -22,6 +22,7 @@ import (
2222
2323 "github.com/aws/aws-node-termination-handler/pkg/config"
2424 "github.com/aws/aws-node-termination-handler/pkg/uptime"
25+ "github.com/rs/zerolog"
2526 "github.com/rs/zerolog/log"
2627 corev1 "k8s.io/api/core/v1"
2728 "k8s.io/apimachinery/pkg/api/errors"
@@ -286,6 +287,21 @@ func (n Node) TaintSpotItn(nodeName string, eventID string) error {
286287 return addTaint (k8sNode , n , SpotInterruptionTaint , eventID , corev1 .TaintEffectNoSchedule )
287288}
288289
290+ // LogPods logs all the pod names on a node
291+ func (n Node ) LogPods (nodeName string ) error {
292+ podList , err := n .fetchAllPods (nodeName )
293+ if err != nil {
294+ return fmt .Errorf ("Unable to fetch all pods from API: %w" , err )
295+ }
296+ podNamesArr := zerolog .Arr ()
297+ for _ , pod := range podList .Items {
298+ podNamesArr = podNamesArr .Str (pod .Name )
299+ }
300+ log .Log ().Array ("pod_names" , podNamesArr ).Str ("node_name" , nodeName ).Msg ("Pods on node" )
301+
302+ return nil
303+ }
304+
289305// TaintScheduledMaintenance adds the scheduled maintenance taint onto a node
290306func (n Node ) TaintScheduledMaintenance (nodeName string , eventID string ) error {
291307 if ! n .nthConfig .TaintNode {
@@ -399,6 +415,12 @@ func (n Node) fetchKubernetesNode(nodeName string) (*corev1.Node, error) {
399415 return n .drainHelper .Client .CoreV1 ().Nodes ().Get (nodeName , metav1.GetOptions {})
400416}
401417
418+ func (n Node ) fetchAllPods (nodeName string ) (* corev1.PodList , error ) {
419+ return n .drainHelper .Client .CoreV1 ().Pods ("" ).List (metav1.ListOptions {
420+ FieldSelector : "spec.nodeName=" + nodeName ,
421+ })
422+ }
423+
402424func getDrainHelper (nthConfig config.Config ) (* drain.Helper , error ) {
403425 drainHelper := & drain.Helper {
404426 Client : & kubernetes.Clientset {},
0 commit comments