Do not Sync ProviderFailed Pod Status (#227)
This commit is contained in:
@@ -28,6 +28,10 @@ import (
|
|||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PodStatusReason_ProviderFailed = "ProviderFailed"
|
||||||
|
)
|
||||||
|
|
||||||
// Server masquarades itself as a kubelet and allows for the virtual node to be backed by non-vm/node providers.
|
// Server masquarades itself as a kubelet and allows for the virtual node to be backed by non-vm/node providers.
|
||||||
type Server struct {
|
type Server struct {
|
||||||
nodeName string
|
nodeName string
|
||||||
@@ -331,7 +335,7 @@ func (s *Server) createPod(pod *corev1.Pod) error {
|
|||||||
if origErr := s.provider.CreatePod(pod); origErr != nil {
|
if origErr := s.provider.CreatePod(pod); origErr != nil {
|
||||||
pod.ResourceVersion = "" // Blank out resource version to prevent object has been modified error
|
pod.ResourceVersion = "" // Blank out resource version to prevent object has been modified error
|
||||||
pod.Status.Phase = corev1.PodFailed
|
pod.Status.Phase = corev1.PodFailed
|
||||||
pod.Status.Reason = "ProviderFailed"
|
pod.Status.Reason = PodStatusReason_ProviderFailed
|
||||||
pod.Status.Message = origErr.Error()
|
pod.Status.Message = origErr.Error()
|
||||||
|
|
||||||
_, err := s.k8sClient.CoreV1().Pods(pod.Namespace).UpdateStatus(pod)
|
_, err := s.k8sClient.CoreV1().Pods(pod.Namespace).UpdateStatus(pod)
|
||||||
@@ -377,6 +381,10 @@ func (s *Server) updatePodStatuses() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if pod.Status.Phase == corev1.PodFailed && pod.Status.Reason == PodStatusReason_ProviderFailed {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
status, err := s.provider.GetPodStatus(pod.Namespace, pod.Name)
|
status, err := s.provider.GetPodStatus(pod.Namespace, pod.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error retrieving pod '%s' status from provider: %s\n", pod.Name, err)
|
log.Printf("Error retrieving pod '%s' status from provider: %s\n", pod.Name, err)
|
||||||
|
|||||||
Reference in New Issue
Block a user