diff --git a/test/conformance/main.go b/test/conformance/main.go
deleted file mode 100644
index a76896a319..0000000000
--- a/test/conformance/main.go
+++ /dev/null
@@ -1,172 +0,0 @@
-package main
-
-import (
-	"bytes"
-	"errors"
-	"flag"
-	"fmt"
-	"io/ioutil"
-	"log"
-	"os"
-	"os/exec"
-	"strings"
-
-	"go.uber.org/multierr"
-	"gopkg.in/yaml.v3"
-)
-
-type CommandExpectation struct {
-	ExitCode *int
-	StdOut   *string
-	StdErr   *string
-}
-
-func (x CommandExpectation) Verify(stdout []byte, stderr []byte, err error) error {
-	exitcode := 0
-	if err != nil {
-		exitError := err.(*exec.ExitError)
-		exitcode = exitError.ExitCode()
-	}
-	if x.ExitCode != nil {
-		if exitcode != *x.ExitCode {
-			return errors.New(fmt.Sprint("unexpected exit code\n  expected: ", *x.ExitCode, "\n  actual:   ", exitcode))
-		}
-	}
-	if x.StdOut != nil {
-		if trim(*x.StdOut, "\n", " ") != trim(string(stdout), "\n", " ") {
-			return errors.New(fmt.Sprint("unexpected stdout\n  expected: ", *x.StdOut, "\n  actual:   ", string(stdout)))
-		}
-	}
-	if x.StdErr != nil {
-		if trim(*x.StdErr, "\n", " ") != trim(string(stderr), "\n", " ") {
-			return errors.New(fmt.Sprint("unexpected stderr\n  expected: ", *x.StdErr, "\n  actual:   ", string(stderr)))
-		}
-	}
-	return nil
-}
-
-type KubectlTest struct {
-	Args   []string
-	Expect *CommandExpectation
-}
-
-func (kt KubectlTest) Run(name string) error {
-	stdout, stderr, err := runCommand("kubectl", kt.Args...)
-	if kt.Expect != nil {
-		if err := kt.Expect.Verify(stdout, stderr, err); err != nil {
-			log.Println("--- STDERR ---")
-			log.Println(string(stderr))
-			log.Println("--- STDOUT ---")
-			log.Println(string(stdout))
-			return err
-		}
-	}
-	return nil
-}
-
-type Test struct {
-	Description string
-	Kubectl     *KubectlTest
-}
-
-func (t Test) Run(name string) error {
-	if t.Kubectl != nil {
-		return t.Kubectl.Run(name)
-	}
-	return errors.New("no test defined")
-}
-
-func trim(in string, s ...string) string {
-	for _, s := range s {
-		in = strings.TrimSuffix(in, s)
-	}
-	return in
-}
-
-func runCommand(name string, arg ...string) ([]byte, []byte, error) {
-	cmd := exec.Command(name, arg...)
-	var stdout, stderr bytes.Buffer
-	cmd.Stdout = &stdout
-	cmd.Stderr = &stderr
-	err := cmd.Run()
-	return stdout.Bytes(), stderr.Bytes(), err
-}
-
-func stdCommand(name string, arg ...string) *exec.Cmd {
-	cmd := exec.Command(name, arg...)
-	cmd.Stdout = os.Stdout
-	cmd.Stderr = os.Stderr
-	return cmd
-}
-
-func makeCluster() error {
-	cmd := stdCommand("make", "kind-create-cluster", "kind-deploy-kyverno")
-	if err := cmd.Run(); err != nil {
-		return err
-	}
-	return nil
-}
-
-func makeDeleteCluster() error {
-	cmd := stdCommand("make", "kind-delete-cluster")
-	if err := cmd.Run(); err != nil {
-		return err
-	}
-	return nil
-}
-
-func loadTests() (map[string][]Test, error) {
-	data, err := ioutil.ReadFile("./test/conformance/tests.yaml")
-	if err != nil {
-		return nil, err
-	}
-	tests := map[string][]Test{}
-	if err := yaml.Unmarshal(data, tests); err != nil {
-		return nil, err
-	}
-	return tests, nil
-}
-
-func main() {
-	var createCluster bool
-	var deleteCluster bool
-	flag.BoolVar(&createCluster, "create-cluster", true, "Set this flag to 'false', to use an existing cluster.")
-	flag.BoolVar(&deleteCluster, "delete-cluster", true, "Set this flag to 'false', to not delete the created cluster.")
-	flag.Parse()
-
-	tests, err := loadTests()
-	if err != nil {
-		log.Fatal(err)
-	}
-	for cluster, tests := range tests {
-		runner := func(name string, tests []Test) error {
-			if err := os.Setenv("KIND_NAME", name); err != nil {
-				return err
-			}
-			if createCluster {
-				if err := makeCluster(); err != nil {
-					return err
-				}
-				if deleteCluster {
-					defer func(name string) {
-						if err := makeDeleteCluster(); err != nil {
-							log.Fatal(err)
-						}
-					}(name)
-				}
-			}
-			var errs []error
-			for _, test := range tests {
-				log.Println("Running test", test.Description, "...")
-				if err := test.Run(name); err != nil {
-					log.Println("FAILED: ", err)
-					errs = append(errs, err)
-				}
-			}
-			return multierr.Combine(errs...)
-		}
-		if err := runner(cluster, tests); err != nil {
-			log.Fatal(err)
-		}
-	}
-}
diff --git a/test/conformance/tests.yaml b/test/conformance/tests.yaml
deleted file mode 100644
index 39fdbf9c6b..0000000000
--- a/test/conformance/tests.yaml
+++ /dev/null
@@ -1,111 +0,0 @@
-validate-fail:
-  - description: Policy with background enabled and referencing clusterRoles in match/exclude statements should be rejected
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/conformance/manifests/validate/fail/background-match-clusterroles.yaml
-      expect:
-        exitcode: 1
-        stderr: >-
-          Error from server: error when creating "test/conformance/manifests/validate/fail/background-match-clusterroles.yaml":
-          admission webhook "validate-policy.kyverno.svc" denied the request: only select variables are allowed in background mode.
-          Set spec.background=false to disable background mode for this policy rule:
-          invalid variable used at path: spec/rules[0]/match/any[0]/clusterRoles 
-  - description: Policy with background enabled and referencing roles in match/exclude statements should be rejected
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/conformance/manifests/validate/fail/background-match-roles.yaml
-      expect:
-        exitcode: 1
-        stderr: >-
-          Error from server: error when creating "test/conformance/manifests/validate/fail/background-match-roles.yaml":
-          admission webhook "validate-policy.kyverno.svc" denied the request: only select variables are allowed in background mode.
-          Set spec.background=false to disable background mode for this policy rule:
-          invalid variable used at path: spec/rules[0]/match/any[0]/roles
-  - description: Policy with background enabled and referencing the var request.roles should be rejected.
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/conformance/manifests/validate/fail/background-vars-roles.yaml
-      expect:
-        exitcode: 1
-        stderr: >-
-          Error from server: error when creating "test/conformance/manifests/validate/fail/background-vars-roles.yaml":
-          admission webhook "validate-policy.kyverno.svc" denied the request: only select variables are allowed in background mode.
-          Set spec.background=false to disable background mode for this policy rule: variable {{request.roles}} is not allowed 
-  - description: Policy with background enabled and referencing the var request.userInfo should be rejected.
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/conformance/manifests/validate/fail/background-vars-userinfo.yaml
-      expect:
-        exitcode: 1
-        stderr: >-
-          Error from server: error when creating "test/conformance/manifests/validate/fail/background-vars-userinfo.yaml":
-          admission webhook "validate-policy.kyverno.svc" denied the request: only select variables are allowed in background mode.
-          Set spec.background=false to disable background mode for this policy rule: variable {{request.userInfo}} is not allowed 
-  - description: Policy with background enabled and referencing the var request.serviceaccountname should be rejected.
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/conformance/manifests/validate/fail/background-vars-serviceaccountname.yaml
-      expect:
-        exitcode: 1
-        stderr: >-
-          Error from server: error when creating "test/conformance/manifests/validate/fail/background-vars-serviceaccountname.yaml":
-          admission webhook "validate-policy.kyverno.svc" denied the request: only select variables are allowed in background mode.
-          Set spec.background=false to disable background mode for this policy rule: variable {{serviceAccountName}} is not allowed 
-  - description: Best practice policies should create fine
-    kubectl:
-      args:
-        - create
-        - -f 
-        - test/best_practices
-      expect:
-        exitcode: 0
-        stdout: |-
-          clusterpolicy.kyverno.io/add-networkpolicy created
-          clusterpolicy.kyverno.io/add-ns-quota created
-          clusterpolicy.kyverno.io/add-safe-to-evict created
-          clusterpolicy.kyverno.io/disallow-bind-mounts created
-          clusterpolicy.kyverno.io/disallow-host-network-port created
-          clusterpolicy.kyverno.io/disallow-host-pid-ipc created
-          clusterpolicy.kyverno.io/disallow-latest-tag created
-          clusterpolicy.kyverno.io/disallow-privileged created
-          clusterpolicy.kyverno.io/disallow-sysctls created
-          clusterpolicy.kyverno.io/require-certain-labels created
-          clusterpolicy.kyverno.io/require-labels created
-          clusterpolicy.kyverno.io/require-pod-requests-limits created
-          clusterpolicy.kyverno.io/select-secrets created
-  - description: Best practice policies should become ready
-    kubectl:
-      args:
-        - wait
-        - --for
-        - condition=ready
-        - cpol
-        - --all
-        - --timeout
-        - 90s
-      expect:
-        exitcode: 0
-        stdout: |-
-          clusterpolicy.kyverno.io/add-networkpolicy condition met
-          clusterpolicy.kyverno.io/add-ns-quota condition met
-          clusterpolicy.kyverno.io/add-safe-to-evict condition met
-          clusterpolicy.kyverno.io/disallow-bind-mounts condition met
-          clusterpolicy.kyverno.io/disallow-host-network-port condition met
-          clusterpolicy.kyverno.io/disallow-host-pid-ipc condition met
-          clusterpolicy.kyverno.io/disallow-latest-tag condition met
-          clusterpolicy.kyverno.io/disallow-privileged condition met
-          clusterpolicy.kyverno.io/disallow-sysctls condition met
-          clusterpolicy.kyverno.io/require-certain-labels condition met
-          clusterpolicy.kyverno.io/require-labels condition met
-          clusterpolicy.kyverno.io/require-pod-requests-limits condition met
-          clusterpolicy.kyverno.io/select-secrets condition met