in controllers/stage/stage_controller.go [258:280]
func (r *ReconcileStage) isLastStage(ctx context.Context, stage *cdPipeApi.Stage) (bool, error) {
stages := &cdPipeApi.StageList{}
if err := r.client.List(
ctx,
stages,
client.InNamespace(stage.Namespace),
client.MatchingLabels{cdPipeApi.StageCdPipelineLabelName: stage.Spec.CdPipeline},
); err != nil {
return false, fmt.Errorf("failed to get stages: %w", err)
}
for i := range stages.Items {
if stages.Items[i].Name == stage.Name {
continue
}
if stages.Items[i].Spec.Order > stage.Spec.Order {
return false, nil
}
}
return true, nil
}