Skip to content

Commit ac5d089

Browse files
authored
Merge pull request #5 from linoyaslan/consolidate_condition_constants_in_api_types
refactor: consolidate condition type constants in API types
2 parents 7c87359 + dd1e349 commit ac5d089

6 files changed

Lines changed: 77 additions & 75 deletions

File tree

api/v1alpha1/dpfhcpbridge_types.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,23 @@ const (
177177

178178
// HostedClusterCleanup indicates the status of HostedCluster deletion during finalizer cleanup.
179179
HostedClusterCleanup string = "HostedClusterCleanup"
180+
181+
// Validation conditions.
182+
183+
// SecretsValid indicates whether required secrets (pull secret, SSH key) are valid.
184+
SecretsValid string = "SecretsValid"
185+
186+
// BlueFieldImageResolved indicates whether the BlueField container image was successfully resolved.
187+
BlueFieldImageResolved string = "BlueFieldImageResolved"
188+
189+
// DPUClusterMissing indicates whether the referenced DPUCluster exists.
190+
DPUClusterMissing string = "DPUClusterMissing"
191+
192+
// ClusterTypeValid indicates whether the DPUCluster type is supported.
193+
ClusterTypeValid string = "ClusterTypeValid"
194+
195+
// DPUClusterInUse indicates whether the DPUCluster is already in use by another DPFHCPBridge.
196+
DPUClusterInUse string = "DPUClusterInUse"
180197
)
181198

182199
// DPFHCPBridgeStatus defines the observed state of DPFHCPBridge

internal/controller/bluefield/image_resolver.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ const (
3939
configMapName = "ocp-bluefield-images"
4040
configMapNamespace = "dpf-hcp-bridge-system"
4141

42-
// Condition type
43-
conditionTypeBlueFieldImageResolved = "BlueFieldImageResolved"
44-
4542
// Reason codes
4643
reasonImageResolved = "ImageResolved"
4744
reasonConfigMapNotFound = "ConfigMapNotFound"
@@ -240,14 +237,14 @@ func (r *ImageResolver) updateStatusOnSuccess(ctx context.Context, cr *provision
240237
log := log.FromContext(ctx)
241238

242239
// Get previous condition to check if we need to emit event
243-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, conditionTypeBlueFieldImageResolved)
240+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.BlueFieldImageResolved)
244241

245242
// Update status field
246243
cr.Status.BlueFieldContainerImage = blueFieldImage
247244

248245
// Update condition
249246
condition := metav1.Condition{
250-
Type: conditionTypeBlueFieldImageResolved,
247+
Type: provisioningv1alpha1.BlueFieldImageResolved,
251248
Status: metav1.ConditionTrue,
252249
Reason: reasonImageResolved,
253250
Message: fmt.Sprintf("BlueField container image resolved: %s", blueFieldImage),
@@ -283,7 +280,7 @@ func (r *ImageResolver) handleValidationError(ctx context.Context, cr *provision
283280
log.V(1).Info("Validation error - check CR spec", "error", err.Error())
284281

285282
// Get previous condition
286-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, conditionTypeBlueFieldImageResolved)
283+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.BlueFieldImageResolved)
287284

288285
// Clear status field
289286
cr.Status.BlueFieldContainerImage = ""
@@ -301,7 +298,7 @@ func (r *ImageResolver) handleValidationError(ctx context.Context, cr *provision
301298

302299
// Update condition
303300
condition := metav1.Condition{
304-
Type: conditionTypeBlueFieldImageResolved,
301+
Type: provisioningv1alpha1.BlueFieldImageResolved,
305302
Status: metav1.ConditionFalse,
306303
Reason: reason,
307304
Message: message,
@@ -330,7 +327,7 @@ func (r *ImageResolver) handlePermanentError(ctx context.Context, cr *provisioni
330327
log.V(1).Info("Permanent error - user action required", "version", version, "error", err.Error())
331328

332329
// Get previous condition
333-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, conditionTypeBlueFieldImageResolved)
330+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.BlueFieldImageResolved)
334331

335332
// Clear status field
336333
cr.Status.BlueFieldContainerImage = ""
@@ -354,7 +351,7 @@ func (r *ImageResolver) handlePermanentError(ctx context.Context, cr *provisioni
354351

355352
// Update condition
356353
condition := metav1.Condition{
357-
Type: conditionTypeBlueFieldImageResolved,
354+
Type: provisioningv1alpha1.BlueFieldImageResolved,
358355
Status: metav1.ConditionFalse,
359356
Reason: reason,
360357
Message: message,
@@ -382,7 +379,7 @@ func (r *ImageResolver) handleTransientError(ctx context.Context, cr *provisioni
382379
log := log.FromContext(ctx)
383380

384381
// Get previous condition
385-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, conditionTypeBlueFieldImageResolved)
382+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.BlueFieldImageResolved)
386383

387384
// Determine reason based on error type
388385
var reason, message string
@@ -398,7 +395,7 @@ func (r *ImageResolver) handleTransientError(ctx context.Context, cr *provisioni
398395
// Update condition only on first occurrence or if reason changed
399396
if previousCondition == nil || previousCondition.Reason != reason {
400397
condition := metav1.Condition{
401-
Type: conditionTypeBlueFieldImageResolved,
398+
Type: provisioningv1alpha1.BlueFieldImageResolved,
402399
Status: metav1.ConditionFalse,
403400
Reason: reason,
404401
Message: message,

internal/controller/dpucluster/validator.go

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,6 @@ import (
3535
)
3636

3737
const (
38-
// DPUClusterMissingConditionType is the condition type for DPUCluster validation
39-
DPUClusterMissingConditionType = "DPUClusterMissing"
40-
41-
// ClusterTypeValidConditionType is the condition type for cluster type validation
42-
ClusterTypeValidConditionType = "ClusterTypeValid"
43-
44-
// DPUClusterInUseConditionType is the condition type for DPUCluster exclusivity validation
45-
DPUClusterInUseConditionType = "DPUClusterInUse"
46-
4738
// Event reasons
4839
ReasonDPUClusterFound = "DPUClusterFound"
4940
ReasonDPUClusterNotFound = "DPUClusterNotFound"
@@ -140,7 +131,7 @@ func (v *Validator) handleClusterTypeInvalid(ctx context.Context, cr *provisioni
140131
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-validation")
141132

142133
// Get previous condition
143-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, ClusterTypeValidConditionType)
134+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.ClusterTypeValid)
144135

145136
// Note: Phase will be computed from conditions by the reconciler
146137

@@ -149,7 +140,7 @@ func (v *Validator) handleClusterTypeInvalid(ctx context.Context, cr *provisioni
149140

150141
// Set condition
151142
condition := metav1.Condition{
152-
Type: ClusterTypeValidConditionType,
143+
Type: provisioningv1alpha1.ClusterTypeValid,
153144
Status: metav1.ConditionFalse,
154145
Reason: ReasonClusterTypeUnsupported,
155146
Message: message,
@@ -180,7 +171,7 @@ func (v *Validator) handleClusterTypeValid(ctx context.Context, cr *provisioning
180171
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-validation")
181172

182173
// Get previous condition to check for recovery
183-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, ClusterTypeValidConditionType)
174+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.ClusterTypeValid)
184175

185176
// Note: Phase will be computed from conditions by the reconciler
186177
if previousCondition != nil && previousCondition.Status == metav1.ConditionFalse {
@@ -191,7 +182,7 @@ func (v *Validator) handleClusterTypeValid(ctx context.Context, cr *provisioning
191182

192183
// Set condition
193184
condition := metav1.Condition{
194-
Type: ClusterTypeValidConditionType,
185+
Type: provisioningv1alpha1.ClusterTypeValid,
195186
Status: metav1.ConditionTrue,
196187
Reason: ReasonClusterTypeValid,
197188
Message: message,
@@ -257,15 +248,15 @@ func (v *Validator) handleDPUClusterInUse(ctx context.Context, cr *provisioningv
257248
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-exclusivity")
258249

259250
// Get previous condition
260-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, DPUClusterInUseConditionType)
251+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.DPUClusterInUse)
261252

262253
message := fmt.Sprintf("DPUCluster '%s/%s' is already in use by DPFHCPBridge '%s/%s'. Each DPUCluster can only be referenced by one DPFHCPBridge",
263254
dpuCluster.Namespace, dpuCluster.Name,
264255
conflictingBridge.Namespace, conflictingBridge.Name)
265256

266257
// Set condition
267258
condition := metav1.Condition{
268-
Type: DPUClusterInUseConditionType,
259+
Type: provisioningv1alpha1.DPUClusterInUse,
269260
Status: metav1.ConditionTrue,
270261
Reason: ReasonDPUClusterInUse,
271262
Message: message,
@@ -298,7 +289,7 @@ func (v *Validator) handleDPUClusterAvailable(ctx context.Context, cr *provision
298289
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-exclusivity")
299290

300291
// Get previous condition to check for recovery
301-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, DPUClusterInUseConditionType)
292+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.DPUClusterInUse)
302293

303294
if previousCondition != nil && previousCondition.Status == metav1.ConditionTrue {
304295
log.Info("DPUCluster recovered from in-use state")
@@ -309,7 +300,7 @@ func (v *Validator) handleDPUClusterAvailable(ctx context.Context, cr *provision
309300

310301
// Set condition
311302
condition := metav1.Condition{
312-
Type: DPUClusterInUseConditionType,
303+
Type: provisioningv1alpha1.DPUClusterInUse,
313304
Status: metav1.ConditionFalse,
314305
Reason: ReasonDPUClusterAvailable,
315306
Message: message,
@@ -341,7 +332,7 @@ func (v *Validator) handleDPUClusterMissing(ctx context.Context, cr *provisionin
341332
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-validation")
342333

343334
// Get previous condition to determine if this is a new error
344-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, DPUClusterMissingConditionType)
335+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.DPUClusterMissing)
345336

346337
// Determine message based on whether cluster was previously found
347338
var message string
@@ -360,7 +351,7 @@ func (v *Validator) handleDPUClusterMissing(ctx context.Context, cr *provisionin
360351

361352
// Set condition
362353
condition := metav1.Condition{
363-
Type: DPUClusterMissingConditionType,
354+
Type: provisioningv1alpha1.DPUClusterMissing,
364355
Status: metav1.ConditionTrue,
365356
Reason: reason,
366357
Message: message,
@@ -394,14 +385,14 @@ func (v *Validator) handleDPUClusterAccessDenied(ctx context.Context, cr *provis
394385
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-validation")
395386

396387
// Get previous condition
397-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, DPUClusterMissingConditionType)
388+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.DPUClusterMissing)
398389

399390
message := fmt.Sprintf("Operator lacks RBAC permissions to access DPUCluster '%s' in namespace '%s': %v",
400391
dpuClusterRef.Name, dpuClusterRef.Namespace, err)
401392

402393
// Set condition
403394
condition := metav1.Condition{
404-
Type: DPUClusterMissingConditionType,
395+
Type: provisioningv1alpha1.DPUClusterMissing,
405396
Status: metav1.ConditionTrue,
406397
Reason: ReasonDPUClusterAccessDenied,
407398
Message: message,
@@ -433,7 +424,7 @@ func (v *Validator) handleDPUClusterFound(ctx context.Context, cr *provisioningv
433424
log := logf.FromContext(ctx).WithValues("feature", "dpucluster-validation")
434425

435426
// Get previous condition
436-
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, DPUClusterMissingConditionType)
427+
previousCondition := meta.FindStatusCondition(cr.Status.Conditions, provisioningv1alpha1.DPUClusterMissing)
437428

438429
if previousCondition != nil && previousCondition.Status == metav1.ConditionTrue {
439430
log.Info("DPUCluster recovered from missing state")
@@ -444,7 +435,7 @@ func (v *Validator) handleDPUClusterFound(ctx context.Context, cr *provisioningv
444435

445436
// Set condition
446437
condition := metav1.Condition{
447-
Type: DPUClusterMissingConditionType,
438+
Type: provisioningv1alpha1.DPUClusterMissing,
448439
Status: metav1.ConditionFalse,
449440
Reason: ReasonDPUClusterFound,
450441
Message: message,

0 commit comments

Comments
 (0)