Skip to content

Commit

Permalink
Revert "Refactor RepositoryServer controller (#2136)" (#2150)
Browse files Browse the repository at this point in the history
This reverts commit fb4bd07.
  • Loading branch information
PrasadG193 authored Jun 30, 2023
1 parent fb4bd07 commit 64595c9
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 61 deletions.
32 changes: 12 additions & 20 deletions pkg/controllers/repositoryserver/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,18 @@ func (h *RepoServerHandler) CreateOrUpdateOwnedResources(ctx context.Context) er
return err
}
}

if err := h.connectToKopiaRepository(); err != nil {
return errors.Wrap(err, "Failed to connect to Kopia repository")
}

if err := h.startRepoProxyServer(ctx); err != nil {
return errors.Wrap(err, "Failed to start Kopia API server")
}

if err := h.createOrUpdateClientUsers(ctx); err != nil {
return errors.Wrap(err, "Failed to create/update kopia API server access users")
}
return nil
}

Expand Down Expand Up @@ -300,23 +312,3 @@ func (h *RepoServerHandler) waitForPodReady(ctx context.Context, pod *corev1.Pod
}
return nil
}

func (h *RepoServerHandler) updateProgressInCRStatus(ctx context.Context, progress crv1alpha1.RepositoryServerProgress) error {
h.Logger.Info("Fetch latest version of RepositoryServer to update the ServerInfo in its status")
repoServerName := h.RepositoryServer.Name
repoServerNamespace := h.RepositoryServer.Namespace
rs := crv1alpha1.RepositoryServer{}
err := h.Reconciler.Get(ctx, types.NamespacedName{Name: repoServerName, Namespace: repoServerNamespace}, &rs)
if err != nil {
return err
}
h.Logger.Info("Update the Progress")
rs.Status.Progress = progress
err = h.Reconciler.Status().Update(ctx, &rs)
if err != nil {
return err
}
h.Logger.Info("Use this updated RepositoryServer CR")
h.RepositoryServer = &rs
return nil
}
42 changes: 5 additions & 37 deletions pkg/controllers/repositoryserver/repositoryserver_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,51 +87,19 @@ func (r *RepositoryServerReconciler) Reconcile(ctx context.Context, req ctrl.Req
if err = r.Status().Update(ctx, repoServerHandler.RepositoryServer); err != nil {
return ctrl.Result{}, err
}
logger.Info("Setup RepositoryServer, Create or update owned resources")
if err := repoServerHandler.CreateOrUpdateOwnedResources(ctx); err != nil {
logger.Info("Setting the CR status as 'Failed' since an error occurred in create/update event")
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Failed); uerr != nil {
repoServerHandler.RepositoryServer.Status.Progress = crkanisteriov1alpha1.Failed
if uerr := r.Status().Update(ctx, repoServerHandler.RepositoryServer); uerr != nil {
return ctrl.Result{}, uerr
}
r.Recorder.Event(repoServerHandler.RepositoryServer, corev1.EventTypeWarning, "Failed", err.Error())
return ctrl.Result{}, err
}

logger.Info("Connect to Kopia Repository")
if err := repoServerHandler.connectToKopiaRepository(); err != nil {
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Failed); uerr != nil {
return ctrl.Result{}, uerr
}
return ctrl.Result{}, err
}

logger.Info("Start Repository Server")
if err := repoServerHandler.startRepoProxyServer(ctx); err != nil {
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Failed); uerr != nil {
return ctrl.Result{}, uerr
}
return ctrl.Result{}, err
}

logger.Info("Add/Update users")
if err := repoServerHandler.createOrUpdateClientUsers(ctx); err != nil {
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Failed); uerr != nil {
return ctrl.Result{}, uerr
}
return ctrl.Result{}, err
}

logger.Info("Refresh Server")
if err := repoServerHandler.refreshServer(ctx); err != nil {
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Failed); uerr != nil {
return ctrl.Result{}, uerr
}
return ctrl.Result{}, err
}

logger.Info("Setting the CR status as 'Ready' after completing the create/update event\n\n\n\n")
if uerr := repoServerHandler.updateProgressInCRStatus(ctx, crkanisteriov1alpha1.Ready); uerr != nil {
return ctrl.Result{}, uerr
repoServerHandler.RepositoryServer.Status.Progress = crkanisteriov1alpha1.Ready
if err = r.Status().Update(ctx, repoServerHandler.RepositoryServer); err != nil {
return ctrl.Result{}, err
}

return ctrl.Result{}, nil
Expand Down
13 changes: 9 additions & 4 deletions pkg/controllers/repositoryserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,19 @@ func (h *RepoServerHandler) createOrUpdateClientUsers(ctx context.Context) error
return errors.Wrap(err, "Failed to add new user to the Kopia API server")
}
}
return nil
}

func (h *RepoServerHandler) refreshServer(ctx context.Context) error {
serverAddress, username, password, err := h.getServerDetails(ctx)
repoServerAddress, serverAdminUserName, serverAdminPassword, err := h.getServerDetails(ctx)
if err != nil {
return err
}
err = h.refreshServer(ctx, repoServerAddress, serverAdminUserName, serverAdminPassword)
if err != nil {
return errors.Wrap(err, "Failed to refresh Kopia API server")
}
return nil
}

func (h *RepoServerHandler) refreshServer(ctx context.Context, serverAddress, username, password string) error {
repoPassword := string(h.RepositoryServerSecrets.repositoryPassword.Data[reposerver.RepoPasswordKey])
fingerprint, err := kopia.ExtractFingerprintFromCertSecret(ctx, h.KubeCli, h.RepositoryServerSecrets.serverTLS.Name, h.RepositoryServer.Namespace)
if err != nil {
Expand Down

0 comments on commit 64595c9

Please sign in to comment.