convert pointer to ptr for job controller

This commit is contained in:
Kevin Hannon 2023-10-04 17:40:14 -04:00
parent ae02d1c832
commit b96a074bcd
6 changed files with 214 additions and 214 deletions

View File

@ -26,7 +26,7 @@ import (
"k8s.io/klog/v2"
apipod "k8s.io/kubernetes/pkg/api/v1/pod"
"k8s.io/utils/clock"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
type backoffRecord struct {
@ -207,7 +207,7 @@ func getFinishTimeFromPodReadyFalseCondition(p *v1.Pod) *time.Time {
func getFinishTimeFromDeletionTimestamp(p *v1.Pod) *time.Time {
if p.DeletionTimestamp != nil {
finishTime := p.DeletionTimestamp.Time.Add(-time.Duration(pointer.Int64Deref(p.DeletionGracePeriodSeconds, 0)) * time.Second)
finishTime := p.DeletionTimestamp.Time.Add(-time.Duration(ptr.Deref(p.DeletionGracePeriodSeconds, 0)) * time.Second)
return &finishTime
}
return nil

View File

@ -25,7 +25,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/klog/v2/ktesting"
clocktesting "k8s.io/utils/clock/testing"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
func TestNewBackoffRecord(t *testing.T) {
@ -287,7 +287,7 @@ func TestGetFinishedTime(t *testing.T) {
},
ObjectMeta: metav1.ObjectMeta{
DeletionTimestamp: &metav1.Time{Time: defaultTestTime},
DeletionGracePeriodSeconds: pointer.Int64(30),
DeletionGracePeriodSeconds: ptr.To[int64](30),
},
},
wantFinishTime: defaultTestTimeMinus30s,

View File

@ -31,7 +31,7 @@ import (
"k8s.io/klog/v2/ktesting"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/features"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
const noIndex = "-"
@ -209,7 +209,7 @@ func TestCalculateSucceededIndexes(t *testing.T) {
CompletedIndexes: tc.prevSucceeded,
},
Spec: batch.JobSpec{
Completions: pointer.Int32(tc.completions),
Completions: ptr.To(tc.completions),
},
}
pods := hollowPodsWithIndexPhase(tc.pods)
@ -238,8 +238,8 @@ func TestIsIndexFailed(t *testing.T) {
"failed pod exceeding backoffLimitPerIndex, when backoffLimitPerIndex=0": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pod: buildPod().indexFailureCount("0").phase(v1.PodFailed).index("0").trackingFinalizer().Pod,
@ -248,8 +248,8 @@ func TestIsIndexFailed(t *testing.T) {
"failed pod exceeding backoffLimitPerIndex, when backoffLimitPerIndex=1": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pod: buildPod().indexFailureCount("1").phase(v1.PodFailed).index("1").trackingFinalizer().Pod,
@ -259,8 +259,8 @@ func TestIsIndexFailed(t *testing.T) {
enableJobPodFailurePolicy: true,
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -292,8 +292,8 @@ func TestIsIndexFailed(t *testing.T) {
enableJobPodFailurePolicy: false,
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -346,8 +346,8 @@ func TestCalculateFailedIndexes(t *testing.T) {
"one new index failed": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -359,8 +359,8 @@ func TestCalculateFailedIndexes(t *testing.T) {
"pod without finalizer is ignored": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -371,8 +371,8 @@ func TestCalculateFailedIndexes(t *testing.T) {
"pod outside completions is ignored": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -383,11 +383,11 @@ func TestCalculateFailedIndexes(t *testing.T) {
"extend the failed indexes": {
job: batch.Job{
Status: batch.JobStatus{
FailedIndexes: pointer.String("0"),
FailedIndexes: ptr.To("0"),
},
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -398,11 +398,11 @@ func TestCalculateFailedIndexes(t *testing.T) {
"prev failed indexes empty": {
job: batch.Job{
Status: batch.JobStatus{
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -413,11 +413,11 @@ func TestCalculateFailedIndexes(t *testing.T) {
"prev failed indexes outside the completions": {
job: batch.Job{
Status: batch.JobStatus{
FailedIndexes: pointer.String("9"),
FailedIndexes: ptr.To("9"),
},
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -449,8 +449,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pods are kept corresponding to non-failed indexes are kept": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(3),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](3),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -463,8 +463,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pod without finalizer; the pod's deletion is not delayed as it already started": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -475,8 +475,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pod with expected finalizer removal; the pod's deletion is not delayed as it already started": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -488,8 +488,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pod with index outside of completions; the pod's deletion is not delayed": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(0),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](0),
},
},
pods: []*v1.Pod{
@ -500,8 +500,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pod for active index; the pod's deletion is not delayed as it is already replaced": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -513,8 +513,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"failed pod for succeeded index; the pod's deletion is not delayed as it is already replaced": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -526,8 +526,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"multiple failed pods for index with different failure count; only the pod with highest failure count is kept": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(4),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](4),
},
},
pods: []*v1.Pod{
@ -540,8 +540,8 @@ func TestGetPodsWithDelayedDeletionPerIndex(t *testing.T) {
"multiple failed pods for index with different finish times; only the last failed pod is kept": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
BackoffLimitPerIndex: pointer.Int32(4),
Completions: ptr.To[int32](2),
BackoffLimitPerIndex: ptr.To[int32](4),
},
},
pods: []*v1.Pod{

View File

@ -53,7 +53,7 @@ import (
"k8s.io/kubernetes/pkg/features"
"k8s.io/utils/clock"
"k8s.io/utils/integer"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
// controllerKind contains the schema.GroupVersionKind for this controller type.
@ -783,7 +783,7 @@ func (jm *Controller) syncJob(ctx context.Context, key string) (rErr error) {
}
var terminating *int32
if feature.DefaultFeatureGate.Enabled(features.JobPodReplacementPolicy) {
terminating = pointer.Int32(controller.CountTerminatingPods(pods))
terminating = ptr.To(controller.CountTerminatingPods(pods))
}
jobCtx := &syncJobCtx{
job: &job,
@ -799,7 +799,7 @@ func (jm *Controller) syncJob(ctx context.Context, key string) (rErr error) {
failed := job.Status.Failed + int32(nonIgnoredFailedPodsCount(jobCtx, newFailedPods)) + int32(len(jobCtx.uncounted.failed))
var ready *int32
if feature.DefaultFeatureGate.Enabled(features.JobReadyPods) {
ready = pointer.Int32(countReadyPods(jobCtx.activePods))
ready = ptr.To(countReadyPods(jobCtx.activePods))
}
// Job first start. Set StartTime only if the job is not in the suspended state.
@ -918,11 +918,11 @@ func (jm *Controller) syncJob(ctx context.Context, key string) (rErr error) {
}
}
needsStatusUpdate := suspendCondChanged || active != job.Status.Active || !pointer.Int32Equal(ready, job.Status.Ready)
needsStatusUpdate := suspendCondChanged || active != job.Status.Active || !ptr.Equal(ready, job.Status.Ready)
job.Status.Active = active
job.Status.Ready = ready
job.Status.Terminating = jobCtx.terminating
needsStatusUpdate = needsStatusUpdate || !pointer.Int32Equal(job.Status.Terminating, jobCtx.terminating)
needsStatusUpdate = needsStatusUpdate || !ptr.Equal(job.Status.Terminating, jobCtx.terminating)
err = jm.trackJobStatusAndRemoveFinalizers(ctx, jobCtx, needsStatusUpdate)
if err != nil {
return fmt.Errorf("tracking status: %w", err)
@ -1106,9 +1106,9 @@ func (jm *Controller) trackJobStatusAndRemoveFinalizers(ctx context.Context, job
jobCtx.job.Status.CompletedIndexes = succeededIndexesStr
var failedIndexesStr *string
if jobCtx.failedIndexes != nil {
failedIndexesStr = pointer.String(jobCtx.failedIndexes.String())
failedIndexesStr = ptr.To(jobCtx.failedIndexes.String())
}
if !pointer.StringEqual(jobCtx.job.Status.FailedIndexes, failedIndexesStr) {
if !ptr.Equal(jobCtx.job.Status.FailedIndexes, failedIndexesStr) {
jobCtx.job.Status.FailedIndexes = failedIndexesStr
needsFlush = true
}
@ -1642,7 +1642,7 @@ func (jm *Controller) getPodCreationInfoForIndependentIndexes(logger klog.Logger
if len(indexesToAddNow) > 0 {
return indexesToAddNow, 0
}
return indexesToAddNow, pointer.DurationDeref(minRemainingTimePerIndex, 0)
return indexesToAddNow, ptr.Deref(minRemainingTimePerIndex, 0)
}
// activePodsForRemoval returns Pods that should be removed because there

View File

@ -59,7 +59,7 @@ import (
"k8s.io/kubernetes/pkg/features"
"k8s.io/utils/clock"
clocktesting "k8s.io/utils/clock/testing"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
var realClock = &clock.RealClock{}
@ -326,7 +326,7 @@ func TestControllerSyncJob(t *testing.T) {
activePods: 3,
readyPods: 2,
expectedActive: 3,
expectedReady: pointer.Int32(2),
expectedReady: ptr.To[int32](2),
jobReadyPodsEnabled: true,
},
"WQ job: correct # of pods": {
@ -356,7 +356,7 @@ func TestControllerSyncJob(t *testing.T) {
podReplacementPolicy: podReplacementPolicy(batch.Failed),
jobPodReplacementPolicy: true,
terminatingPods: 1,
expectedTerminating: pointer.Int32(1),
expectedTerminating: ptr.To[int32](1),
expectedPodPatches: 2,
expectedDeletions: 1,
expectedFailed: 1,
@ -370,7 +370,7 @@ func TestControllerSyncJob(t *testing.T) {
podReplacementPolicy: podReplacementPolicy(batch.TerminatingOrFailed),
jobPodReplacementPolicy: true,
terminatingPods: 1,
expectedTerminating: pointer.Int32(1),
expectedTerminating: ptr.To[int32](1),
expectedActive: 1,
expectedPodPatches: 2,
expectedFailed: 2,
@ -637,7 +637,7 @@ func TestControllerSyncJob(t *testing.T) {
podReplacementPolicy: podReplacementPolicy(batch.Failed),
jobPodReplacementPolicy: true,
terminatingPods: 1,
expectedTerminating: pointer.Int32(1),
expectedTerminating: ptr.To[int32](1),
},
"indexed job with some pods deleted, podReplacementPolicy TerminatingOrFailed": {
parallelism: 2,
@ -650,7 +650,7 @@ func TestControllerSyncJob(t *testing.T) {
podReplacementPolicy: podReplacementPolicy(batch.TerminatingOrFailed),
jobPodReplacementPolicy: true,
terminatingPods: 1,
expectedTerminating: pointer.Int32(1),
expectedTerminating: ptr.To[int32](1),
expectedPodPatches: 1,
},
"indexed job completed": {
@ -887,7 +887,7 @@ func TestControllerSyncJob(t *testing.T) {
// job & pods setup
job := newJob(tc.parallelism, tc.completions, tc.backoffLimit, tc.completionMode)
job.Spec.Suspend = pointer.Bool(tc.suspend)
job.Spec.Suspend = ptr.To(tc.suspend)
if tc.jobPodReplacementPolicy {
job.Spec.PodReplacementPolicy = tc.podReplacementPolicy
}
@ -1482,7 +1482,7 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(6),
Completions: ptr.To[int32](6),
},
Status: batch.JobStatus{
Active: 1,
@ -1510,8 +1510,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(2),
Parallelism: pointer.Int32(2),
Completions: ptr.To[int32](2),
Parallelism: ptr.To[int32](2),
},
Status: batch.JobStatus{
Active: 2,
@ -1537,8 +1537,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(2),
Parallelism: pointer.Int32(2),
Completions: ptr.To[int32](2),
Parallelism: ptr.To[int32](2),
},
Status: batch.JobStatus{
Active: 2,
@ -1565,7 +1565,7 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(6),
Completions: ptr.To[int32](6),
},
Status: batch.JobStatus{
Active: 1,
@ -1598,7 +1598,7 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(7),
Completions: ptr.To[int32](7),
},
Status: batch.JobStatus{
Failed: 2,
@ -1680,7 +1680,7 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(501),
Completions: ptr.To[int32](501),
},
},
pods: func() []*v1.Pod {
@ -1703,8 +1703,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
"pod flips from failed to succeeded": {
job: batch.Job{
Spec: batch.JobSpec{
Completions: pointer.Int32(2),
Parallelism: pointer.Int32(2),
Completions: ptr.To[int32](2),
Parallelism: ptr.To[int32](2),
},
Status: batch.JobStatus{
UncountedTerminatedPods: &batch.UncountedTerminatedPods{
@ -1732,8 +1732,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(6),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](6),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -1742,7 +1742,7 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
wantStatusUpdates: []batch.JobStatus{
{
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
},
},
@ -1751,8 +1751,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(6),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](6),
BackoffLimitPerIndex: ptr.To[int32](1),
},
Status: batch.JobStatus{
Active: 1,
@ -1769,13 +1769,13 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
UncountedTerminatedPods: &batch.UncountedTerminatedPods{
Failed: []types.UID{"a1"},
},
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
{
Active: 1,
Failed: 1,
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
},
wantFailedPodsMetric: 1,
@ -1785,8 +1785,8 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
job: batch.Job{
Spec: batch.JobSpec{
CompletionMode: &indexedCompletion,
Completions: pointer.Int32(6),
BackoffLimitPerIndex: pointer.Int32(1),
Completions: ptr.To[int32](6),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []*v1.Pod{
@ -1795,14 +1795,14 @@ func TestTrackJobStatusAndRemoveFinalizers(t *testing.T) {
wantRmFinalizers: 1,
wantStatusUpdates: []batch.JobStatus{
{
FailedIndexes: pointer.String("1"),
FailedIndexes: ptr.To("1"),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{
Failed: []types.UID{"a"},
},
},
{
Failed: 1,
FailedIndexes: pointer.String("1"),
FailedIndexes: ptr.To("1"),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
},
},
@ -1974,7 +1974,7 @@ func TestSyncJobPastDeadline(t *testing.T) {
// job & pods setup
job := newJob(tc.parallelism, tc.completions, tc.backoffLimit, batch.NonIndexedCompletion)
job.Spec.ActiveDeadlineSeconds = &tc.activeDeadlineSeconds
job.Spec.Suspend = pointer.Bool(tc.suspend)
job.Spec.Suspend = ptr.To(tc.suspend)
start := metav1.Unix(metav1.Now().Time.Unix()-tc.startTime, 0)
job.Status.StartTime = &start
sharedInformerFactory.Batch().V1().Jobs().Informer().GetIndexer().Add(job)
@ -2071,7 +2071,7 @@ func TestPastDeadlineJobFinished(t *testing.T) {
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
job := newJobWithName(tc.jobName, 1, 1, 6, batch.NonIndexedCompletion)
job.Spec.ActiveDeadlineSeconds = pointer.Int64(1)
job.Spec.ActiveDeadlineSeconds = ptr.To[int64](1)
if tc.setStartTime {
start := metav1.NewTime(fakeClock.Now())
job.Status.StartTime = &start
@ -2129,7 +2129,7 @@ func TestSingleJobFailedCondition(t *testing.T) {
}
job := newJob(1, 1, 6, batch.NonIndexedCompletion)
job.Spec.ActiveDeadlineSeconds = pointer.Int64(10)
job.Spec.ActiveDeadlineSeconds = ptr.To[int64](10)
start := metav1.Unix(metav1.Now().Time.Unix()-15, 0)
job.Status.StartTime = &start
job.Status.Conditions = append(job.Status.Conditions, *newCondition(batch.JobFailed, v1.ConditionFalse, "DeadlineExceeded", "Job was active longer than specified deadline", realClock.Now()))
@ -2266,15 +2266,15 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
Action: batch.PodFailurePolicyActionIgnore,
OnExitCodes: &batch.PodFailurePolicyOnExitCodesRequirement{
ContainerName: pointer.String("main-container"),
ContainerName: ptr.To("main-container"),
Operator: batch.PodFailurePolicyOnExitCodesOpIn,
Values: []int32{1, 2, 3},
},
@ -2282,7 +2282,7 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
{
Action: batch.PodFailurePolicyActionFailJob,
OnExitCodes: &batch.PodFailurePolicyOnExitCodesRequirement{
ContainerName: pointer.String("main-container"),
ContainerName: ptr.To("main-container"),
Operator: batch.PodFailurePolicyOnExitCodesOpIn,
Values: []int32{5, 6, 7},
},
@ -2330,9 +2330,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2368,9 +2368,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2413,9 +2413,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2468,9 +2468,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2523,9 +2523,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2562,9 +2562,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2613,9 +2613,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Selector: validSelector,
Template: validTemplate,
CompletionMode: &indexedCompletionMode,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2658,9 +2658,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -2711,9 +2711,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -2758,9 +2758,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2813,9 +2813,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(0),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2859,9 +2859,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(0),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2896,9 +2896,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(0),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: onExitCodeRules,
},
@ -2940,9 +2940,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -2993,9 +2993,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3059,9 +3059,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(0),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3103,9 +3103,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(0),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3150,9 +3150,9 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(1),
Completions: pointer.Int32(1),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](1),
Completions: ptr.To[int32](1),
BackoffLimit: ptr.To[int32](6),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3199,10 +3199,10 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
TypeMeta: metav1.TypeMeta{Kind: "Job"},
ObjectMeta: validObjectMeta,
Spec: batch.JobSpec{
Parallelism: pointer.Int32(1),
Parallelism: ptr.To[int32](1),
Selector: validSelector,
Template: validTemplate,
BackoffLimit: pointer.Int32(0),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3233,10 +3233,10 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
TypeMeta: metav1.TypeMeta{Kind: "Job"},
ObjectMeta: validObjectMeta,
Spec: batch.JobSpec{
Parallelism: pointer.Int32(1),
Parallelism: ptr.To[int32](1),
Selector: validSelector,
Template: validTemplate,
BackoffLimit: pointer.Int32(0),
BackoffLimit: ptr.To[int32](0),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3325,8 +3325,8 @@ func TestSyncJobWithJobPodFailurePolicy(t *testing.T) {
if actual.Status.Failed != tc.wantStatusFailed {
t.Errorf("unexpected number of failed pods. Expected %d, saw %d\n", tc.wantStatusFailed, actual.Status.Failed)
}
if pointer.Int32Deref(actual.Status.Terminating, 0) != pointer.Int32Deref(tc.wantStatusTerminating, 0) {
t.Errorf("unexpected number of terminating pods. Expected %d, saw %d\n", pointer.Int32Deref(tc.wantStatusTerminating, 0), pointer.Int32Deref(actual.Status.Terminating, 0))
if ptr.Deref(actual.Status.Terminating, 0) != ptr.Deref(tc.wantStatusTerminating, 0) {
t.Errorf("unexpected number of terminating pods. Expected %d, saw %d\n", ptr.Deref(tc.wantStatusTerminating, 0), ptr.Deref(actual.Status.Terminating, 0))
}
})
}
@ -3371,11 +3371,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3387,7 +3387,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Failed: 1,
Succeeded: 2,
CompletedIndexes: "0,1",
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
Conditions: []batch.JobCondition{
{
@ -3405,11 +3405,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3418,7 +3418,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Active: 2,
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
},
"single failed pod replaced already": {
@ -3429,11 +3429,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3444,7 +3444,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Active: 2,
Failed: 1,
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
},
},
"single failed index due to exceeding the backoff limit per index, the job continues": {
@ -3455,11 +3455,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3468,7 +3468,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Active: 1,
Failed: 1,
FailedIndexes: pointer.String("0"),
FailedIndexes: ptr.To("0"),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
},
},
@ -3481,11 +3481,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3516,7 +3516,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Active: 1,
Failed: 1,
FailedIndexes: pointer.String("0"),
FailedIndexes: ptr.To("0"),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
},
},
@ -3529,11 +3529,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](6),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3565,7 +3565,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Active: 0,
Failed: 1,
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
Conditions: []batch.JobCondition{
{
@ -3592,11 +3592,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(6),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](6),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
PodFailurePolicy: &batch.PodFailurePolicy{
Rules: []batch.PodFailurePolicyRule{
{
@ -3628,7 +3628,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Active: 2,
Failed: 0,
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
},
},
@ -3640,11 +3640,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(1),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](1),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3654,7 +3654,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Failed: 2,
Succeeded: 0,
FailedIndexes: pointer.String(""),
FailedIndexes: ptr.To(""),
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
Conditions: []batch.JobCondition{
{
@ -3674,11 +3674,11 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(2),
Completions: pointer.Int32(2),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](2),
Completions: ptr.To[int32](2),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3688,7 +3688,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Failed: 1,
Succeeded: 1,
FailedIndexes: pointer.String("0"),
FailedIndexes: ptr.To("0"),
CompletedIndexes: "1",
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
Conditions: []batch.JobCondition{
@ -3709,12 +3709,12 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(4),
Completions: pointer.Int32(4),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](4),
Completions: ptr.To[int32](4),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
MaxFailedIndexes: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
MaxFailedIndexes: ptr.To[int32](1),
},
},
pods: []v1.Pod{
@ -3726,7 +3726,7 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
wantStatus: batch.JobStatus{
Failed: 3,
Succeeded: 1,
FailedIndexes: pointer.String("0,2"),
FailedIndexes: ptr.To("0,2"),
CompletedIndexes: "1",
UncountedTerminatedPods: &batch.UncountedTerminatedPods{},
Conditions: []batch.JobCondition{
@ -3747,14 +3747,14 @@ func TestSyncJobWithJobBackoffLimitPerIndex(t *testing.T) {
Spec: batch.JobSpec{
Selector: validSelector,
Template: validTemplate,
Parallelism: pointer.Int32(3),
Completions: pointer.Int32(3),
BackoffLimit: pointer.Int32(math.MaxInt32),
Parallelism: ptr.To[int32](3),
Completions: ptr.To[int32](3),
BackoffLimit: ptr.To[int32](math.MaxInt32),
CompletionMode: completionModePtr(batch.IndexedCompletion),
BackoffLimitPerIndex: pointer.Int32(1),
BackoffLimitPerIndex: ptr.To[int32](1),
},
Status: batch.JobStatus{
FailedIndexes: pointer.String("0"),
FailedIndexes: ptr.To("0"),
CompletedIndexes: "1",
},
},
@ -3871,7 +3871,7 @@ func TestUpdateJobRequeue(t *testing.T) {
"spec update": {
oldJob: newJob(1, 1, 1, batch.IndexedCompletion),
updateFn: func(job *batch.Job) {
job.Spec.Suspend = pointer.Bool(false)
job.Spec.Suspend = ptr.To(false)
job.Generation++
},
wantRequeuedImmediately: true,
@ -4861,7 +4861,7 @@ func TestJobBackoffForOnFailure(t *testing.T) {
// job & pods setup
job := newJob(tc.parallelism, tc.completions, tc.backoffLimit, batch.NonIndexedCompletion)
job.Spec.Template.Spec.RestartPolicy = v1.RestartPolicyOnFailure
job.Spec.Suspend = pointer.Bool(tc.suspend)
job.Spec.Suspend = ptr.To(tc.suspend)
sharedInformerFactory.Batch().V1().Jobs().Informer().GetIndexer().Add(job)
podIndexer := sharedInformerFactory.Core().V1().Pods().Informer().GetIndexer()
for i, pod := range newPodList(len(tc.restartCounts), tc.podPhase, job) {

View File

@ -27,7 +27,7 @@ import (
featuregatetesting "k8s.io/component-base/featuregate/testing"
_ "k8s.io/kubernetes/pkg/apis/core/install"
"k8s.io/kubernetes/pkg/features"
"k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
func TestMatchPodFailurePolicy(t *testing.T) {
@ -83,7 +83,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 1"),
wantJobFailureMessage: ptr.To("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 1"),
wantCountFailed: true,
wantAction: &failJob,
},
@ -161,7 +161,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 1"),
wantJobFailureMessage: ptr.To("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 1"),
wantCountFailed: true,
wantAction: &failJob,
},
@ -244,7 +244,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 0"),
wantJobFailureMessage: ptr.To("Container main-container for pod default/mypod failed with exit code 2 matching FailJob rule at index 0"),
wantCountFailed: true,
wantAction: &failJob,
},
@ -395,7 +395,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Container main-container for pod default/mypod failed with exit code 1 matching FailJob rule at index 0"),
wantJobFailureMessage: ptr.To("Container main-container for pod default/mypod failed with exit code 1 matching FailJob rule at index 0"),
wantCountFailed: true,
wantAction: &failJob,
},
@ -434,7 +434,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Container main-container for pod default/mypod failed with exit code 6 matching FailJob rule at index 1"),
wantJobFailureMessage: ptr.To("Container main-container for pod default/mypod failed with exit code 6 matching FailJob rule at index 1"),
wantCountFailed: true,
wantAction: &failJob,
},
@ -736,7 +736,7 @@ func TestMatchPodFailurePolicy(t *testing.T) {
},
},
},
wantJobFailureMessage: pointer.String("Pod default/mypod has condition DisruptionTarget matching FailJob rule at index 0"),
wantJobFailureMessage: ptr.To("Pod default/mypod has condition DisruptionTarget matching FailJob rule at index 0"),
wantCountFailed: true,
wantAction: &failJob,
},