From 2bba55e211b9fe7ed8fbc34f4b1845a4a0c16959 Mon Sep 17 00:00:00 2001 From: Shivkumar Dudhani Date: Mon, 3 Feb 2020 11:59:34 -0800 Subject: [PATCH] substitute variable values on a copy of policy rule (#669) --- pkg/generate/generate.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/generate/generate.go b/pkg/generate/generate.go index 3035b53afc..dcf22d284d 100644 --- a/pkg/generate/generate.go +++ b/pkg/generate/generate.go @@ -266,7 +266,10 @@ func handleData(ruleName string, generateRule kyverno.Generation, client *dclien return nil, NewViolation(ruleName, fmt.Errorf("path not present in generate data: %s", invalidPaths)) } - newData := variables.SubstituteVariables(ctx, generateRule.Data) + //work on copy + copyDataTemp := reflect.Indirect(reflect.ValueOf(generateRule.Data)) + copyData := copyDataTemp.Interface() + newData := variables.SubstituteVariables(ctx, copyData) // check if resource exists obj, err := client.GetResource(generateRule.Kind, generateRule.Namespace, generateRule.Name)