in controllers/cdstagedeploy/cdstagedeploy_controller.go [87:127]
func (r *ReconcileCDStageDeploy) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling CDStageDeploy has been started")
stageDeploy := &codebaseApi.CDStageDeploy{}
if err := r.client.Get(ctx, request.NamespacedName, stageDeploy); err != nil {
if k8sErrors.IsNotFound(err) {
return reconcile.Result{}, nil
}
return reconcile.Result{}, fmt.Errorf("failed to fetch CDStageDeploy resource %q: %w", request.NamespacedName, err)
}
if stageDeploy.GetDeletionTimestamp() != nil {
return ctrl.Result{}, nil
}
oldStatus := stageDeploy.Status.Status
if err := r.chainFactory(r.client, stageDeploy).ServeRequest(ctx, stageDeploy); err != nil {
stageDeploy.SetFailedStatus(err)
if statusErr := r.client.Status().Update(ctx, stageDeploy); statusErr != nil {
log.Error(statusErr, "An error has occurred while updating status field of CDStageDeploy")
}
return reconcile.Result{}, fmt.Errorf("failed to process default chainFactory: %w", err)
}
if stageDeploy.Status.Status != oldStatus && stageDeploy.Status.Status != codebaseApi.CDStageDeployStatusCompleted {
if statusErr := r.client.Status().Update(ctx, stageDeploy); statusErr != nil {
log.Error(statusErr, "An error has occurred while updating status field of CDStageDeploy")
}
}
log.Info("Reconciling has been finished")
return reconcile.Result{
RequeueAfter: requestTimeout,
}, nil
}