diff --git a/pkg/engine/variables/variables_test.go b/pkg/engine/variables/variables_test.go index e01bf4f820..bb88cc13ac 100644 --- a/pkg/engine/variables/variables_test.go +++ b/pkg/engine/variables/variables_test.go @@ -85,7 +85,7 @@ func Test_variablesub1(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -175,7 +175,7 @@ func Test_variablesub_multiple(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -262,7 +262,7 @@ func Test_variablesubstitution(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -323,7 +323,7 @@ func Test_variableSubstitutionValue(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -381,7 +381,7 @@ func Test_variableSubstitutionValueOperatorNotEqual(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -440,7 +440,7 @@ func Test_variableSubstitutionValueFail(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err == nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err == nil { t.Log("expected to fails") t.Fail() } @@ -498,7 +498,7 @@ func Test_variableSubstitutionObject(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) @@ -562,7 +562,7 @@ func Test_variableSubstitutionObjectOperatorNotEqualFail(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err == nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err == nil { t.Error(err) } @@ -621,7 +621,7 @@ func Test_variableSubstitutionMultipleObject(t *testing.T) { t.Error(err) } - if _, err := SubstituteVars(log.Log, ctx, patternCopy); err != nil { + if patternCopy, err = SubstituteVars(log.Log, ctx, patternCopy); err != nil { t.Error(err) } resultRaw, err := json.Marshal(patternCopy) diff --git a/pkg/generate/generate.go b/pkg/generate/generate.go index 9f3edc4bc8..aab5ff1ae4 100644 --- a/pkg/generate/generate.go +++ b/pkg/generate/generate.go @@ -188,9 +188,12 @@ func applyRule(log logr.Logger, client *dclient.Client, rule kyverno.Rule, resou // format : {{ results in error and rule is not applied // - valid variables are replaced with the values - if _, err := variables.SubstituteVars(log, ctx, genUnst.Object); err != nil { + object, err := variables.SubstituteVars(log, ctx, genUnst.Object) + if err != nil { return noGenResource, err } + genUnst.Object, _ = object.(map[string]interface{}) + genKind, _, err := unstructured.NestedString(genUnst.Object, "kind") if err != nil { return noGenResource, err