Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit 542bd3e

Browse files
chess-knightmatofeder
authored andcommitted
Catch NotFound secret and add condition
Also, modify requeue logic for download assets from github Signed-off-by: Roman Hros <[email protected]>
1 parent 4ead3ef commit 542bd3e

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

api/v1alpha1/conditions_const.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ const (
5353

5454
// CloudNotSetReason is used when user don't specify a valid clouds.yaml inside a secret.
5555
CloudNotSetReason = "CloudNotSet"
56+
57+
// SecretNotFoundReason is used when the secret specified by the user is not found.
58+
SecretNotFoundReason = "SecretNotFound"
5659
)
5760

5861
const (

internal/controller/openstackclusterstackrelease_controller.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,9 @@ func (r *OpenStackClusterStackReleaseReconciler) Reconcile(ctx context.Context,
129129
clusterv1beta1.ConditionSeverityError,
130130
err.Error(),
131131
)
132-
return ctrl.Result{RequeueAfter: 1 * time.Minute}, fmt.Errorf("failed to create release: %w", err)
132+
record.Warnf(openstackclusterstackrelease, "IssueWithReleaseAssets", err.Error())
133+
logger.Error(err, "failed to create release")
134+
return ctrl.Result{RequeueAfter: 1 * time.Minute}, nil
133135
}
134136

135137
if download {
@@ -140,7 +142,8 @@ func (r *OpenStackClusterStackReleaseReconciler) Reconcile(ctx context.Context,
140142
r.openStackClusterStackRelDownloadDirectoryMutex.Lock()
141143

142144
if err := downloadReleaseAssets(ctx, releaseTag, releaseAssets.LocalDownloadPath, gc); err != nil {
143-
return ctrl.Result{RequeueAfter: 1 * time.Minute}, fmt.Errorf("failed to download release assets: %w", err)
145+
logger.Error(err, "failed to download release assets")
146+
return ctrl.Result{RequeueAfter: 1 * time.Minute}, nil
144147
}
145148

146149
r.openStackClusterStackRelDownloadDirectoryMutex.Unlock()

internal/controller/openstacknodeimagerelease_controller.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,24 @@ func (r *OpenStackNodeImageReleaseReconciler) Reconcile(ctx context.Context, req
9696
// Get OpenStack cloud config from sercet
9797
cloud, err := r.getCloudFromSecret(ctx, openstacknodeimagerelease.Namespace, openstacknodeimagerelease.Spec.IdentityRef.Name, openstacknodeimagerelease.Spec.CloudName)
9898
if err != nil {
99+
if apierrors.IsNotFound(err) {
100+
conditions.MarkFalse(openstacknodeimagerelease,
101+
apiv1alpha1.CloudAvailableCondition,
102+
apiv1alpha1.SecretNotFoundReason,
103+
clusterv1beta1.ConditionSeverityError,
104+
err.Error(),
105+
)
106+
record.Warnf(openstacknodeimagerelease, "SecretNotFound", err.Error())
107+
logger.Error(err, "failed to get secret")
108+
return ctrl.Result{RequeueAfter: 1 * time.Minute}, nil
109+
}
99110
conditions.MarkFalse(openstacknodeimagerelease,
100111
apiv1alpha1.CloudAvailableCondition,
101112
apiv1alpha1.CloudNotSetReason,
102113
clusterv1beta1.ConditionSeverityError,
103114
err.Error(),
104115
)
105-
record.Warnf(openstacknodeimagerelease, "CloudNotSetReason", err.Error())
116+
record.Warnf(openstacknodeimagerelease, "CloudNotSet", err.Error())
106117
return ctrl.Result{}, fmt.Errorf("failed to get cloud from secret: %w", err)
107118
}
108119

@@ -286,7 +297,7 @@ func (r *OpenStackNodeImageReleaseReconciler) getCloudFromSecret(ctx context.Con
286297
Name: secretName,
287298
}, secret)
288299
if err != nil {
289-
return emptyCloud, fmt.Errorf("failed to get secret %s: %w", secretName, err)
300+
return emptyCloud, fmt.Errorf("failed to get secret %s in namespace %s: %w", secretName, secretNamespace, err)
290301
}
291302
content, ok := secret.Data[cloudsSecretKey]
292303
if !ok {

0 commit comments

Comments
 (0)