Skip to content

Commit e64ec1d

Browse files
committed
Adds function for parsing list
1 parent f7388b7 commit e64ec1d

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

pkg/patterns/declarative/reconciler.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package declarative
1919
import (
2020
"context"
2121
"fmt"
22+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
2223
"path/filepath"
2324
"strings"
2425

@@ -130,6 +131,13 @@ func (r *Reconciler) reconcileExists(ctx context.Context, name types.NamespacedN
130131
}
131132
}()
132133

134+
err = parseListKind(objects)
135+
136+
if err != nil{
137+
log.Error(err, "Parsing list kind")
138+
return reconcile.Result{}, fmt.Errorf("error parsing list kind: %v", err)
139+
}
140+
133141
err = r.injectOwnerRef(ctx, instance, objects)
134142
if err != nil {
135143
return reconcile.Result{}, err
@@ -403,3 +411,30 @@ func (r *Reconciler) IsKustomizeOptionUsed() bool {
403411
func (r *Reconciler) SetSink(sink Sink) {
404412
r.options.sink = sink
405413
}
414+
415+
func parseListKind(infos *manifest.Objects) error{
416+
for i, item := range infos.Items{
417+
if item.Kind == "List" {
418+
fmt.Println("haaa!")
419+
obj := item.UnstructuredObject()
420+
421+
err := obj.EachListItem(func(obj runtime.Object) error{
422+
castItem := obj.(*unstructured.Unstructured)
423+
newObj, err := manifest.NewObject(castItem)
424+
if err != nil {
425+
return err
426+
}
427+
infos.Items = append(infos.Items, newObj)
428+
return nil
429+
})
430+
431+
if err != nil {
432+
return err
433+
}
434+
435+
infos.Items = append(infos.Items[:i], infos.Items[i+1:]...)
436+
}
437+
}
438+
439+
return nil
440+
}

0 commit comments

Comments
 (0)