@@ -19,10 +19,11 @@ package declarative
19
19
import (
20
20
"context"
21
21
"fmt"
22
- "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
23
22
"path/filepath"
24
23
"strings"
25
24
25
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
26
+
26
27
"k8s.io/apimachinery/pkg/api/errors"
27
28
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28
29
"k8s.io/apimachinery/pkg/runtime"
@@ -131,9 +132,9 @@ func (r *Reconciler) reconcileExists(ctx context.Context, name types.NamespacedN
131
132
}
132
133
}()
133
134
134
- err = parseListKind (objects )
135
+ objects , err = parseListKind (objects )
135
136
136
- if err != nil {
137
+ if err != nil {
137
138
log .Error (err , "Parsing list kind" )
138
139
return reconcile.Result {}, fmt .Errorf ("error parsing list kind: %v" , err )
139
140
}
@@ -412,29 +413,36 @@ func (r *Reconciler) SetSink(sink Sink) {
412
413
r .options .sink = sink
413
414
}
414
415
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
- })
416
+ func parseListKind (infos * manifest.Objects ) (* manifest.Objects , error ) {
417
+ var out []* manifest.Object
418
+
419
+ for _ , item := range infos .Items {
420
+ if item .Group == "v1" && item .Kind == "List" {
421
+ itemObj := item .UnstructuredObject ()
430
422
423
+ err := itemObj .EachListItem (func (obj runtime.Object ) error {
424
+ itemUnstructured := obj .(* unstructured.Unstructured )
425
+ newObj , err := manifest .NewObject (itemUnstructured )
431
426
if err != nil {
432
427
return err
433
428
}
429
+ out = append (out , newObj )
430
+ return nil
431
+ })
434
432
435
- infos .Items = append (infos .Items [:i ], infos .Items [i + 1 :]... )
433
+ if err != nil {
434
+ return nil , err
436
435
}
436
+ } else {
437
+ out = append (out , item )
437
438
}
439
+ }
438
440
439
- return nil
441
+ ret := manifest.Objects {
442
+ Items : out ,
443
+ Blobs : infos .Blobs ,
444
+ Path : infos .Path ,
445
+ }
446
+
447
+ return & ret , nil
440
448
}
0 commit comments