Skip to content

Commit

Permalink
remove serving condition check for unpacking, refactor updateStatusPr…
Browse files Browse the repository at this point in the history
…ogressing

Signed-off-by: Ankita Thomas <[email protected]>
  • Loading branch information
ankitathomas committed Sep 10, 2024
1 parent d4fa84f commit 7d2f636
Showing 1 changed file with 25 additions and 33 deletions.
58 changes: 25 additions & 33 deletions internal/controllers/core/clustercatalog_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,13 @@ func (r *ClusterCatalogReconciler) reconcile(ctx context.Context, catalog *v1alp
}
if !catalog.DeletionTimestamp.IsZero() {
if err := r.Storage.Delete(catalog.Name); err != nil {
return ctrl.Result{}, updateStatusProgressing(catalog, err)
updateStatusProgressing(catalog, err)
return ctrl.Result{}, err
}
updateStatusNotServing(&catalog.Status)
if err := r.Unpacker.Cleanup(ctx, catalog); err != nil {
return ctrl.Result{}, updateStatusProgressing(catalog, err)
updateStatusProgressing(catalog, err)
return ctrl.Result{}, err
}
controllerutil.RemoveFinalizer(catalog, fbcDeletionFinalizer)
return ctrl.Result{}, nil
Expand All @@ -140,7 +142,9 @@ func (r *ClusterCatalogReconciler) reconcile(ctx context.Context, catalog *v1alp

unpackResult, err := r.Unpacker.Unpack(ctx, catalog)
if err != nil {
return ctrl.Result{}, updateStatusProgressing(catalog, err)
unpackErr := fmt.Errorf("source bundle content: %w", err)
updateStatusProgressing(catalog, unpackErr)
return ctrl.Result{}, unpackErr
}

switch unpackResult.State {
Expand All @@ -151,19 +155,19 @@ func (r *ClusterCatalogReconciler) reconcile(ctx context.Context, catalog *v1alp
// of the unpacking steps.
err := r.Storage.Store(ctx, catalog.Name, unpackResult.FS)
if err != nil {
return ctrl.Result{}, updateStatusProgressing(catalog, fmt.Errorf("error storing fbc: %v", err))
storageErr := fmt.Errorf("error storing fbc: %v", err)
updateStatusProgressing(catalog, storageErr)
return ctrl.Result{}, storageErr
}
contentURL = r.Storage.ContentURL(catalog.Name)

var lastUnpacked metav1.Time

if unpackResult != nil && unpackResult.ResolvedSource != nil && unpackResult.ResolvedSource.Image != nil {
lastUnpacked = unpackResult.ResolvedSource.Image.LastUnpacked
} else {
lastUnpacked = metav1.Time{}
}

_ = updateStatusProgressing(catalog, nil)
updateStatusProgressing(catalog, nil)
updateStatusServing(&catalog.Status, unpackResult, contentURL, catalog.Generation, lastUnpacked)

var requeueAfter time.Duration
Expand All @@ -180,34 +184,34 @@ func (r *ClusterCatalogReconciler) reconcile(ctx context.Context, catalog *v1alp
}
}

func updateStatusProgressing(catalog *v1alpha1.ClusterCatalog, err error) error {
var unrecov *catalogderrors.Unrecoverable
func updateStatusProgressing(catalog *v1alpha1.ClusterCatalog, err error) {
if err == nil {
catalog.Status.ResolvedSource = nil
meta.SetStatusCondition(&catalog.Status.Conditions, metav1.Condition{
Type: v1alpha1.TypeProgressing,
Status: metav1.ConditionFalse,
Reason: v1alpha1.ReasonSucceeded,
Message: fmt.Sprintf("Successfully unpacked and stored content from %s", catalog.Spec.Source.Image.Ref),
})
} else if errors.As(err, &unrecov) {
return
}

var unrecov *catalogderrors.Unrecoverable
if errors.As(err, &unrecov) {
meta.SetStatusCondition(&catalog.Status.Conditions, metav1.Condition{
Type: v1alpha1.TypeProgressing,
Status: metav1.ConditionFalse,
Reason: v1alpha1.ReasonUnrecoverable,
Message: err.Error(),
})
return err
} else {
meta.SetStatusCondition(&catalog.Status.Conditions, metav1.Condition{
Type: v1alpha1.TypeProgressing,
Status: metav1.ConditionTrue,
Reason: v1alpha1.ReasonRetrying,
Message: err.Error(),
})
return err
return
}
return nil

meta.SetStatusCondition(&catalog.Status.Conditions, metav1.Condition{
Type: v1alpha1.TypeProgressing,
Status: metav1.ConditionTrue,
Reason: v1alpha1.ReasonRetrying,
Message: err.Error(),
})
}

func updateStatusServing(status *v1alpha1.ClusterCatalogStatus, result *source.Result, contentURL string, generation int64, unpackedAt metav1.Time) {
Expand Down Expand Up @@ -241,9 +245,6 @@ func (r *ClusterCatalogReconciler) needsUnpacking(catalog *v1alpha1.ClusterCatal
if !r.Storage.ContentExists(catalog.Name) {
return true
}
if !servingStatusConditionExists(catalog) {
return true
}
// if there is no spec.Source.Image, don't unpack again
if catalog.Spec.Source.Image == nil {
return false
Expand All @@ -264,12 +265,3 @@ func (r *ClusterCatalogReconciler) needsUnpacking(catalog *v1alpha1.ClusterCatal
// time to unpack
return true
}

func servingStatusConditionExists(catalog *v1alpha1.ClusterCatalog) bool {
for _, cond := range catalog.Status.Conditions {
if cond.Type == v1alpha1.TypeServing && cond.Status == metav1.ConditionTrue {
return true
}
}
return false
}

0 comments on commit 7d2f636

Please sign in to comment.