code: func getPodDetails(kubeClient *unversioned.Client) (*podInfo, error) {
  	podName := os.Getenv("POD_NAME")
  	podNs := os.Getenv("POD_NAMESPACE")
  
  	if podName == "" || podNs == "" {
  		return nil, fmt.Errorf("Please check the manifest (for missing POD_NAME or POD_NAMESPACE env variables)")
  	}
  
  	err := waitForPodRunning(kubeClient, podNs, podName, time.Millisecond*200, time.Second*30)
  	if err != nil {
  		return nil, err
  	}
  
  	pod, _ := kubeClient.Pods(podNs).Get(podName)
  	if pod == nil {
  		return nil, fmt.Errorf("Unable to get POD information")
  	}
  
  	node, err := kubeClient.Nodes().Get(pod.Spec.NodeName)
  	if err != nil {
  		return nil, err
  	}
  
  	var externalIP string
  	for _, address := range node.Status.Addresses {
  		if address.Type == api.NodeExternalIP {
  			if address.Address != "" {
  				externalIP = address.Address
  				break
  			}
  		}
  
  		if externalIP == "" && address.Type == api.NodeInternalIP {
  			externalIP = address.Address
  		}
  	}
  
  	return &podInfo{
  		PodName:      podName,
  		PodNamespace: podNs,
  		NodeIP:       externalIP,
  	}, nil
  }
docs: // getPodDetails  returns runtime information about the pod: name, namespace and IP of the node