Skip to content

Commit 1f9e048

Browse files
authored
Merge pull request #340 from werf/fix-dynamic-readiness-tracker-panics
fix: dynamic readiness tracker panics
2 parents f5059e3 + f287f5c commit 1f9e048

File tree

1 file changed

+40
-24
lines changed

1 file changed

+40
-24
lines changed

pkg/trackers/dyntracker/dynamic_readiness_tracker.go

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -867,9 +867,11 @@ func (t *DynamicReadinessTracker) handlePodsFromDeploymentStatus(status *deploym
867867
taskState.AddResourceState(pod.Name, taskState.Namespace(), podGvk)
868868
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), pod.Name, taskState.Namespace(), podGvk)
869869

870-
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
871-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
872-
})
870+
if pod.StatusIndicator != nil {
871+
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
872+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
873+
})
874+
}
873875
}
874876
}
875877

@@ -882,9 +884,11 @@ func (t *DynamicReadinessTracker) handlePodsFromStatefulSetStatus(status *statef
882884
taskState.AddResourceState(pod.Name, taskState.Namespace(), podGvk)
883885
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), pod.Name, taskState.Namespace(), podGvk)
884886

885-
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
886-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
887-
})
887+
if pod.StatusIndicator != nil {
888+
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
889+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
890+
})
891+
}
888892
}
889893
}
890894

@@ -897,9 +901,11 @@ func (t *DynamicReadinessTracker) handlePodsFromDaemonSetStatus(status *daemonse
897901
taskState.AddResourceState(pod.Name, taskState.Namespace(), podGvk)
898902
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), pod.Name, taskState.Namespace(), podGvk)
899903

900-
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
901-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
902-
})
904+
if pod.StatusIndicator != nil {
905+
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
906+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
907+
})
908+
}
903909
}
904910
}
905911

@@ -908,9 +914,11 @@ func (t *DynamicReadinessTracker) handlePodsFromJobStatus(status *job.JobStatus,
908914
taskState.AddResourceState(pod.Name, taskState.Namespace(), podGvk)
909915
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), pod.Name, taskState.Namespace(), podGvk)
910916

911-
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
912-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
913-
})
917+
if pod.StatusIndicator != nil {
918+
taskState.ResourceState(pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
919+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
920+
})
921+
}
914922
}
915923
}
916924

@@ -923,9 +931,11 @@ func (t *DynamicReadinessTracker) handlePodsFromDeploymentPodAddedReport(report
923931
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), report.ReplicaSetPod.Name, taskState.Namespace(), podGvk)
924932

925933
for _, pod := range report.DeploymentStatus.Pods {
926-
taskState.ResourceState(report.ReplicaSetPod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
927-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
928-
})
934+
if pod.StatusIndicator != nil {
935+
taskState.ResourceState(report.ReplicaSetPod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
936+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
937+
})
938+
}
929939
}
930940
}
931941

@@ -938,9 +948,11 @@ func (t *DynamicReadinessTracker) handlePodsFromStatefulSetPodAddedReport(report
938948
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), report.ReplicaSetPod.Name, taskState.Namespace(), podGvk)
939949

940950
for _, pod := range report.StatefulSetStatus.Pods {
941-
taskState.ResourceState(report.ReplicaSetPod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
942-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
943-
})
951+
if pod.StatusIndicator != nil {
952+
taskState.ResourceState(report.ReplicaSetPod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
953+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
954+
})
955+
}
944956
}
945957
}
946958

@@ -953,9 +965,11 @@ func (t *DynamicReadinessTracker) handlePodsFromDaemonSetPodAddedReport(report *
953965
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), report.Pod.Name, taskState.Namespace(), podGvk)
954966

955967
for _, pod := range report.DaemonSetStatus.Pods {
956-
taskState.ResourceState(report.Pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
957-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
958-
})
968+
if pod.StatusIndicator != nil {
969+
taskState.ResourceState(report.Pod.Name, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
970+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
971+
})
972+
}
959973
}
960974
}
961975

@@ -964,9 +978,11 @@ func (t *DynamicReadinessTracker) handlePodsFromJobPodAddedReport(report *job.Po
964978
taskState.AddDependency(taskState.Name(), taskState.Namespace(), taskState.GroupVersionKind(), report.PodName, taskState.Namespace(), podGvk)
965979

966980
for _, pod := range report.JobStatus.Pods {
967-
taskState.ResourceState(report.PodName, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
968-
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
969-
})
981+
if pod.StatusIndicator != nil {
982+
taskState.ResourceState(report.PodName, taskState.Namespace(), podGvk).RWTransaction(func(rs *statestore.ResourceState) {
983+
setPodStatusAttribute(rs, pod.StatusIndicator.Value)
984+
})
985+
}
970986
}
971987
}
972988

0 commit comments

Comments
 (0)