@@ -143,8 +143,9 @@ func (c *Reconciler) ReconcileKind(ctx context.Context, pr *v1beta1.PipelineRun)
143
143
logger .Warnf ("PipelineRun %s createTimestamp %s is after the pipelineRun started %s" , pr .GetNamespacedName ().String (), pr .CreationTimestamp , pr .Status .StartTime )
144
144
pr .Status .StartTime = & pr .CreationTimestamp
145
145
}
146
+
146
147
// start goroutine to track pipelinerun timeout only startTime is not set
147
- go c .timeoutHandler .Wait (pr .GetNamespacedName (), * pr .Status .StartTime , * pr . Spec . Timeout )
148
+ go c .timeoutHandler .Wait (pr .GetNamespacedName (), * pr .Status .StartTime , getPipelineRunTimeout ( ctx , pr ) )
148
149
// Emit events. During the first reconcile the status of the PipelineRun may change twice
149
150
// from not Started to Started and then to Running, so we need to sent the event here
150
151
// and at the end of 'Reconcile' again.
@@ -534,7 +535,7 @@ func (c *Reconciler) runNextSchedulableTask(ctx context.Context, pr *v1beta1.Pip
534
535
}
535
536
} else if ! rprt .ResolvedConditionChecks .HasStarted () {
536
537
for _ , rcc := range rprt .ResolvedConditionChecks {
537
- rcc .ConditionCheck , err = c .makeConditionCheckContainer (rprt , rcc , pr )
538
+ rcc .ConditionCheck , err = c .makeConditionCheckContainer (ctx , rprt , rcc , pr )
538
539
if err != nil {
539
540
recorder .Eventf (pr , corev1 .EventTypeWarning , "ConditionCheckCreationFailed" , "Failed to create TaskRun %q: %v" , rcc .ConditionCheckName , err )
540
541
return fmt .Errorf ("error creating ConditionCheck container called %s for PipelineTask %s from PipelineRun %s: %w" , rcc .ConditionCheckName , rprt .PipelineTask .Name , pr .Name , err )
@@ -669,7 +670,7 @@ func (c *Reconciler) createTaskRun(ctx context.Context, rprt *resources.Resolved
669
670
Spec : v1beta1.TaskRunSpec {
670
671
Params : rprt .PipelineTask .Params ,
671
672
ServiceAccountName : serviceAccountName ,
672
- Timeout : getTaskRunTimeout (pr , rprt ),
673
+ Timeout : getTaskRunTimeout (ctx , pr , rprt ),
673
674
PodTemplate : podTemplate ,
674
675
}}
675
676
@@ -818,12 +819,21 @@ func combineTaskRunAndTaskSpecAnnotations(pr *v1beta1.PipelineRun, pipelineTask
818
819
return annotations
819
820
}
820
821
821
- func getTaskRunTimeout (pr * v1beta1.PipelineRun , rprt * resources.ResolvedPipelineRunTask ) * metav1.Duration {
822
+ func getPipelineRunTimeout (ctx context.Context , pr * v1beta1.PipelineRun ) metav1.Duration {
823
+ if pr .Spec .Timeout == nil {
824
+ defaultTimeout := time .Duration (config .FromContextOrDefaults (ctx ).Defaults .DefaultTimeoutMinutes )
825
+ return metav1.Duration {Duration : defaultTimeout * time .Minute }
826
+ }
827
+ return * pr .Spec .Timeout
828
+ }
829
+
830
+ func getTaskRunTimeout (ctx context.Context , pr * v1beta1.PipelineRun , rprt * resources.ResolvedPipelineRunTask ) * metav1.Duration {
822
831
var taskRunTimeout = & metav1.Duration {Duration : apisconfig .NoTimeoutDuration }
823
832
824
833
var timeout time.Duration
825
834
if pr .Spec .Timeout == nil {
826
- timeout = config .DefaultTimeoutMinutes * time .Minute
835
+ defaultTimeout := time .Duration (config .FromContextOrDefaults (ctx ).Defaults .DefaultTimeoutMinutes )
836
+ timeout = defaultTimeout * time .Minute
827
837
} else {
828
838
timeout = pr .Spec .Timeout .Duration
829
839
}
@@ -874,7 +884,7 @@ func (c *Reconciler) updateLabelsAndAnnotations(pr *v1beta1.PipelineRun) (*v1bet
874
884
return newPr , nil
875
885
}
876
886
877
- func (c * Reconciler ) makeConditionCheckContainer (rprt * resources.ResolvedPipelineRunTask , rcc * resources.ResolvedConditionCheck , pr * v1beta1.PipelineRun ) (* v1beta1.ConditionCheck , error ) {
887
+ func (c * Reconciler ) makeConditionCheckContainer (ctx context. Context , rprt * resources.ResolvedPipelineRunTask , rcc * resources.ResolvedConditionCheck , pr * v1beta1.PipelineRun ) (* v1beta1.ConditionCheck , error ) {
878
888
labels := getTaskrunLabels (pr , rprt .PipelineTask .Name )
879
889
labels [pipeline .GroupName + pipeline .ConditionCheckKey ] = rcc .ConditionCheckName
880
890
labels [pipeline .GroupName + pipeline .ConditionNameKey ] = rcc .Condition .Name
@@ -910,7 +920,7 @@ func (c *Reconciler) makeConditionCheckContainer(rprt *resources.ResolvedPipelin
910
920
Resources : & v1beta1.TaskRunResources {
911
921
Inputs : rcc .ToTaskResourceBindings (),
912
922
},
913
- Timeout : getTaskRunTimeout (pr , rprt ),
923
+ Timeout : getTaskRunTimeout (ctx , pr , rprt ),
914
924
PodTemplate : podTemplate ,
915
925
}}
916
926
0 commit comments