in controllers/cdpipeline/cdpipeline_controller.go [81:122]
func (r *ReconcileCDPipeline) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling CDPipeline")
pipeline := &cdPipeApi.CDPipeline{}
if err := r.client.Get(ctx, request.NamespacedName, pipeline); err != nil {
if k8sErrors.IsNotFound(err) {
return reconcile.Result{}, nil
}
return reconcile.Result{}, fmt.Errorf("failed to get pipeline: %w", err)
}
if err := r.applyDefaults(ctx, pipeline); err != nil {
return reconcile.Result{}, err
}
result, err := r.tryToDeletePipeline(ctx, pipeline)
if err != nil {
return reconcile.Result{}, err
}
if result != nil {
return *result, nil
}
if err = r.createApplicationSet(ctx, pipeline); err != nil {
if statusErr := r.setFailedStatus(ctx, pipeline, err); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{}, fmt.Errorf("failed to create application set: %w", err)
}
if err := r.setFinishStatus(ctx, pipeline); err != nil {
return reconcile.Result{}, err
}
log.Info("Reconciling of CD Pipeline has been finished")
return reconcile.Result{}, nil
}