Skip to content

Commit a92702e

Browse files
committed
feat: add native sidecar container support
1 parent fc73a0c commit a92702e

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

common-lib/utils/k8s/health/health_pod.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,20 @@ func getCorev1PodHealth(pod *corev1.Pod) (*HealthStatus, error) {
6161
}
6262
}
6363

64+
for i, cs := range pod.Status.InitContainerStatuses {
65+
if i < len(pod.Spec.InitContainers) &&
66+
pod.Spec.InitContainers[i].RestartPolicy != nil &&
67+
*pod.Spec.InitContainers[i].RestartPolicy == corev1.ContainerRestartPolicyAlways {
68+
waiting := cs.State.Waiting
69+
if waiting != nil && (strings.HasPrefix(waiting.Reason, "Err") ||
70+
strings.HasSuffix(waiting.Reason, "Error") ||
71+
strings.HasSuffix(waiting.Reason, "BackOff")) {
72+
status = HealthStatusDegraded
73+
messages = append(messages, waiting.Message)
74+
}
75+
}
76+
}
77+
6478
if status != "" {
6579
return &HealthStatus{
6680
Status: status,

common-lib/utils/k8sObjectsUtil/ResourceTreeUtil.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,10 @@ func PopulatePodInfo(un *unstructured.Unstructured) ([]commonBean.InfoItem, erro
217217

218218
initializing := false
219219
for i := range pod.Status.InitContainerStatuses {
220+
if pod.Spec.InitContainers[i].RestartPolicy != nil &&
221+
*pod.Spec.InitContainers[i].RestartPolicy == v1.ContainerRestartPolicyAlways {
222+
continue // native sidecar — not a blocking init container
223+
}
220224
container := pod.Status.InitContainerStatuses[i]
221225
restarts += int(container.RestartCount)
222226
switch {
@@ -243,6 +247,16 @@ func PopulatePodInfo(un *unstructured.Unstructured) ([]commonBean.InfoItem, erro
243247
}
244248
break
245249
}
250+
for i, cs := range pod.Status.InitContainerStatuses {
251+
if pod.Spec.InitContainers[i].RestartPolicy != nil &&
252+
*pod.Spec.InitContainers[i].RestartPolicy == v1.ContainerRestartPolicyAlways {
253+
totalContainers++
254+
restarts += int(cs.RestartCount)
255+
if cs.Ready && cs.State.Running != nil {
256+
readyContainers++
257+
}
258+
}
259+
}
246260
if !initializing {
247261
restarts = 0
248262
hasRunning := false

0 commit comments

Comments
 (0)