Skip to content

Commit

Permalink
If PodDeletionTimestamp != nil, return Pod state as being Termating i…
Browse files Browse the repository at this point in the history
…f it was not in the Decommissioning state
  • Loading branch information
burmanm committed Jan 30, 2025
1 parent 5625b0d commit f027993
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pkg/monitoring/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const (
PodStatusPending PodStatus = "Pending"
PodStatusError PodStatus = "Error"
PodStatusDecommissioning PodStatus = "Decommissioning"
PodStatusTerminating PodStatus = "Terminating"
)

func getPodStatus(pod *corev1.Pod) PodStatus {
Expand All @@ -35,6 +36,9 @@ func getPodStatus(pod *corev1.Pod) PodStatus {
return PodStatusError
case corev1.PodRunning:
default:
if pod.GetDeletionTimestamp() != nil {
return PodStatusTerminating
}
}

allContainersReady := true
Expand Down
14 changes: 14 additions & 0 deletions pkg/monitoring/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,20 @@ func TestMetricAdder(t *testing.T) {
require.NoError(err)
require.Equal("ready", status)

now := metav1.Now()
pods[1].SetDeletionTimestamp(&now)
UpdatePodStatusMetric(pods[1])
status, err = getCurrentPodStatus("pod1")
require.NoError(err)
require.Equal("terminating", status)

// Decommissioning should be prefered to Terminating if we are decommissioning the pod
pods[5].SetDeletionTimestamp(&now)
UpdatePodStatusMetric(pods[1])
status, err = getCurrentPodStatus("pod5")
require.NoError(err)
require.Equal("decommissioning", status)

RemoveDatacenterPods("ns", "cluster1", "datacenter1")
_, err = getCurrentPodStatus("pod4")
require.Error(err)
Expand Down

0 comments on commit f027993

Please sign in to comment.