func()

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
}