@@ -109,33 +109,36 @@ func (r *ClusterStackReconciler) Reconcile(ctx context.Context, req reconcile.Re
109109 return reconcile.Result {}, fmt .Errorf ("failed to get latest ready ClusterStackRelease: %w" , err )
110110 }
111111
112- gc , err := r .GitHubClientFactory .NewClient (ctx )
113- if err != nil {
114- conditions .MarkFalse (clusterStack ,
115- csov1alpha1 .GitAPIAvailableCondition ,
116- csov1alpha1 .GitTokenOrEnvVariableNotSetReason ,
117- clusterv1 .ConditionSeverityError ,
118- err .Error (),
119- )
120- record .Warnf (clusterStack , "GitTokenOrEnvVariableNotSet" , err .Error ())
121- return reconcile.Result {}, fmt .Errorf ("failed to create Github client: %w" , err )
122- }
112+ var latest * string
123113
124- conditions .MarkTrue (clusterStack , csov1alpha1 .GitAPIAvailableCondition )
114+ if clusterStack .Spec .AutoSubscribe {
115+ gc , err := r .GitHubClientFactory .NewClient (ctx )
116+ if err != nil {
117+ conditions .MarkFalse (clusterStack ,
118+ csov1alpha1 .GitAPIAvailableCondition ,
119+ csov1alpha1 .GitTokenOrEnvVariableNotSetReason ,
120+ clusterv1 .ConditionSeverityError ,
121+ err .Error (),
122+ )
123+ record .Warnf (clusterStack , "GitTokenOrEnvVariableNotSet" , err .Error ())
124+ return reconcile.Result {}, fmt .Errorf ("failed to create Github client: %w" , err )
125+ }
125126
126- latest , err := getLatestReleaseFromRemoteRepository (ctx , clusterStack , gc )
127- if err != nil {
128- // only log error and mark condition as false, but continue
129- conditions .MarkFalse (clusterStack ,
130- csov1alpha1 .GitReleasesSyncedCondition ,
131- csov1alpha1 .FailedToSyncReason ,
132- clusterv1 .ConditionSeverityWarning ,
133- err .Error (),
134- )
135- logger .Error (err , "failed to get latest release from remote repository" )
136- }
127+ conditions .MarkTrue (clusterStack , csov1alpha1 .GitAPIAvailableCondition )
128+ latest , err = getLatestReleaseFromRemoteRepository (ctx , clusterStack , gc )
129+ if err != nil {
130+ // only log error and mark condition as false, but continue
131+ conditions .MarkFalse (clusterStack ,
132+ csov1alpha1 .GitReleasesSyncedCondition ,
133+ csov1alpha1 .FailedToSyncReason ,
134+ clusterv1 .ConditionSeverityWarning ,
135+ err .Error (),
136+ )
137+ logger .Error (err , "failed to get latest release from remote repository" )
138+ }
137139
138- conditions .MarkTrue (clusterStack , csov1alpha1 .GitReleasesSyncedCondition )
140+ conditions .MarkTrue (clusterStack , csov1alpha1 .GitReleasesSyncedCondition )
141+ }
139142
140143 inUse , err := r .getClusterStackReleasesInUse (ctx , req .Namespace )
141144 if err != nil {
@@ -534,11 +537,6 @@ func getLatestReadyClusterStackRelease(clusterStackReleases []*csov1alpha1.Clust
534537}
535538
536539func getLatestReleaseFromRemoteRepository (ctx context.Context , clusterStack * csov1alpha1.ClusterStack , gc githubclient.Client ) (* string , error ) {
537- // nothing to do if autoSubscribe is not activated
538- if ! clusterStack .Spec .AutoSubscribe {
539- return nil , nil
540- }
541-
542540 ghReleases , resp , err := gc .ListRelease (ctx )
543541 if err != nil {
544542 return nil , fmt .Errorf ("failed to list releases on remote Git repository: %w" , err )
0 commit comments