@@ -105,9 +105,8 @@ func (r *HelmRepositoryReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err
105105 }
106106
107107 // set initial status
108- if repository .Generation != repository .Status .ObservedGeneration ||
109- repository .GetArtifact () != nil && ! r .Storage .ArtifactExist (* repository .GetArtifact ()) {
110- repository = sourcev1 .HelmRepositoryProgressing (repository )
108+ if resetRepository , ok := r .resetStatus (repository ); ok {
109+ repository = resetRepository
111110 if err := r .Status ().Update (ctx , & repository ); err != nil {
112111 log .Error (err , "unable to update status" )
113112 return ctrl.Result {Requeue : true }, err
@@ -266,6 +265,20 @@ func (r *HelmRepositoryReconciler) reconcile(ctx context.Context, repository sou
266265 return sourcev1 .HelmRepositoryReady (repository , artifact , indexURL , sourcev1 .IndexationSucceededReason , message ), nil
267266}
268267
268+ // resetStatus returns a modified v1alpha1.HelmRepository and a boolean indicating
269+ // if the status field has been reset.
270+ func (r * HelmRepositoryReconciler ) resetStatus (repository sourcev1.HelmRepository ) (sourcev1.HelmRepository , bool ) {
271+ if repository .GetArtifact () != nil && ! r .Storage .ArtifactExist (* repository .GetArtifact ()) {
272+ repository = sourcev1 .HelmRepositoryProgressing (repository )
273+ repository .Status .Artifact = nil
274+ return repository , true
275+ }
276+ if repository .Generation != repository .Status .ObservedGeneration {
277+ return sourcev1 .HelmRepositoryProgressing (repository ), true
278+ }
279+ return repository , false
280+ }
281+
269282// gc performs a garbage collection on all but current artifacts of
270283// the given repository.
271284func (r * HelmRepositoryReconciler ) gc (repository sourcev1.HelmRepository , all bool ) error {
0 commit comments