Skip to content

Commit c65f599

Browse files
committed
fixup: create relevant ns in fake cluster
Signed-off-by: Janelle Law <[email protected]>
1 parent bd78233 commit c65f599

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

pkg/dryrun/dryrun.go

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,32 @@ func (d *DryRunner) readFromCluster(
690690
return nil, errors.New("no object templates found in policy")
691691
}
692692

693-
return resolveObjectTemplates(ctx, cfgPolicy, realClusterRec, tmplResolver)
693+
// Copy relevant objects to inputResources
694+
inputResources, err := resolveObjectTemplates(ctx, cfgPolicy, realClusterRec, tmplResolver)
695+
if err != nil {
696+
return nil, err
697+
}
698+
699+
// Copy relevant namespaces to inputResources
700+
relevantNamespaces, err := realClusterRec.SelectorReconciler.Get(
701+
cfgPolicy.Namespace, cfgPolicy.Name, cfgPolicy.Spec.NamespaceSelector)
702+
if err != nil {
703+
return nil, err
704+
}
705+
706+
for _, ns := range relevantNamespaces {
707+
inputResources = append(inputResources, &unstructured.Unstructured{
708+
Object: map[string]interface{}{
709+
"apiVersion": "v1",
710+
"kind": "Namespace",
711+
"metadata": map[string]interface{}{
712+
"name": ns,
713+
},
714+
},
715+
})
716+
}
717+
718+
return inputResources, nil
694719
}
695720

696721
// FIXME some clients have write access to the cluster, but we want to restrict them to read-only?
@@ -777,7 +802,7 @@ func resolveObjectTemplatesRaw(
777802
}
778803

779804
if !templates.HasTemplate(objRawBytes, "", true) {
780-
err := json.Unmarshal(objRawBytes, &cfgPolicy.Spec.ObjectTemplates)
805+
err := k8syaml.Unmarshal(objRawBytes, &cfgPolicy.Spec.ObjectTemplates)
781806
if err != nil {
782807
return fmt.Errorf("failed to parse object-templates-raw: %w", err)
783808
}

0 commit comments

Comments
 (0)