From 9b2331fedc2b50cecdd79469cb1835b4cee72aff Mon Sep 17 00:00:00 2001
From: Prateek Pandey <prateek.pandey@nirmata.com>
Date: Tue, 15 Nov 2022 18:02:11 +0530
Subject: [PATCH] refactor: optimise and use kuttl TestStep with tests (#5328)

* refactor: use kuttl teststep with tests

Signed-off-by: prateekpandey14 <prateek.pandey@nirmata.com>

* optimize kuttl generate test

Signed-off-by: prateekpandey14 <prateek.pandey@nirmata.com>

Signed-off-by: prateekpandey14 <prateek.pandey@nirmata.com>
---
 .../01-cluster-policy.yaml                    |  7 ++++
 .../02-assert.yaml                            | 11 ------
 .../02-trigger.yaml                           |  6 ++++
 ...-assert.yaml => cluster-policy-ready.yaml} |  2 +-
 ...{01-manifests.yaml => cluster-policy.yaml} | 26 ++------------
 .../manifests.yaml                            | 21 +++++++++++
 .../{02-ns.yaml => ns.yaml}                   |  2 +-
 .../resource-assert.yaml                      | 36 +++++++++++++++++++
 .../cluster-policy-ready.yaml                 |  4 +--
 .../cluster-policy.yaml                       |  6 ++--
 .../resource-assert.yaml                      | 10 +++---
 .../synchronized-target.yaml                  |  5 ++-
 .../cpol-data-sync-create/01-manifests.yaml   |  4 +--
 .../01-manifests.yaml                         |  4 +--
 14 files changed, 89 insertions(+), 55 deletions(-)
 create mode 100644 test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-cluster-policy.yaml
 delete mode 100644 test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-assert.yaml
 create mode 100644 test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-trigger.yaml
 rename test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/{01-assert.yaml => cluster-policy-ready.yaml} (78%)
 rename test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/{01-manifests.yaml => cluster-policy.yaml} (57%)
 create mode 100644 test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/manifests.yaml
 rename test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/{02-ns.yaml => ns.yaml} (73%)
 create mode 100644 test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/resource-assert.yaml

diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-cluster-policy.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-cluster-policy.yaml
new file mode 100644
index 0000000000..470e9d846a
--- /dev/null
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-cluster-policy.yaml
@@ -0,0 +1,7 @@
+apiVersion: kuttl.dev/v1beta1
+kind: TestStep
+apply:
+- manifests.yaml
+- cluster-policy.yaml
+assert:
+- cluster-policy-ready.yaml
\ No newline at end of file
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-assert.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-assert.yaml
deleted file mode 100644
index ae058e2b30..0000000000
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-assert.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: v1
-kind: Secret
-metadata:
-  name: image-secret
-  namespace: prod
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: bootstap-config
-  namespace: prod
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-trigger.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-trigger.yaml
new file mode 100644
index 0000000000..c2962d7553
--- /dev/null
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-trigger.yaml
@@ -0,0 +1,6 @@
+apiVersion: kuttl.dev/v1beta1
+kind: TestStep
+apply:
+  - ns.yaml
+assert:
+  - resource-assert.yaml
\ No newline at end of file
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-assert.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy-ready.yaml
similarity index 78%
rename from test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-assert.yaml
rename to test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy-ready.yaml
index 0bd6979f59..aa49cef010 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-assert.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy-ready.yaml
@@ -1,7 +1,7 @@
 apiVersion: kyverno.io/v1
 kind: ClusterPolicy
 metadata:
-  name: sync-secret-with-multi-clone
+  name: sync-with-multi-clone
 status:
   conditions:
   - reason: Succeeded
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-manifests.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy.yaml
similarity index 57%
rename from test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-manifests.yaml
rename to test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy.yaml
index d4b52d937e..9f17f75df7 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/01-manifests.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/cluster-policy.yaml
@@ -1,9 +1,9 @@
 apiVersion: kyverno.io/v1
 kind: ClusterPolicy
 metadata:
-  name: sync-secret-with-multi-clone
+  name: sync-with-multi-clone
 spec:
-  generateExistingOnPolicyUpdate: true
+  generateExistingOnPolicyUpdate: false
   rules:
   - name: sync-secret
     match:
@@ -30,25 +30,3 @@ spec:
         selector:
           matchLabels:
             allowedToBeCloned: "true"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: bootstap-config
-  namespace: default
-  labels:
-    allowedToBeCloned:  "true"
-data:
-  initial_lives: "15"
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: image-secret
-  namespace: default
-  labels:
-    allowedToBeCloned:  "true"
-type: kubernetes.io/basic-auth
-stringData:
-  username: admin
-  password: t0p-Secret-super
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/manifests.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/manifests.yaml
new file mode 100644
index 0000000000..2761bf800e
--- /dev/null
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/manifests.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: bootstrap-config
+  namespace: default
+  labels:
+    allowedToBeCloned:  "true"
+data:
+  initial_lives: "15"
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: image-secret
+  namespace: default
+  labels:
+    allowedToBeCloned:  "true"
+type: kubernetes.io/basic-auth
+stringData:
+  username: admin
+  password: t0p-Secret-super
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-ns.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/ns.yaml
similarity index 73%
rename from test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-ns.yaml
rename to test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/ns.yaml
index f1ded585a8..102035c1c4 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/02-ns.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/ns.yaml
@@ -1,4 +1,4 @@
 apiVersion: v1
 kind: Namespace
 metadata:
-  name: prod
\ No newline at end of file
+  name: prod-1
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/resource-assert.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/resource-assert.yaml
new file mode 100644
index 0000000000..3747a0720a
--- /dev/null
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-create/resource-assert.yaml
@@ -0,0 +1,36 @@
+---
+apiVersion: v1
+data:
+  password: dDBwLVNlY3JldC1zdXBlcg==
+  username: YWRtaW4=
+kind: Secret
+metadata:
+  labels:
+    allowedToBeCloned: "true"
+    app.kubernetes.io/managed-by: kyverno
+    generate.kyverno.io/clone-policy-name: sync-with-multi-clone
+    kyverno.io/generated-by-kind: Namespace
+    kyverno.io/generated-by-name: prod-1
+    kyverno.io/generated-by-namespace: ""
+    policy.kyverno.io/policy-name: sync-with-multi-clone
+    policy.kyverno.io/synchronize: enable
+  name: image-secret
+  namespace: prod-1
+type: kubernetes.io/basic-auth
+---
+apiVersion: v1
+data:
+  initial_lives: "15"
+kind: ConfigMap
+metadata:
+  labels:
+    allowedToBeCloned: "true"
+    app.kubernetes.io/managed-by: kyverno
+    generate.kyverno.io/clone-policy-name: sync-with-multi-clone
+    kyverno.io/generated-by-kind: Namespace
+    kyverno.io/generated-by-name: prod-1
+    kyverno.io/generated-by-namespace: ""
+    policy.kyverno.io/policy-name: sync-with-multi-clone
+    policy.kyverno.io/synchronize: enable
+  name: bootstrap-config
+  namespace: prod-1
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy-ready.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy-ready.yaml
index c0f5e53d43..d0a67c43a0 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy-ready.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy-ready.yaml
@@ -1,9 +1,9 @@
 apiVersion: kyverno.io/v1
 kind: ClusterPolicy
 metadata:
-  name: sync-secret-with-multi-clone
+  name: sync-with-multi-clone-update
 status:
   conditions:
   - reason: Succeeded
     status: "True"
-    type: Ready
\ No newline at end of file
+    type: Ready
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy.yaml
index 7b1b18624b..be6531b2e3 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/cluster-policy.yaml
@@ -1,9 +1,9 @@
 apiVersion: kyverno.io/v1
 kind: ClusterPolicy
 metadata:
-  name: sync-secret-with-multi-clone
+  name: sync-with-multi-clone-update
 spec:
-  generateExistingOnPolicyUpdate: true
+  generateExistingOnPolicyUpdate: false
   rules:
   - name: sync-secret
     match:
@@ -29,4 +29,4 @@ spec:
           - v1/ConfigMap
         selector:
           matchLabels:
-            allowedToBeCloned: "true"
\ No newline at end of file
+            allowedToBeCloned: "true"
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/resource-assert.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/resource-assert.yaml
index 4dfb4a4e59..24bc5ec2f0 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/resource-assert.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/resource-assert.yaml
@@ -8,12 +8,11 @@ metadata:
   labels:
     allowedToBeCloned: "true"
     app.kubernetes.io/managed-by: kyverno
-    generate.kyverno.io/clone-policy-name: sync-secret-with-multi-clone
-    kyverno.io/background-gen-rule: sync-secret
+    generate.kyverno.io/clone-policy-name: sync-with-multi-clone-update
     kyverno.io/generated-by-kind: Namespace
     kyverno.io/generated-by-name: prod
     kyverno.io/generated-by-namespace: ""
-    policy.kyverno.io/policy-name: sync-secret-with-multi-clone
+    policy.kyverno.io/policy-name: sync-with-multi-clone-update
     policy.kyverno.io/synchronize: enable
   name: image-secret
   namespace: prod
@@ -27,12 +26,11 @@ metadata:
   labels:
     allowedToBeCloned: "true"
     app.kubernetes.io/managed-by: kyverno
-    generate.kyverno.io/clone-policy-name: sync-secret-with-multi-clone
-    kyverno.io/background-gen-rule: sync-secret
+    generate.kyverno.io/clone-policy-name: sync-with-multi-clone-update
     kyverno.io/generated-by-kind: Namespace
     kyverno.io/generated-by-name: prod
     kyverno.io/generated-by-namespace: ""
-    policy.kyverno.io/policy-name: sync-secret-with-multi-clone
+    policy.kyverno.io/policy-name: sync-with-multi-clone-update
     policy.kyverno.io/synchronize: enable
   name: bootstrap-config
   namespace: prod
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/synchronized-target.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/synchronized-target.yaml
index 78d1ebc541..9f15974599 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/synchronized-target.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/clone/sync/cpol-clone-list-sync-update/synchronized-target.yaml
@@ -7,12 +7,11 @@ metadata:
   labels:
     allowedToBeCloned: "true"
     app.kubernetes.io/managed-by: kyverno
-    generate.kyverno.io/clone-policy-name: sync-secret-with-multi-clone
-    kyverno.io/background-gen-rule: sync-secret
+    generate.kyverno.io/clone-policy-name: sync-with-multi-clone-update
     kyverno.io/generated-by-kind: Namespace
     kyverno.io/generated-by-name: prod
     kyverno.io/generated-by-namespace: ""
-    policy.kyverno.io/policy-name: sync-secret-with-multi-clone
+    policy.kyverno.io/policy-name: sync-with-multi-clone-update
     policy.kyverno.io/synchronize: enable
   name: bootstrap-config
   namespace: prod
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-create/01-manifests.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-create/01-manifests.yaml
index f029bc421a..e1e1779aec 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-create/01-manifests.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-create/01-manifests.yaml
@@ -3,7 +3,7 @@ kind: ClusterPolicy
 metadata:
   name: zk-kafka-address
 spec:
-  generateExistingOnPolicyUpdate: true
+  generateExistingOnPolicyUpdate: false
   rules:
   - name: k-kafka-address
     match:
@@ -32,4 +32,4 @@ spec:
             somekey: somevalue
         data:
           ZK_ADDRESS: "192.168.10.10:2181,192.168.10.11:2181,192.168.10.12:2181"
-          KAFKA_ADDRESS: "192.168.10.13:9092,192.168.10.14:9092,192.168.10.15:9092"
\ No newline at end of file
+          KAFKA_ADDRESS: "192.168.10.13:9092,192.168.10.14:9092,192.168.10.15:9092"
diff --git a/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-delete-policy/01-manifests.yaml b/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-delete-policy/01-manifests.yaml
index f029bc421a..e1e1779aec 100644
--- a/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-delete-policy/01-manifests.yaml
+++ b/test/conformance/kuttl/generate/clusterpolicy/standard/data/sync/cpol-data-sync-delete-policy/01-manifests.yaml
@@ -3,7 +3,7 @@ kind: ClusterPolicy
 metadata:
   name: zk-kafka-address
 spec:
-  generateExistingOnPolicyUpdate: true
+  generateExistingOnPolicyUpdate: false
   rules:
   - name: k-kafka-address
     match:
@@ -32,4 +32,4 @@ spec:
             somekey: somevalue
         data:
           ZK_ADDRESS: "192.168.10.10:2181,192.168.10.11:2181,192.168.10.12:2181"
-          KAFKA_ADDRESS: "192.168.10.13:9092,192.168.10.14:9092,192.168.10.15:9092"
\ No newline at end of file
+          KAFKA_ADDRESS: "192.168.10.13:9092,192.168.10.14:9092,192.168.10.15:9092"