diff --git a/pkg/apis/pipeline/v1alpha1/pipelinerun_validation.go b/pkg/apis/pipeline/v1alpha1/pipelinerun_validation.go index de743e77a90..0e8ec45e297 100644 --- a/pkg/apis/pipeline/v1alpha1/pipelinerun_validation.go +++ b/pkg/apis/pipeline/v1alpha1/pipelinerun_validation.go @@ -63,7 +63,7 @@ func (ps *PipelineRunSpec) Validate(ctx context.Context) *apis.FieldError { } if ps.ExpirationSecondsTTL != nil { - // DelayDeleteTTL should be a valid duration of at least 0. + // ExpirationSecondsTTL should be a valid duration of at least 0. if ps.ExpirationSecondsTTL.Duration < 0 { return apis.ErrInvalidValue(fmt.Sprintf("%s should be >= 0", ps.ExpirationSecondsTTL.Duration.String()), "spec.expirationSecondsTTL") } diff --git a/pkg/apis/pipeline/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/pipeline/v1alpha1/zz_generated.deepcopy.go index af5e97c4e39..c73c1ff9555 100644 --- a/pkg/apis/pipeline/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/pipeline/v1alpha1/zz_generated.deepcopy.go @@ -1035,6 +1035,11 @@ func (in *PipelineRunSpec) DeepCopyInto(out *PipelineRunSpec) { **out = **in } in.PodTemplate.DeepCopyInto(&out.PodTemplate) + if in.ExpirationSecondsTTL != nil { + in, out := &in.ExpirationSecondsTTL, &out.ExpirationSecondsTTL + *out = new(metav1.Duration) + **out = **in + } return } @@ -1091,6 +1096,10 @@ func (in *PipelineRunStatus) DeepCopyInto(out *PipelineRunStatus) { (*out)[key] = outVal } } + if in.ExpirationTime != nil { + in, out := &in.ExpirationTime, &out.ExpirationTime + *out = (*in).DeepCopy() + } return } @@ -1762,6 +1771,11 @@ func (in *TaskRunSpec) DeepCopyInto(out *TaskRunSpec) { **out = **in } in.PodTemplate.DeepCopyInto(&out.PodTemplate) + if in.ExpirationSecondsTTL != nil { + in, out := &in.ExpirationSecondsTTL, &out.ExpirationSecondsTTL + *out = new(metav1.Duration) + **out = **in + } return } @@ -1813,6 +1827,10 @@ func (in *TaskRunStatus) DeepCopyInto(out *TaskRunStatus) { *out = make([]PipelineResourceResult, len(*in)) copy(*out, *in) } + if in.ExpirationTime != nil { + in, out := &in.ExpirationTime, &out.ExpirationTime + *out = (*in).DeepCopy() + } return } diff --git a/pkg/reconciler/pipelinerun/controller.go b/pkg/reconciler/pipelinerun/controller.go index 7d39322995f..c8866163e6e 100644 --- a/pkg/reconciler/pipelinerun/controller.go +++ b/pkg/reconciler/pipelinerun/controller.go @@ -32,6 +32,7 @@ import ( taskruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1alpha1/taskrun" "github.com/tektoncd/pipeline/pkg/reconciler" "github.com/tektoncd/pipeline/pkg/reconciler/pipelinerun/config" + "k8s.io/apimachinery/pkg/util/clock" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" kubeclient "knative.dev/pkg/client/injection/kube/client" @@ -97,21 +98,21 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch }) AddPipelineRun := func(obj interface{}) { - pr := obj.(*v1alpha1.PipelineRun) - c.Logger.Infof("Adding PipelineRun %s/%s", pr.Namespace, pr.Name) + pr := obj.(*v1alpha1.PipelineRun) + c.Logger.Infof("Adding PipelineRun %s/%s", pr.Namespace, pr.Name) - if pr.DeletionTimestamp == nil && pipelineRunCleanup(pr) { - impl.Enqueue(pr) - } + if pr.DeletionTimestamp == nil && pipelineRunCleanup(pr) { + impl.Enqueue(pr) + } } UpdatePipelineRun := func(old, cur interface{}) { - pr := cur.(*v1alpha1.PipelineRun) - c.Logger.Infof("Updating PipelineRun %s/%s", pr.Namespace, pr.Name) + pr := cur.(*v1alpha1.PipelineRun) + c.Logger.Infof("Updating PipelineRun %s/%s", pr.Namespace, pr.Name) - if pr.DeletionTimestamp == nil && pipelineRunCleanup(pr) { - impl.Enqueue(pr) - } + if pr.DeletionTimestamp == nil && pipelineRunCleanup(pr) { + impl.Enqueue(pr) + } } pipelineRunInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -119,6 +120,7 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch UpdateFunc: UpdatePipelineRun, }) + c.pipelineRunLister = pipelineRunInformer.Lister() c.ListerSynced = pipelineRunInformer.Informer().HasSynced c.tracker = tracker.New(impl.EnqueueKey, 30*time.Minute) @@ -126,6 +128,7 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch UpdateFunc: controller.PassNew(impl.EnqueueControllerOf), }) + c.clock = clock.RealClock{} c.Logger.Info("Setting up ConfigMap receivers") c.configStore = config.NewStore(images, c.Logger.Named("config-store")) c.configStore.WatchConfigs(opt.ConfigMapWatcher) diff --git a/pkg/reconciler/pipelinerun/pipelinerun.go b/pkg/reconciler/pipelinerun/pipelinerun.go index d094d6825d2..496afb3da04 100644 --- a/pkg/reconciler/pipelinerun/pipelinerun.go +++ b/pkg/reconciler/pipelinerun/pipelinerun.go @@ -28,7 +28,6 @@ import ( "github.com/tektoncd/pipeline/pkg/apis/pipeline" "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1" "github.com/tektoncd/pipeline/pkg/artifacts" - clientset "github.com/tektoncd/pipeline/pkg/client/clientset/versioned" listers "github.com/tektoncd/pipeline/pkg/client/listers/pipeline/v1alpha1" "github.com/tektoncd/pipeline/pkg/reconciler" "github.com/tektoncd/pipeline/pkg/reconciler/pipeline/dag" @@ -42,7 +41,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/clock" "k8s.io/client-go/tools/cache" - "k8s.io/client-go/tools/record" "k8s.io/client-go/util/workqueue" "knative.dev/pkg/apis" "knative.dev/pkg/configmap" diff --git a/pkg/reconciler/pipelinerun/pipelinerun_expired_test.go b/pkg/reconciler/pipelinerun/pipelinerun_expired_test.go index 7f25a08fd71..ca1cccfe474 100644 --- a/pkg/reconciler/pipelinerun/pipelinerun_expired_test.go +++ b/pkg/reconciler/pipelinerun/pipelinerun_expired_test.go @@ -1,6 +1,7 @@ package pipelinerun import ( + "github.com/tektoncd/pipeline/test" "strings" "time" @@ -36,7 +37,7 @@ func newPipelineRun(completionTime, failedTime apis.VolatileTime, ttl *metav1.Du } if ttl != nil { - pr.Spec.ExpirationSecondsTTL= ttl + pr.Spec.ExpirationSecondsTTL = ttl } return pr @@ -62,7 +63,7 @@ func TestTimeLeft(t *testing.T) { }{ { name: "Error case: PipelineRun unfinished", - ttl: &metav1.Duration{Duration:10 * time.Second}, + ttl: &metav1.Duration{Duration: 10 * time.Second}, since: &now.Inner.Time, expectErr: true, expectErrStr: "should not be cleaned up", @@ -77,57 +78,41 @@ func TestTimeLeft(t *testing.T) { { name: "PipelineRun completed now, 0s TTL", completionTime: now, - ttl: &metav1.Duration{Duration:0 * time.Second}, + ttl: &metav1.Duration{Duration: 0 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(0), }, { name: "PipelineRun completed now, 10s TTL", completionTime: now, - ttl: &metav1.Duration{Duration:10 * time.Second}, + ttl: &metav1.Duration{Duration: 10 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(10), }, { name: "PipelineRun completed 10s ago, 15s TTL", completionTime: apis.VolatileTime{Inner: metav1.NewTime(now.Inner.Add(-10 * time.Second))}, - ttl: &metav1.Duration{Duration:15 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(5), - }, - { - name: "Error case: PipelineRun failed now, no TTL", - failedTime: now, - since: &now.Inner.Time, - expectErr: true, - expectErrStr: "should not be cleaned up", - }, - { - name: "PipelineRun failed now, 0s TTL", - //failedTime: now, - ttl: &metav1.Duration{Duration:0 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(0), - }, - { - name: "PipelineRun failed now, 10s TTL", - failedTime: now, - ttl: &metav1.Duration{Duration:10 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(10), - }, - { - name: "PipelineRun failed 10s ago, 15s TTL", - failedTime: apis.VolatileTime{Inner: metav1.NewTime(now.Inner.Add(-10 * time.Second))}, - ttl: &metav1.Duration{Duration:15 * time.Second}, + ttl: &metav1.Duration{Duration: 15 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(5), }, } for _, tc := range PrTestCases { pr := newPipelineRun(tc.completionTime, tc.failedTime, tc.ttl) - reconcile := Reconciler{} - gotPrTimeLeft, gotPrErr := reconcile.prTimeLeft(pr, tc.since) + d := test.Data{ + PipelineRuns: []*apispipeline.PipelineRun{pr}, + } + testAssets, cancel := getPipelineRunController(t, d) + defer cancel() + p, ok := testAssets.Controller.Reconciler.(*Reconciler) + if !ok { + t.Errorf("failed to construct instance of taskrun reconciler") + return + } + + // Prevent backoff timer from starting + p.timeoutHandler.SetPipelineRunCallbackFunc(nil) + gotPrTimeLeft, gotPrErr := p.prTimeLeft(pr, tc.since) if tc.expectErr != (gotPrErr != nil) { t.Errorf("%s: expected error is %t, got %t, error: %v", tc.name, tc.expectErr, gotPrErr != nil, gotPrErr) @@ -145,4 +130,3 @@ func TestTimeLeft(t *testing.T) { } } } - diff --git a/pkg/reconciler/taskrun/controller.go b/pkg/reconciler/taskrun/controller.go index 34194bbe957..835b79a2bfb 100644 --- a/pkg/reconciler/taskrun/controller.go +++ b/pkg/reconciler/taskrun/controller.go @@ -30,8 +30,9 @@ import ( "github.com/tektoncd/pipeline/pkg/reconciler" "github.com/tektoncd/pipeline/pkg/reconciler/taskrun/entrypoint" cloudeventclient "github.com/tektoncd/pipeline/pkg/reconciler/taskrun/resources/cloudevent" + "k8s.io/apimachinery/pkg/util/clock" "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/workqueue" + "k8s.io/client-go/util/workqueue" kubeclient "knative.dev/pkg/client/injection/kube/client" podinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/pod" "knative.dev/pkg/configmap" @@ -77,7 +78,8 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch timeoutHandler: timeoutHandler, cloudEventClient: cloudeventclient.Get(ctx), metrics: metrics, - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ttl_taskruns_to_delete"), + //recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "ttl-after-finished-controller"}), + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ttl_taskruns_to_delete"), } impl := controller.NewImpl(c, c.Logger, taskRunControllerName) @@ -113,6 +115,7 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch UpdateFunc: UpdateTaskRun, }) + c.taskRunLister = taskRunInformer.Lister() c.ListerSynced = taskRunInformer.Informer().HasSynced c.tracker = tracker.New(impl.EnqueueKey, controller.GetTrackerLease(ctx)) @@ -122,6 +125,7 @@ func NewController(images pipeline.Images) func(context.Context, configmap.Watch Handler: controller.HandleAll(impl.EnqueueControllerOf), }) + c.clock = clock.RealClock{} // FIXME(vdemeester) it was never set //entrypoint cache will be initialized by controller if not provided c.Logger.Info("Setting up Entrypoint cache") diff --git a/pkg/reconciler/taskrun/taskrun_expired_test.go b/pkg/reconciler/taskrun/taskrun_expired_test.go index 326e098bf05..e9589a329fa 100644 --- a/pkg/reconciler/taskrun/taskrun_expired_test.go +++ b/pkg/reconciler/taskrun/taskrun_expired_test.go @@ -6,6 +6,7 @@ import ( "github.com/tektoncd/pipeline/pkg/apis/pipeline" apispipeline "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1" + "github.com/tektoncd/pipeline/test" tb "github.com/tektoncd/pipeline/test/builder" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -13,7 +14,7 @@ import ( "testing" ) -func newTaskRun(completionTime, failedTime apis.VolatileTime, ttl *metav1.Duration) *apispipeline.TaskRun { +func newTaskRun(completionTime apis.VolatileTime, ttl *metav1.Duration) *apispipeline.TaskRun { tr := tb.TaskRun("test-pipeline-run-with-annotations-hello-world-1-9l9zj", "foo", //tb.TaskRunOwnerReference("PipelineRun", "test-pipeline-run-with-annotations", // tb.OwnerReferenceAPIVersion("tekton.dev/v1alpha1"), @@ -34,11 +35,6 @@ func newTaskRun(completionTime, failedTime apis.VolatileTime, ttl *metav1.Durati tr.Status.Conditions = append(tr.Status.Conditions, c) } - if !failedTime.Inner.IsZero() { - c := apis.Condition{Type: apis.ConditionSucceeded, Status: v1.ConditionFalse, LastTransitionTime: failedTime} - tr.Status.Conditions = append(tr.Status.Conditions, c) - } - if ttl != nil { tr.Spec.ExpirationSecondsTTL = ttl } @@ -56,8 +52,7 @@ func TestTimeLeft(t *testing.T) { testCases := []struct { name string - completionTime apis.VolatileTime - failedTime apis.VolatileTime + completionTime apis.VolatileTime ttl *metav1.Duration since *time.Time expectErr bool @@ -66,7 +61,7 @@ func TestTimeLeft(t *testing.T) { }{ { name: "Error case: TaskRun unfinished", - ttl: &metav1.Duration{Duration:10 * time.Second}, + ttl: &metav1.Duration{Duration: 10 * time.Second}, since: &now.Inner.Time, expectErr: true, expectErrStr: "should not be cleaned up", @@ -81,57 +76,43 @@ func TestTimeLeft(t *testing.T) { { name: "TaskRun completed now, 0s TTL", completionTime: now, - ttl: &metav1.Duration{Duration:0 * time.Second}, + ttl: &metav1.Duration{Duration: 0 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(0), }, { name: "TaskRun completed now, 10s TTL", completionTime: now, - ttl: &metav1.Duration{Duration:10 * time.Second}, + ttl: &metav1.Duration{Duration: 10 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(10), }, { name: "TaskRun completed 10s ago, 15s TTL", completionTime: apis.VolatileTime{Inner: metav1.NewTime(now.Inner.Add(-10 * time.Second))}, - ttl: &metav1.Duration{Duration:15 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(5), - }, - { - name: "Error case: TaskRun failed now, no TTL", - failedTime: now, - since: &now.Inner.Time, - expectErr: true, - expectErrStr: "should not be cleaned up", - }, - { - name: "TaskRun failed now, 0s TTL", - failedTime: now, - ttl: &metav1.Duration{Duration:0 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(0), - }, - { - name: "TaskRun failed now, 10s TTL", - failedTime: now, - ttl: &metav1.Duration{Duration:10 * time.Second}, - since: &now.Inner.Time, - expectedTimeLeft: durationPointer(10), - }, - { - name: "TaskRun failed 10s ago, 15s TTL", - failedTime: apis.VolatileTime{Inner: metav1.NewTime(now.Inner.Add(-10 * time.Second))}, - ttl: &metav1.Duration{Duration:15 * time.Second}, + ttl: &metav1.Duration{Duration: 15 * time.Second}, since: &now.Inner.Time, expectedTimeLeft: durationPointer(5), }, } for _, tc := range testCases { - tr := newTaskRun(tc.completionTime, tc.failedTime, tc.ttl) - reconcile := Reconciler{} - gotTrTimeLeft, gotTrErr := reconcile.trTimeLeft(tr, tc.since) + tr := newTaskRun(tc.completionTime, tc.ttl) + + d := test.Data{ + TaskRuns: []*apispipeline.TaskRun{tr}, + } + testAssets, cancel := getTaskRunController(t, d) + defer cancel() + c, ok := testAssets.Controller.Reconciler.(*Reconciler) + if !ok { + t.Errorf("failed to construct instance of taskrun reconciler") + return + } + + // Prevent backoff timer from starting + c.timeoutHandler.SetTaskRunCallbackFunc(nil) + + gotTrTimeLeft, gotTrErr := c.trTimeLeft(tr, tc.since) if tc.expectErr != (gotTrErr != nil) { t.Errorf("%s: expected error is %t, got %t, error: %v", tc.name, tc.expectErr, gotTrErr != nil, gotTrErr) diff --git a/pkg/reconciler/taskrun/taskrun_test.go b/pkg/reconciler/taskrun/taskrun_test.go index ee7ec02b6ae..3f4e0c31627 100644 --- a/pkg/reconciler/taskrun/taskrun_test.go +++ b/pkg/reconciler/taskrun/taskrun_test.go @@ -1789,87 +1789,6 @@ func TestReconcileTimeouts(t *testing.T) { } } -func TestReconcileExpirationSecondsTTL(t *testing.T) { - type testCase struct { - taskRun *v1alpha1.TaskRun - expectedStatus *apis.Condition - } - - testcases := []testCase{ - { - taskRun: tb.TaskRun("test-taskrun-zero-expirationSecondsTTL", "foo", - tb.TaskRunSpec( - tb.TaskRunTaskRef(simpleTask.Name), - tb.TaskRunExpirationSecondsTTL(0*time.Second)), - tb.TaskRunStatus(tb.StatusCondition(apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionUnknown}), - tb.TaskRunCompletionTime(time.Now()))), - - expectedStatus: &apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionFalse, - Reason: "TaskRun is deleted immediately", - Message: `TaskRun "test-taskrun-zero-expirationSecondsTTL" is deleted immediately when TaskRun is completed"`, - }, - }, { - taskRun: tb.TaskRun("test-taskrun-nil-expirationSecondsTTL", "foo", - tb.TaskRunSpec( - tb.TaskRunTaskRef(simpleTask.Name), - tb.TaskRunNilExpirationSecondsTTL, - ), - tb.TaskRunStatus(tb.StatusCondition(apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionUnknown}), - tb.TaskRunStartTime(time.Now().Add(-999999*time.Hour)))), - - expectedStatus: &apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionTrue, - Reason: "Completed TaskRun is not deleted", - Message: `TaskRun "test-taskrun-nil-expirationSecondsTTL" will not be deleted, because field '.spec.ExpirationSecondsTTL' is not set"`, - }, - }, { - taskRun: tb.TaskRun("test-taskrun-expirationSecondsTTL", "foo", - tb.TaskRunSpec( - tb.TaskRunTaskRef(simpleTask.Name), - tb.TaskRunExpirationSecondsTTL(10*time.Minute), - ), - tb.TaskRunStatus(tb.StatusCondition(apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionUnknown}), - tb.TaskRunStartTime(time.Now().Add(-61*time.Minute)))), - - expectedStatus: &apis.Condition{ - Type: apis.ConditionSucceeded, - Status: corev1.ConditionFalse, - Reason: "Completed TaskRun is deleted", - Message: `TaskRun "test-taskrun-expirationSecondsTTL" is deleted after 10 minutes`, - }, - }} - for _, tc := range testcases { - d := test.Data{ - TaskRuns: []*v1alpha1.TaskRun{tc.taskRun}, - Tasks: []*v1alpha1.Task{simpleTask}, - } - testAssets, cancel := getTaskRunController(t, d) - defer cancel() - c := testAssets.Controller - clients := testAssets.Clients - - if err := c.Reconciler.Reconcile(context.Background(), fmt.Sprintf("%s/%s", tc.taskRun.Namespace, tc.taskRun.Name)); err != nil { - t.Fatalf("Unexpected error when reconciling completed TaskRun : %v", err) - } - newTr, err := clients.Pipeline.TektonV1alpha1().TaskRuns(tc.taskRun.Namespace).Get(tc.taskRun.Name, metav1.GetOptions{}) - if err != nil { - t.Fatalf("Expected completed TaskRun %s to exist but instead got error when getting it: %v", tc.taskRun.Name, err) - } - condition := newTr.Status.GetCondition(apis.ConditionSucceeded) - if d := cmp.Diff(tc.expectedStatus, condition, ignoreLastTransitionTime); d != "" { - t.Fatalf("Did not get expected condition (-want, +got): %v", d) - } - } -} func TestHandlePodCreationError(t *testing.T) { taskRun := tb.TaskRun("test-taskrun-pod-creation-failed", "foo", tb.TaskRunSpec( tb.TaskRunTaskRef(simpleTask.Name), diff --git a/pkg/status/taskrunpod_test.go b/pkg/status/taskrunpod_test.go index 81b06427fa7..70058c8517c 100644 --- a/pkg/status/taskrunpod_test.go +++ b/pkg/status/taskrunpod_test.go @@ -156,7 +156,6 @@ func TestUpdateStatusFromPod(t *testing.T) { }}, // We don't actually care about the time, just that it's not nil CompletionTime: &metav1.Time{Time: time.Now()}, - ExpirationTime: &metav1.Time{Time: time.Now().Add(1 * time.Hour)}, }, }, { desc: "running", @@ -220,7 +219,6 @@ func TestUpdateStatusFromPod(t *testing.T) { }}, // We don't actually care about the time, just that it's not nil CompletionTime: &metav1.Time{Time: time.Now()}, - ExpirationTime: &metav1.Time{Time: time.Now().Add(1 * time.Hour)}, }, }, { desc: "failure-message", @@ -240,7 +238,6 @@ func TestUpdateStatusFromPod(t *testing.T) { Steps: []v1alpha1.StepState{}, // We don't actually care about the time, just that it's not nil CompletionTime: &metav1.Time{Time: time.Now()}, - ExpirationTime: &metav1.Time{Time: time.Now().Add(1 * time.Hour)}, }, }, { desc: "failure-unspecified", @@ -257,7 +254,6 @@ func TestUpdateStatusFromPod(t *testing.T) { Steps: []v1alpha1.StepState{}, // We don't actually care about the time, just that it's not nil CompletionTime: &metav1.Time{Time: time.Now()}, - ExpirationTime: &metav1.Time{Time: time.Now().Add(1 * time.Hour)}, }, }, { desc: "pending-waiting-message", diff --git a/test/builder/pipeline_test.go b/test/builder/pipeline_test.go index 0c9b7754d01..d9cd7eb4b5c 100644 --- a/test/builder/pipeline_test.go +++ b/test/builder/pipeline_test.go @@ -179,7 +179,6 @@ func TestPipelineRun(t *testing.T) { }, StartTime: &metav1.Time{Time: startTime}, CompletionTime: &metav1.Time{Time: completedTime}, - ExpirationTime: &metav1.Time{Time: completedTime.Add(1 * time.Hour)}, TaskRuns: map[string]*v1alpha1.PipelineRunTaskRunStatus{ "trname": {PipelineTaskName: "task-1"}, }, @@ -207,6 +206,7 @@ func TestPipelineRunWithResourceSpec(t *testing.T) { Value: "git", }}})), tb.PipelineRunServiceAccountNameTask("foo", "sa-2"), + tb.PipelineRunExpirationSecondsTTL(1*time.Hour), ), tb.PipelineRunStatus(tb.PipelineRunStatusCondition( apis.Condition{Type: apis.ConditionSucceeded}), tb.PipelineRunStartTime(startTime), @@ -258,7 +258,6 @@ func TestPipelineRunWithResourceSpec(t *testing.T) { TaskRuns: map[string]*v1alpha1.PipelineRunTaskRunStatus{ "trname": {PipelineTaskName: "task-1"}, }, - ExpirationTime: &metav1.Time{Time: completedTime.Add(1 * time.Hour)}, }, } if d := cmp.Diff(expectedPipelineRun, pipelineRun); d != "" { diff --git a/test/builder/task_test.go b/test/builder/task_test.go index 0e386373869..90da99db5bb 100644 --- a/test/builder/task_test.go +++ b/test/builder/task_test.go @@ -165,6 +165,7 @@ func TestTaskRunWithTaskRef(t *testing.T) { tb.TaskResourceBindingPaths("output-folder"), ), ), + tb.TaskRunExpirationSecondsTTL(1*time.Minute), ), tb.TaskRunStatus( tb.PodName("my-pod-name"), @@ -223,7 +224,7 @@ func TestTaskRunWithTaskRef(t *testing.T) { }}, }, Timeout: &metav1.Duration{Duration: config.DefaultTimeoutMinutes * time.Minute}, - ExpirationSecondsTTL: &metav1.Duration{Duration: config.DefaultTimeoutMinutes * time.Minute}, + ExpirationSecondsTTL: &metav1.Duration{Duration: 1 * time.Minute}, TaskRef: &v1alpha1.TaskRef{ Name: "task-output", Kind: v1alpha1.ClusterTaskKind,