From 3f965a245b7aac4d1fcb7c4d7f859ad2a36b09d7 Mon Sep 17 00:00:00 2001 From: shivkumar dudhani Date: Fri, 10 Jan 2020 08:01:18 -0800 Subject: [PATCH 1/2] add check for clone --- pkg/generate/generate.go | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/pkg/generate/generate.go b/pkg/generate/generate.go index 2a120c605f..f71120b94c 100644 --- a/pkg/generate/generate.go +++ b/pkg/generate/generate.go @@ -219,17 +219,20 @@ func variableSubsitutionForAttributes(gen kyverno.Generation, ctx context.EvalIn if newNamespace, ok := newNamespaceVar.(string); ok { gen.Namespace = newNamespace } - // Clone - cloneName := gen.Clone.Name - cloneNamespace := gen.Clone.Namespace - newcloneNameVar := variables.SubstituteVariables(ctx, cloneName) - if newcloneName, ok := newcloneNameVar.(string); ok { - gen.Clone.Name = newcloneName - } - newcloneNamespaceVar := variables.SubstituteVariables(ctx, cloneNamespace) - if newcloneNamespace, ok := newcloneNamespaceVar.(string); ok { - gen.Clone.Namespace = newcloneNamespace + if gen.Clone != (kyverno.CloneFrom{}) { + // Clone + cloneName := gen.Clone.Name + cloneNamespace := gen.Clone.Namespace + + newcloneNameVar := variables.SubstituteVariables(ctx, cloneName) + if newcloneName, ok := newcloneNameVar.(string); ok { + gen.Clone.Name = newcloneName + } + newcloneNamespaceVar := variables.SubstituteVariables(ctx, cloneNamespace) + if newcloneNamespace, ok := newcloneNamespaceVar.(string); ok { + gen.Clone.Namespace = newcloneNamespace + } } return gen } From 13dbc1f2bad23a232e4dc2203a881cf56625574c Mon Sep 17 00:00:00 2001 From: Shivkumar Dudhani Date: Fri, 10 Jan 2020 08:02:41 -0800 Subject: [PATCH 2/2] update doc (#608) * update doc * update variable name --- README.md | 2 ++ documentation/writing-policies.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a7f8c4e01d..65f79665d2 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,8 @@ spec: generate: kind: ConfigMap name: zk-kafka-address + # create the resource in the new namespace + namespace: "{{request.object.name}}" data: kind: ConfigMap data: diff --git a/documentation/writing-policies.md b/documentation/writing-policies.md index 17d6932599..60ccf5beb2 100644 --- a/documentation/writing-policies.md +++ b/documentation/writing-policies.md @@ -76,7 +76,7 @@ spec : - key: name # compares (key operator value) operator: Equal value: name # constant "name" == "name" - - key: "{{serviceAccount}}" # refer to a pre-defined variable serviceAccount + - key: "{{serviceAccountName}}" # refer to a pre-defined variable serviceAccountName operator: NotEqual value: "user1" # if service # Each rule can contain a single validate, mutate, or generate directive