Skip to content

Commit 27bdc11

Browse files
authored
Merge pull request #135 from justinsb/dont_transform_twice_with_kustomize
Don't run transform twice on kustomize inputs
2 parents 2cc1e5a + d42bb32 commit 27bdc11

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

pkg/patterns/declarative/reconciler.go

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -299,13 +299,21 @@ func (r *Reconciler) BuildDeploymentObjectsWithFs(ctx context.Context, name type
299299
}
300300

301301
// 3. Parse manifest into objects
302-
// 4. Perform object transformations
303-
objects, err := r.parseAndTransformManifest(ctx, instance, manifestStr)
302+
objects, err := r.parseManifest(ctx, instance, manifestStr)
304303
if err != nil {
305-
log.Error(err, "error parsing and transforming manifest")
304+
log.Error(err, "error parsing manifest")
306305
return nil, err
307306
}
308307

308+
// 4. Perform object transformations
309+
// (unless kustomize is in use, in which case we transform after running kustomize)
310+
if !r.IsKustomizeOptionUsed() {
311+
if err := r.transformManifest(ctx, instance, objects); err != nil {
312+
log.Error(err, "error transforming manifest")
313+
return nil, err
314+
}
315+
}
316+
309317
if fs != nil {
310318
// 5. Write objects to filesystem for kustomizing
311319
for _, item := range objects.Items {
@@ -343,11 +351,16 @@ func (r *Reconciler) BuildDeploymentObjectsWithFs(ctx context.Context, name type
343351
return nil, fmt.Errorf("error converting kustomize output to yaml: %v", err)
344352
}
345353

346-
objects, err := r.parseAndTransformManifest(ctx, instance, string(manifestYaml))
354+
objects, err := r.parseManifest(ctx, instance, string(manifestYaml))
347355
if err != nil {
348356
log.Error(err, "creating final manifest yaml")
349357
return nil, err
350358
}
359+
360+
if err := r.transformManifest(ctx, instance, objects); err != nil {
361+
log.Error(err, "error transforming manifest")
362+
return nil, err
363+
}
351364
manifestObjects.Items = objects.Items
352365
}
353366

@@ -357,8 +370,8 @@ func (r *Reconciler) BuildDeploymentObjectsWithFs(ctx context.Context, name type
357370
return manifestObjects, nil
358371
}
359372

360-
// parseAndTransformManifest parses the manifest into objects and adds any transformations as required
361-
func (r *Reconciler) parseAndTransformManifest(ctx context.Context, instance DeclarativeObject, manifestStr string) (*manifest.Objects, error) {
373+
// parseManifest parses the manifest into objects
374+
func (r *Reconciler) parseManifest(ctx context.Context, instance DeclarativeObject, manifestStr string) (*manifest.Objects, error) {
362375
log := log.Log
363376

364377
objects, err := manifest.ParseObjects(ctx, manifestStr)
@@ -367,6 +380,11 @@ func (r *Reconciler) parseAndTransformManifest(ctx context.Context, instance Dec
367380
return nil, err
368381
}
369382

383+
return objects, nil
384+
}
385+
386+
// transformManifest runs any transformations as required
387+
func (r *Reconciler) transformManifest(ctx context.Context, instance DeclarativeObject, objects *manifest.Objects) error {
370388
transforms := r.options.objectTransformations
371389
if r.options.labelMaker != nil {
372390
transforms = append(transforms, AddLabels(r.options.labelMaker(ctx, instance)))
@@ -375,10 +393,10 @@ func (r *Reconciler) parseAndTransformManifest(ctx context.Context, instance Dec
375393
for _, t := range transforms {
376394
err := t(ctx, instance, objects)
377395
if err != nil {
378-
return nil, err
396+
return err
379397
}
380398
}
381-
return objects, nil
399+
return nil
382400
}
383401

384402
// loadRawManifest loads the raw manifest YAML from the repository

0 commit comments

Comments
 (0)