@@ -23,9 +23,11 @@ import (
23
23
24
24
v1 "k8s.io/api/core/v1"
25
25
"k8s.io/apimachinery/pkg/util/sets"
26
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
26
27
"k8s.io/client-go/tools/cache"
27
28
"k8s.io/klog/v2"
28
29
apipod "k8s.io/kubernetes/pkg/api/v1/pod"
30
+ "k8s.io/kubernetes/pkg/features"
29
31
"k8s.io/utils/clock"
30
32
"k8s.io/utils/ptr"
31
33
)
@@ -185,18 +187,21 @@ func getFinishedTime(p *v1.Pod) time.Time {
185
187
186
188
func getFinishTimeFromContainers (p * v1.Pod ) * time.Time {
187
189
finishTime := latestFinishTime (nil , p .Status .ContainerStatuses , nil )
188
- // We need to check InitContainerStatuses here also,
189
- // because with the sidecar (restartable init) containers,
190
- // sidecar containers will always finish later than regular containers.
191
- names := sets .New [string ]()
192
- for _ , c := range p .Spec .InitContainers {
193
- if c .RestartPolicy != nil && * c .RestartPolicy == v1 .ContainerRestartPolicyAlways {
194
- names .Insert (c .Name )
190
+ if utilfeature .DefaultFeatureGate .Enabled (features .SidecarContainers ) {
191
+ // We need to check InitContainerStatuses here also,
192
+ // because with the sidecar (restartable init) containers,
193
+ // sidecar containers will always finish later than regular containers.
194
+ names := sets .New [string ]()
195
+ for _ , c := range p .Spec .InitContainers {
196
+ if c .RestartPolicy != nil && * c .RestartPolicy == v1 .ContainerRestartPolicyAlways {
197
+ names .Insert (c .Name )
198
+ }
195
199
}
200
+ finishTime = latestFinishTime (finishTime , p .Status .InitContainerStatuses , func (status v1.ContainerStatus ) bool {
201
+ return names .Has (status .Name )
202
+ })
196
203
}
197
- return latestFinishTime (finishTime , p .Status .InitContainerStatuses , func (status v1.ContainerStatus ) bool {
198
- return names .Has (status .Name )
199
- })
204
+ return finishTime
200
205
}
201
206
202
207
func latestFinishTime (prevFinishTime * time.Time , cs []v1.ContainerStatus , check func (status v1.ContainerStatus ) bool ) * time.Time {
0 commit comments