Skip to content

Commit 70a823b

Browse files
committed
Simplify List flattening logic
Refactor to ensure that we build and flatten the objects in one place, simplifying execution. The intermediate call to VersionCheck (should) prefer flattened objects.
1 parent d42ab25 commit 70a823b

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

pkg/patterns/declarative/reconciler.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,14 @@ func (r *Reconciler) reconcileExists(ctx context.Context, name types.NamespacedN
237237
log.Error(err, "building deployment objects")
238238
return statusInfo, fmt.Errorf("error building deployment objects: %v", err)
239239
}
240-
statusInfo.Manifest = objects
240+
241+
objects, err = flattenListObjects(objects)
242+
if err != nil {
243+
log.Error(err, "flattening list objects")
244+
return statusInfo, fmt.Errorf("error flattening list objects: %w", err)
245+
}
241246
log.WithValues("objects", fmt.Sprintf("%d", len(objects.Items))).Info("built deployment objects")
247+
statusInfo.Manifest = objects
242248

243249
if r.options.status != nil {
244250
isValidVersion, err := r.options.status.VersionCheck(ctx, instance, objects)
@@ -255,13 +261,6 @@ func (r *Reconciler) reconcileExists(ctx context.Context, name types.NamespacedN
255261
}
256262
}
257263

258-
objects, err = parseListKind(objects)
259-
if err != nil {
260-
log.Error(err, "Parsing list kind")
261-
return statusInfo, fmt.Errorf("error parsing list kind: %v", err)
262-
}
263-
statusInfo.Manifest = objects
264-
265264
err = r.setNamespaces(ctx, instance, objects)
266265
if err != nil {
267266
return statusInfo, err
@@ -711,7 +710,9 @@ func (r *Reconciler) AddHook(hook Hook) {
711710
r.options.hooks = append(r.options.hooks, hook)
712711
}
713712

714-
func parseListKind(infos *manifest.Objects) (*manifest.Objects, error) {
713+
// flattenListObjects will replace any List objects in the manifest with the items,
714+
// "flattening" the objects.
715+
func flattenListObjects(infos *manifest.Objects) (*manifest.Objects, error) {
715716
var out []*manifest.Object
716717

717718
for _, item := range infos.Items {

0 commit comments

Comments
 (0)