mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
check sidecar featuregate in getFinishedTime
This commit is contained in:
parent
3a2a500182
commit
d97282052e
@ -23,9 +23,11 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/client-go/tools/cache"
|
"k8s.io/client-go/tools/cache"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
apipod "k8s.io/kubernetes/pkg/api/v1/pod"
|
apipod "k8s.io/kubernetes/pkg/api/v1/pod"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/utils/clock"
|
"k8s.io/utils/clock"
|
||||||
"k8s.io/utils/ptr"
|
"k8s.io/utils/ptr"
|
||||||
)
|
)
|
||||||
@ -185,6 +187,7 @@ func getFinishedTime(p *v1.Pod) time.Time {
|
|||||||
|
|
||||||
func getFinishTimeFromContainers(p *v1.Pod) *time.Time {
|
func getFinishTimeFromContainers(p *v1.Pod) *time.Time {
|
||||||
finishTime := latestFinishTime(nil, p.Status.ContainerStatuses, nil)
|
finishTime := latestFinishTime(nil, p.Status.ContainerStatuses, nil)
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.SidecarContainers) {
|
||||||
// We need to check InitContainerStatuses here also,
|
// We need to check InitContainerStatuses here also,
|
||||||
// because with the sidecar (restartable init) containers,
|
// because with the sidecar (restartable init) containers,
|
||||||
// sidecar containers will always finish later than regular containers.
|
// sidecar containers will always finish later than regular containers.
|
||||||
@ -194,9 +197,11 @@ func getFinishTimeFromContainers(p *v1.Pod) *time.Time {
|
|||||||
names.Insert(c.Name)
|
names.Insert(c.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return latestFinishTime(finishTime, p.Status.InitContainerStatuses, func(status v1.ContainerStatus) bool {
|
finishTime = latestFinishTime(finishTime, p.Status.InitContainerStatuses, func(status v1.ContainerStatus) bool {
|
||||||
return names.Has(status.Name)
|
return names.Has(status.Name)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
return finishTime
|
||||||
}
|
}
|
||||||
|
|
||||||
func latestFinishTime(prevFinishTime *time.Time, cs []v1.ContainerStatus, check func(status v1.ContainerStatus) bool) *time.Time {
|
func latestFinishTime(prevFinishTime *time.Time, cs []v1.ContainerStatus, check func(status v1.ContainerStatus) bool) *time.Time {
|
||||||
|
@ -23,7 +23,10 @@ import (
|
|||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||||
"k8s.io/klog/v2/ktesting"
|
"k8s.io/klog/v2/ktesting"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
clocktesting "k8s.io/utils/clock/testing"
|
clocktesting "k8s.io/utils/clock/testing"
|
||||||
"k8s.io/utils/ptr"
|
"k8s.io/utils/ptr"
|
||||||
)
|
)
|
||||||
@ -200,6 +203,7 @@ func TestNewBackoffRecord(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetFinishedTime(t *testing.T) {
|
func TestGetFinishedTime(t *testing.T) {
|
||||||
|
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SidecarContainers, true)
|
||||||
defaultTestTime := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
|
defaultTestTime := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
|
||||||
defaultTestTimeMinus30s := defaultTestTime.Add(-30 * time.Second)
|
defaultTestTimeMinus30s := defaultTestTime.Add(-30 * time.Second)
|
||||||
containerRestartPolicyAlways := v1.ContainerRestartPolicyAlways
|
containerRestartPolicyAlways := v1.ContainerRestartPolicyAlways
|
||||||
|
Loading…
Reference in New Issue
Block a user