Skip to content

Commit e75a515

Browse files
fix(Boxcutter): Re-resolve bundle when rollout is stuck
Generated-by: Cursor/Claude
1 parent 74e39f5 commit e75a515

7 files changed

Lines changed: 889 additions & 46 deletions

File tree

internal/operator-controller/controllers/boxcutter_reconcile_steps.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,11 @@ func (d *BoxcutterRevisionStatesGetter) GetRevisionStates(ctx context.Context, e
6262
// is fairly decoupled from this code where we get the annotations back out. We may want to co-locate
6363
// the set/get logic a bit better to make it more maintainable and less likely to get out of sync.
6464
rm := &RevisionMetadata{
65-
RevisionName: rev.Name,
66-
Package: rev.Annotations[labels.PackageNameKey],
67-
Image: rev.Annotations[labels.BundleReferenceKey],
68-
Conditions: rev.Status.Conditions,
65+
RevisionName: rev.Name,
66+
Package: rev.Annotations[labels.PackageNameKey],
67+
Image: rev.Annotations[labels.BundleReferenceKey],
68+
SourceDigest: rev.Annotations[labels.SourceDigestKey],
69+
Conditions: rev.Status.Conditions,
6970
BundleMetadata: ocv1.BundleMetadata{
7071
Name: rev.Annotations[labels.BundleNameKey],
7172
Version: rev.Annotations[labels.BundleVersionKey],
@@ -108,6 +109,7 @@ func ApplyBundleWithBoxcutter(apply func(ctx context.Context, contentFS fs.FS, e
108109
labels.PackageNameKey: state.resolvedRevisionMetadata.Package,
109110
labels.BundleVersionKey: state.resolvedRevisionMetadata.Version,
110111
labels.BundleReferenceKey: state.resolvedRevisionMetadata.Image,
112+
labels.SourceDigestKey: CatalogSpecDigest(ext),
111113
}
112114
if state.resolvedRevisionMetadata.Release != nil {
113115
revisionAnnotations[labels.BundleReleaseKey] = *state.resolvedRevisionMetadata.Release

internal/operator-controller/controllers/clusterextension_controller.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,9 +499,10 @@ func clusterExtensionRequestsForCatalog(c client.Reader, logger logr.Logger) crh
499499
}
500500

501501
type RevisionMetadata struct {
502-
RevisionName string
503-
Package string
504-
Image string
502+
RevisionName string
503+
Package string
504+
Image string
505+
SourceDigest string
505506
ocv1.BundleMetadata
506507
Conditions []metav1.Condition
507508
}

0 commit comments

Comments
 (0)