Repository: kumahq/kuma
Pull request #1861 (2021-04-21 11:28:03)

chore(*) transparent proxy improvements (backport #1852)
This is an automatic backport of pull request #1852 done by [Mergify](https://mergify.io).

Cherry-pick of 19a906795d47ff0006ab62e12211b48204ad5a0d has failed:
```
On branch mergify/bp/release-1.1/pr-1852
Your branch is up to date with 'origin/release-1.1'.

You are currently cherry-picking commit 19a906795.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   app/kumactl/cmd/completion/testdata/bash.golden
	modified:   app/kumactl/cmd/completion/testdata/zsh.golden
	modified:   app/kumactl/cmd/install/context/install_control_plane_context.go
	modified:   app/kumactl/cmd/install/install_transparent_proxy.go
	modified:   app/kumactl/cmd/install/install_transparent_proxy_test.go
	modified:   app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml
	modified:   app/kumactl/cmd/uninstall/uninstall_transparent_proxy.go
	modified:   deployments/charts/kuma/README.md
	modified:   deployments/charts/kuma/values.yaml
	modified:   docs/cmd/kumactl/HELP.md
	modified:   pkg/plugins/runtime/k8s/webhooks/injector/injector.go
	modified:   pkg/plugins/runtime/k8s/webhooks/injector/testdata/inject.25.golden.yaml
	modified:   pkg/transparentproxy/config/config.go
	modified:   pkg/transparentproxy/istio/istio.go
	modified:   pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/cmd/root.go
	modified:   pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/config/config.go
	modified:   pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/root.go
	modified:   pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/run.go
	modified:   pkg/transparentproxy/istio/tools/istio-iptables/pkg/config/config.go
	modified:   pkg/transparentproxy/istio/tools/istio-iptables/pkg/constants/constants.go
	modified:   pkg/transparentproxy/istio/tools/istio-iptables/pkg/dependencies/implementation.go
	modified:   pkg/transparentproxy/transparentproxy.go
	modified:   test/e2e/deploy/kuma_deploy_universal_transparent_proxy_test.go

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go

```

To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

---


<details>
<summary>Mergify commands and options</summary>

<br />

More conditions and actions can be found in the [documentation](https://docs.mergify.io/).

You can also trigger Mergify actions by commenting on this pull request:

- `@Mergifyio refresh` will re-evaluate the rules
- `@Mergifyio rebase` will rebase this PR on its base branch
- `@Mergifyio update` will merge the base branch into this PR
- `@Mergifyio backport <destination>` will backport this PR on `<destination>` branch

Additionally, on Mergify [dashboard](https://dashboard.mergify.io/) you can:

- look at your merge queues
- generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.io/
</details>



Patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index a94fdaf1a..9fe7e78cc 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -24,13 +24,11 @@ commands:
 reusable:
 
   constants:
-    - &go_version "1.15.11"
-    - &go16_version "1.16.3"
+    - &go_version "1.16.3"
 
   docker_images:
-    - &golang_image "golang:1.15.11"
-    - &golang16_image "golang:1.16.3"
-    - &circleci_golang_image "circleci/golang:1.15.11"
+    - &golang_image "golang:1.16.3"
+    - &circleci_golang_image "circleci/golang:1.16.3"
 
   vm_images:
   - &ubuntu_vm_image "ubuntu-2004:202101-01"
@@ -82,14 +80,6 @@ executors:
       GO111MODULE: "on"
     working_directory: /go/src/github.com/kumahq/kuma
 
-  golang16:
-    docker:
-      - image: *golang16_image
-    environment:
-      GO_VERSION: *go16_version
-      GO111MODULE: "on"
-    working_directory: /go/src/github.com/kumahq/kuma
-
   remote-docker:
     docker:
     - image: *circleci_golang_image
@@ -476,7 +466,7 @@ jobs:
         command: make check
 
   api_check:
-    executor: golang16
+    executor: golang
     steps:
     - checkout
     - restore_cache:
@@ -532,7 +522,7 @@ jobs:
       target:
         description: The integration make target.
         type: string
-        default: test
+        default: integration
     environment:
       GOPATH: /home/circleci/.go-kuma-go
     steps:
@@ -875,7 +865,7 @@ workflows:
         requires:
         - check
         # custom parameters
-        target: -j1 test
+        target: -j1 integration test
     - images:
         <<: *commit_workflow_filters
         requires:
diff --git a/api/Makefile b/api/Makefile
index 537028a8a..a8298a982 100644
--- a/api/Makefile
+++ b/api/Makefile
@@ -124,13 +124,13 @@ install/protobuf-wellknown-types:
 		&& echo "Protobuf well-known types $(PROTOC_VERSION) have been installed at $(PROTOBUF_WKT_DIR)" ; fi
 
 install/protoc-gen-go:
-	go get github.com/golang/protobuf/protoc-gen-go@$(GOLANG_PROTOBUF_VERSION)
+	go install github.com/golang/protobuf/protoc-gen-go@$(GOLANG_PROTOBUF_VERSION)
 
 install/protoc-gen-kumadoc:
-	go get github.com/kumahq/protoc-gen-kumadoc@$(KUMADOC_VERSION)
+	go install github.com/kumahq/protoc-gen-kumadoc@$(KUMADOC_VERSION)
 
 install/protoc-gen-validate:
-	go get github.com/envoyproxy/protoc-gen-validate@$(PROTOC_PGV_VERSION)
+	go install github.com/envoyproxy/protoc-gen-validate@$(PROTOC_PGV_VERSION)
 
 install/data-plane-api:
 	go get github.com/envoyproxy/data-plane-api@$(DATAPLANE_API_LATEST_VERSION)
diff --git a/api/go.mod b/api/go.mod
index a78d6532f..c300a3cd6 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -1,12 +1,16 @@
 module github.com/kumahq/kuma/api
 
-go 1.15
+go 1.16
 
 require (
+	github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd // indirect
+	github.com/envoyproxy/data-plane-api v0.0.0-20210105195927-01fb099f5a86 // indirect
 	github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad
 	github.com/envoyproxy/protoc-gen-validate v0.4.1
 	github.com/ghodss/yaml v1.0.0
 	github.com/golang/protobuf v1.4.3
+	github.com/googleapis/googleapis v0.0.0-20210422004218-6b711581c9a6 // indirect
+	github.com/kumahq/protoc-gen-kumadoc v0.1.7
 	github.com/onsi/ginkgo v1.15.2
 	github.com/onsi/gomega v1.11.0
 	github.com/pkg/errors v0.9.1
diff --git a/api/go.sum b/api/go.sum
index c51c0daa6..8f0ce535c 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -1,11 +1,18 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
+github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
 github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd h1:Hy1EFDPdhjoQGPJVuGIP1CwjCHSRN3+pb821CcbPLC4=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd/go.mod h1:HNVadOiXCy7Jk3R2knJ+qm++zkncJxxBMpjdGgJ+UJc=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/envoyproxy/data-plane-api v0.0.0-20210105195927-01fb099f5a86 h1:GibenyA3M49ofEaWP/FzJtL7HcRjwW53asGNgCTmgck=
+github.com/envoyproxy/data-plane-api v0.0.0-20210105195927-01fb099f5a86/go.mod h1:ysQJ12w0R8EJ2rE11wHBGdm+4q7Ft5RTmABx23SOscc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad h1:EmNYJhPYy0pOFjCx2PrgtaBXmee0iUX9hLlxE1xHOJE=
@@ -38,10 +45,20 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
 github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/googleapis/googleapis v0.0.0-20210422004218-6b711581c9a6 h1:7BTzaiteHKhJEVMNF4dgSliR3JCp+m0AAJd4Z7Szoa8=
+github.com/googleapis/googleapis v0.0.0-20210422004218-6b711581c9a6/go.mod h1:XrPm4xpez/lHHyE+8/G+NqQRcB4lg42HF9zQVTvxtXw=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
 github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
+github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7 h1:WgwGa7QgVbj2QVzRU5hQaMxSJ29WppDHVczo3FUIc84=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7/go.mod h1:F+c9RjgKlv1Q3UEoPJCtMJw8Fd+X5PfG5jlkTSfZOMA=
 github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
+github.com/lyft/protoc-gen-star v0.5.2/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
+github.com/mitchellh/copystructure v1.1.1/go.mod h1:EBArHfARyrSWO/+Wyr9zwEkc6XMFB9XyNgFNmRkZZU4=
+github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
 github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
diff --git a/api/mesh/v1alpha1/circuit_breaker.pb.go b/api/mesh/v1alpha1/circuit_breaker.pb.go
index 8d52e8b4b..39c7e3ca9 100644
--- a/api/mesh/v1alpha1/circuit_breaker.pb.go
+++ b/api/mesh/v1alpha1/circuit_breaker.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/circuit_breaker.proto
 
diff --git a/api/mesh/v1alpha1/dataplane.pb.go b/api/mesh/v1alpha1/dataplane.pb.go
index dfd97a037..e5f1a85d4 100644
--- a/api/mesh/v1alpha1/dataplane.pb.go
+++ b/api/mesh/v1alpha1/dataplane.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/dataplane.proto
 
diff --git a/api/mesh/v1alpha1/dataplane_insight.pb.go b/api/mesh/v1alpha1/dataplane_insight.pb.go
index 693a4310a..f2261ad21 100644
--- a/api/mesh/v1alpha1/dataplane_insight.pb.go
+++ b/api/mesh/v1alpha1/dataplane_insight.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/dataplane_insight.proto
 
diff --git a/api/mesh/v1alpha1/dataplane_overview.pb.go b/api/mesh/v1alpha1/dataplane_overview.pb.go
index b2c6b6bf7..cc5120a57 100644
--- a/api/mesh/v1alpha1/dataplane_overview.pb.go
+++ b/api/mesh/v1alpha1/dataplane_overview.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/dataplane_overview.proto
 
diff --git a/api/mesh/v1alpha1/externalservice.pb.go b/api/mesh/v1alpha1/externalservice.pb.go
index 93fdc9de8..c2fadb124 100644
--- a/api/mesh/v1alpha1/externalservice.pb.go
+++ b/api/mesh/v1alpha1/externalservice.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/externalservice.proto
 
diff --git a/api/mesh/v1alpha1/fault_injection.pb.go b/api/mesh/v1alpha1/fault_injection.pb.go
index 1b014940d..d74a9b74a 100644
--- a/api/mesh/v1alpha1/fault_injection.pb.go
+++ b/api/mesh/v1alpha1/fault_injection.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/fault_injection.proto
 
diff --git a/api/mesh/v1alpha1/health_check.pb.go b/api/mesh/v1alpha1/health_check.pb.go
index 9d47f28b1..5d77fbd6d 100644
--- a/api/mesh/v1alpha1/health_check.pb.go
+++ b/api/mesh/v1alpha1/health_check.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/health_check.proto
 
diff --git a/api/mesh/v1alpha1/kds.pb.go b/api/mesh/v1alpha1/kds.pb.go
index a767b21b9..1ebf1dcff 100644
--- a/api/mesh/v1alpha1/kds.pb.go
+++ b/api/mesh/v1alpha1/kds.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/kds.proto
 
diff --git a/api/mesh/v1alpha1/mesh.pb.go b/api/mesh/v1alpha1/mesh.pb.go
index 442cbf2b1..fecf6a789 100644
--- a/api/mesh/v1alpha1/mesh.pb.go
+++ b/api/mesh/v1alpha1/mesh.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/mesh.proto
 
diff --git a/api/mesh/v1alpha1/mesh_insight.pb.go b/api/mesh/v1alpha1/mesh_insight.pb.go
index d8866dfb6..04c625c3c 100644
--- a/api/mesh/v1alpha1/mesh_insight.pb.go
+++ b/api/mesh/v1alpha1/mesh_insight.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/mesh_insight.proto
 
diff --git a/api/mesh/v1alpha1/metrics.pb.go b/api/mesh/v1alpha1/metrics.pb.go
index 9121f4976..442a647bc 100644
--- a/api/mesh/v1alpha1/metrics.pb.go
+++ b/api/mesh/v1alpha1/metrics.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/metrics.proto
 
diff --git a/api/mesh/v1alpha1/mux.pb.go b/api/mesh/v1alpha1/mux.pb.go
index 43fed013b..b70b8c4ef 100644
--- a/api/mesh/v1alpha1/mux.pb.go
+++ b/api/mesh/v1alpha1/mux.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/mux.proto
 
diff --git a/api/mesh/v1alpha1/proxy_template.pb.go b/api/mesh/v1alpha1/proxy_template.pb.go
index 6d4a91b2e..f89aca5ad 100644
--- a/api/mesh/v1alpha1/proxy_template.pb.go
+++ b/api/mesh/v1alpha1/proxy_template.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/proxy_template.proto
 
diff --git a/api/mesh/v1alpha1/retry.pb.go b/api/mesh/v1alpha1/retry.pb.go
index 576bcf639..0a1f87e02 100644
--- a/api/mesh/v1alpha1/retry.pb.go
+++ b/api/mesh/v1alpha1/retry.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/retry.proto
 
diff --git a/api/mesh/v1alpha1/selector.pb.go b/api/mesh/v1alpha1/selector.pb.go
index d4576d133..4b0d79fcc 100644
--- a/api/mesh/v1alpha1/selector.pb.go
+++ b/api/mesh/v1alpha1/selector.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/selector.proto
 
diff --git a/api/mesh/v1alpha1/service_insight.pb.go b/api/mesh/v1alpha1/service_insight.pb.go
index 64eed7088..fefdf0720 100644
--- a/api/mesh/v1alpha1/service_insight.pb.go
+++ b/api/mesh/v1alpha1/service_insight.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/service_insight.proto
 
diff --git a/api/mesh/v1alpha1/timeout.pb.go b/api/mesh/v1alpha1/timeout.pb.go
index 24d96d0c4..a707181f3 100644
--- a/api/mesh/v1alpha1/timeout.pb.go
+++ b/api/mesh/v1alpha1/timeout.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/timeout.proto
 
diff --git a/api/mesh/v1alpha1/traffic_log.pb.go b/api/mesh/v1alpha1/traffic_log.pb.go
index cc826c1b7..a1b8efaf1 100644
--- a/api/mesh/v1alpha1/traffic_log.pb.go
+++ b/api/mesh/v1alpha1/traffic_log.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/traffic_log.proto
 
diff --git a/api/mesh/v1alpha1/traffic_permission.pb.go b/api/mesh/v1alpha1/traffic_permission.pb.go
index 30ca1d25d..fd67fe64f 100644
--- a/api/mesh/v1alpha1/traffic_permission.pb.go
+++ b/api/mesh/v1alpha1/traffic_permission.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/traffic_permission.proto
 
diff --git a/api/mesh/v1alpha1/traffic_route.pb.go b/api/mesh/v1alpha1/traffic_route.pb.go
index 692fb2cbe..7cbdf85ba 100644
--- a/api/mesh/v1alpha1/traffic_route.pb.go
+++ b/api/mesh/v1alpha1/traffic_route.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/traffic_route.proto
 
diff --git a/api/mesh/v1alpha1/traffic_trace.pb.go b/api/mesh/v1alpha1/traffic_trace.pb.go
index 67cc952ef..6d840c1a0 100644
--- a/api/mesh/v1alpha1/traffic_trace.pb.go
+++ b/api/mesh/v1alpha1/traffic_trace.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: mesh/v1alpha1/traffic_trace.proto
 
diff --git a/api/observability/v1alpha1/mads.pb.go b/api/observability/v1alpha1/mads.pb.go
index 320756719..1fd5ea62d 100644
--- a/api/observability/v1alpha1/mads.pb.go
+++ b/api/observability/v1alpha1/mads.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: observability/v1alpha1/mads.proto
 
diff --git a/api/system/v1alpha1/config.pb.go b/api/system/v1alpha1/config.pb.go
index e49d9a5f9..4c92a5850 100644
--- a/api/system/v1alpha1/config.pb.go
+++ b/api/system/v1alpha1/config.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/config.proto
 
diff --git a/api/system/v1alpha1/datasource.pb.go b/api/system/v1alpha1/datasource.pb.go
index a617b1a0b..bb71af7bd 100644
--- a/api/system/v1alpha1/datasource.pb.go
+++ b/api/system/v1alpha1/datasource.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/datasource.proto
 
diff --git a/api/system/v1alpha1/secret.pb.go b/api/system/v1alpha1/secret.pb.go
index 36d99dd86..c4a79ae75 100644
--- a/api/system/v1alpha1/secret.pb.go
+++ b/api/system/v1alpha1/secret.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/secret.proto
 
diff --git a/api/system/v1alpha1/zone.pb.go b/api/system/v1alpha1/zone.pb.go
index c1a654c67..9c6478ced 100644
--- a/api/system/v1alpha1/zone.pb.go
+++ b/api/system/v1alpha1/zone.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/zone.proto
 
diff --git a/api/system/v1alpha1/zone_insight.pb.go b/api/system/v1alpha1/zone_insight.pb.go
index 65f2543db..8fefd21b8 100644
--- a/api/system/v1alpha1/zone_insight.pb.go
+++ b/api/system/v1alpha1/zone_insight.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/zone_insight.proto
 
diff --git a/api/system/v1alpha1/zone_overview.pb.go b/api/system/v1alpha1/zone_overview.pb.go
index cb42ef58b..d3b6affe2 100644
--- a/api/system/v1alpha1/zone_overview.pb.go
+++ b/api/system/v1alpha1/zone_overview.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: system/v1alpha1/zone_overview.proto
 
diff --git a/app/kumactl/cmd/install/context/install_control_plane_context.go b/app/kumactl/cmd/install/context/install_control_plane_context.go
index 57b459779..9b3057e64 100644
--- a/app/kumactl/cmd/install/context/install_control_plane_context.go
+++ b/app/kumactl/cmd/install/context/install_control_plane_context.go
@@ -87,7 +87,7 @@ func DefaultInstallCpContext() InstallCpContext {
 			Cni_conf_name:                             "kuma-cni.conf",
 			Cni_image_registry:                        "docker.io",
 			Cni_image_repository:                      "lobkovilya/install-cni",
-			Cni_image_tag:                             "0.0.6",
+			Cni_image_tag:                             "0.0.7",
 			ControlPlane_mode:                         core.Standalone,
 			ControlPlane_zone:                         "",
 			ControlPlane_globalRemoteSyncService_type: "LoadBalancer",
diff --git a/app/kumactl/cmd/install/install_transparent_proxy.go b/app/kumactl/cmd/install/install_transparent_proxy.go
index 614c8e737..f38e0cb0d 100644
--- a/app/kumactl/cmd/install/install_transparent_proxy.go
+++ b/app/kumactl/cmd/install/install_transparent_proxy.go
@@ -21,6 +21,7 @@ import (
 
 type transparenProxyArgs struct {
 	DryRun                 bool
+	Verbose                bool
 	ModifyIptables         bool
 	RedirectPortOutBound   string
 	RedirectInbound        bool
@@ -31,6 +32,7 @@ type transparenProxyArgs struct {
 	UID                    string
 	User                   string
 	RedirectDNS            bool
+	RedirectAllDNSTraffic  bool
 	AgentDNSListenerPort   string
 	DNSUpstreamTargetChain string
 	SkipResolvConf         bool
@@ -43,6 +45,7 @@ var defaultCpIP = net.IPv4(0, 0, 0, 0)
 func newInstallTransparentProxy() *cobra.Command {
 	args := transparenProxyArgs{
 		DryRun:                 false,
+		Verbose:                false,
 		ModifyIptables:         true,
 		RedirectPortOutBound:   "15001",
 		RedirectInbound:        true,
@@ -53,6 +56,7 @@ func newInstallTransparentProxy() *cobra.Command {
 		UID:                    "",
 		User:                   "",
 		RedirectDNS:            false,
+		RedirectAllDNSTraffic:  false,
 		AgentDNSListenerPort:   "15053",
 		DNSUpstreamTargetChain: "RETURN",
 		SkipResolvConf:         false,
@@ -123,8 +127,12 @@ runuser -u kuma-dp -- \
 				return errors.Errorf("--kuma-dp-user or --kuma-dp-uid should be supplied")
 			}
 
+			if args.RedirectAllDNSTraffic {
+				args.RedirectDNS = true
+			}
+
 			if args.RedirectDNS && !args.SkipResolvConf {
-				return errors.Errorf("please set --skip-resolv-conf when using --redirect-dns")
+				return errors.Errorf("please set --skip-resolv-conf when using --redirect-dns or --redirect-all-dns-traffic")
 			}
 
 			if !args.SkipResolvConf && args.KumaCpIP.String() == defaultCpIP.String() {
@@ -149,6 +157,7 @@ runuser -u kuma-dp -- \
 	}
 
 	cmd.Flags().BoolVar(&args.DryRun, "dry-run", args.DryRun, "dry run")
+	cmd.Flags().BoolVar(&args.Verbose, "verbose", args.Verbose, "verbose")
 	cmd.Flags().BoolVar(&args.ModifyIptables, "modify-iptables", args.ModifyIptables, "modify the host iptables to redirect the traffic to Envoy")
 	cmd.Flags().StringVar(&args.RedirectPortOutBound, "redirect-outbound-port", args.RedirectPortOutBound, "outbound port redirected to Envoy, as specified in dataplane's `networking.transparentProxying.redirectPortOutbound`")
 	cmd.Flags().BoolVar(&args.RedirectInbound, "redirect-inbound", args.RedirectInbound, "redirect the inbound traffic to the Envoy. Should be disabled for Gateway data plane proxies.")
@@ -158,7 +167,8 @@ runuser -u kuma-dp -- \
 	cmd.Flags().StringVar(&args.ExcludeOutboundPorts, "exclude-outbound-ports", args.ExcludeOutboundPorts, "a comma separated list of outbound ports to exclude from redirect to Envoy")
 	cmd.Flags().StringVar(&args.User, "kuma-dp-user", args.UID, "the user that will run kuma-dp")
 	cmd.Flags().StringVar(&args.UID, "kuma-dp-uid", args.UID, "the UID of the user that will run kuma-dp")
-	cmd.Flags().BoolVar(&args.RedirectDNS, "redirect-dns", args.RedirectDNS, "redirect the DNS requests to a specified port")
+	cmd.Flags().BoolVar(&args.RedirectDNS, "redirect-dns", args.RedirectDNS, "redirect all DNS requests to the servers in /etc/resolv.conf to a specified port")
+	cmd.Flags().BoolVar(&args.RedirectAllDNSTraffic, "redirect-all-dns-traffic", args.RedirectAllDNSTraffic, "redirect all DNS requests to a specified port. Implies --redirect-dns.")
 	cmd.Flags().StringVar(&args.AgentDNSListenerPort, "redirect-dns-port", args.AgentDNSListenerPort, "the port where the DNS agent is listening")
 	cmd.Flags().StringVar(&args.DNSUpstreamTargetChain, "redirect-dns-upstream-target-chain", args.DNSUpstreamTargetChain, "(optional) the iptables chain where the upstream DNS requests should be directed to. It is only applied for IP V4. Use with care.")
 	cmd.Flags().BoolVar(&args.SkipResolvConf, "skip-resolv-conf", args.SkipResolvConf, "skip modifying the host `/etc/resolv.conf`")
@@ -191,6 +201,12 @@ func findUidGid(uid, user string) (string, string, error) {
 func modifyIpTables(cmd *cobra.Command, args *transparenProxyArgs) error {
 	tp := transparentproxy.DefaultTransparentProxy()
 
+	// best effort cleanup before we apply the rules (again?)
+	_, err := tp.Cleanup(args.DryRun, args.Verbose)
+	if err != nil {
+		return errors.Wrapf(err, "unable to invoke cleanup")
+	}
+
 	uid, gid, err := findUidGid(args.UID, args.User)
 	if err != nil {
 		return errors.Wrapf(err, "unable to find the kuma-dp user")
@@ -201,6 +217,7 @@ func modifyIpTables(cmd *cobra.Command, args *transparenProxyArgs) error {
 	}
 	output, err := tp.Setup(&config.TransparentProxyConfig{
 		DryRun:                 args.DryRun,
+		Verbose:                args.Verbose,
 		RedirectPortOutBound:   args.RedirectPortOutBound,
 		RedirectInBound:        args.RedirectInbound,
 		RedirectPortInBound:    args.RedirectPortInBound,
@@ -210,6 +227,7 @@ func modifyIpTables(cmd *cobra.Command, args *transparenProxyArgs) error {
 		UID:                    uid,
 		GID:                    gid,
 		RedirectDNS:            args.RedirectDNS,
+		RedirectAllDNSTraffic:  args.RedirectAllDNSTraffic,
 		AgentDNSListenerPort:   args.AgentDNSListenerPort,
 		DNSUpstreamTargetChain: args.DNSUpstreamTargetChain,
 	})
diff --git a/app/kumactl/cmd/uninstall/uninstall_transparent_proxy.go b/app/kumactl/cmd/uninstall/uninstall_transparent_proxy.go
index 5f5e655a6..2484f5999 100644
--- a/app/kumactl/cmd/uninstall/uninstall_transparent_proxy.go
+++ b/app/kumactl/cmd/uninstall/uninstall_transparent_proxy.go
@@ -12,12 +12,14 @@ import (
 )
 
 type transparenProxyArgs struct {
-	DryRun bool
+	DryRun  bool
+	Verbose bool
 }
 
 func newUninstallTransparentProxy() *cobra.Command {
 	args := transparenProxyArgs{
-		DryRun: false,
+		DryRun:  false,
+		Verbose: false,
 	}
 	cmd := &cobra.Command{
 		Use:   "transparent-proxy",
@@ -30,9 +32,9 @@ func newUninstallTransparentProxy() *cobra.Command {
 
 			tp := transparentproxy.DefaultTransparentProxy()
 
-			output, err := tp.Cleanup(args.DryRun)
+			output, err := tp.Cleanup(args.DryRun, args.Verbose)
 			if err != nil {
-				return errors.Wrap(err, "Failed to setup transparent proxy")
+				return errors.Wrap(err, "Failed to cleanup transparent proxy")
 			}
 
 			if args.DryRun {
@@ -62,5 +64,6 @@ func newUninstallTransparentProxy() *cobra.Command {
 	}
 
 	cmd.Flags().BoolVar(&args.DryRun, "dry-run", args.DryRun, "dry run")
+	cmd.Flags().BoolVar(&args.Verbose, "verbose", args.Verbose, "verbose")
 	return cmd
 }
diff --git a/app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go b/app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go
index 565045a34..255e7d9d9 100644
--- a/app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go
+++ b/app/kumactl/pkg/install/k8s/control-plane/helmtemplates_vfsdata.go
@@ -21,7 +21,7 @@ var HelmTemplates = func() http.FileSystem {
 	fs := vfsgen۰FS{
 		"/": &vfsgen۰DirInfo{
 			name:    "/",
-			modTime: time.Date(2021, 4, 19, 12, 39, 49, 520526270, time.UTC),
+			modTime: time.Date(2021, 4, 22, 8, 6, 5, 751313632, time.UTC),
 		},
 		"/.helmdocsignore": &vfsgen۰FileInfo{
 			name:    ".helmdocsignore",
@@ -37,17 +37,17 @@ var HelmTemplates = func() http.FileSystem {
 		},
 		"/Chart.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "Chart.yaml",
-			modTime:          time.Date(2021, 4, 19, 12, 39, 49, 520433731, time.UTC),
+			modTime:          time.Date(2021, 4, 19, 16, 46, 25, 744437153, time.UTC),
 			uncompressedSize: 458,
 
 			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x5c\x90\xb1\x6e\xc3\x30\x0c\x44\x77\x7d\x05\x7f\x20\x72\x53\x34\x8b\xa7\x14\x5d\x0a\x74\xe9\xd4\x9d\x91\x59\x8b\xb5\x24\x2a\x92\x6c\xc3\xf9\xfa\x42\x4e\x5c\x18\x9d\x08\xdc\xe1\x1d\x79\xc4\xc8\x5f\x94\x32\x4b\x68\x61\x7a\x56\x01\x3d\xb5\x30\x8c\x1e\x55\x47\xd9\x24\x8e\x65\xb5\x5e\xe1\x9d\x9c\x07\x63\x31\x15\xf8\x96\x04\xc5\x12\x7c\x8c\x1e\xe1\x4d\x42\x49\xe2\xe0\xd3\x61\x20\x55\x96\x48\x2d\x60\x8c\x8e\x0d\x56\x54\x4d\x5b\xfa\x93\x3e\xe9\x93\xc2\x18\xff\xf6\x1d\xf5\x51\xbf\x28\x2b\x75\xa5\x2d\x25\xe6\xb6\x69\x7a\x2e\x76\xbc\x68\x23\xbe\xa9\x57\xd8\xeb\x3a\x94\x47\x0e\x05\x39\x50\xca\xad\x02\x38\xc0\xfd\x50\x1c\x73\xe1\x60\x48\x01\x00\x90\x47\x76\x9b\xa6\x0d\xce\x8e\x96\x73\x5f\xc5\x1a\xb7\xa3\x7e\x70\x18\x2f\xdd\x92\x6f\x03\xd3\xcc\xe6\xb6\xa7\x57\x4f\xef\xcc\xf3\x20\xa1\xb7\xd7\x7f\x11\x81\xcd\x20\x0e\x69\xda\xb3\x81\xab\xb6\xe8\xfb\xa4\x69\x8f\xb2\xa9\x8d\xb7\x96\xb5\x93\x66\x69\xd8\x63\x4f\xb9\xb9\x24\x0c\xdd\x2a\x1e\x9c\xf4\x72\x08\x34\xeb\x3c\xf5\x6a\xa0\x65\x96\xd4\x3d\x2a\x67\x4a\x13\x1b\x02\x4f\xd9\xae\x82\x79\xbc\x3e\xae\xaf\xff\x0d\x00\x00\xff\xff\x8f\xa0\xe4\x28\xca\x01\x00\x00"),
 		},
 		"/README.md": &vfsgen۰CompressedFileInfo{
 			name:             "README.md",
-			modTime:          time.Date(2021, 4, 19, 12, 41, 29, 641980256, time.UTC),
+			modTime:          time.Date(2021, 4, 22, 8, 6, 5, 751154580, time.UTC),
 			uncompressedSize: 9207,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xb4\x5a\x5b\x73\xdb\xb6\xf2\x7f\xe7\xa7\xd8\xca\x0f\xb9\x8c\x44\x39\x6d\x93\xc9\x68\xfe\xff\x73\xc6\xb5\xdb\x13\x4f\xd2\x54\x13\x3b\xed\x83\xeb\x89\x40\x60\x45\x21\x02\x01\x06\x00\x65\xab\x71\xbe\xfb\x99\x05\x78\xd3\xc5\x97\x9c\xa6\x7d\x68\x28\x72\xf1\xdb\xc5\x62\xaf\x58\x5f\x7c\x77\x71\x79\xb1\xac\x0a\x36\x52\x26\x37\x97\xf5\x73\x65\xd5\x65\x92\x1c\xc1\x2b\x54\x05\xf0\x05\xb3\x1e\xe6\xc6\x82\x5f\x20\xbc\xae\x0a\x06\xc7\x46\x7b\x6b\x14\x4c\x15\xd3\x98\x24\xdf\x5d\x9c\xaf\x4b\x9c\x00\x2b\x4b\x25\x39\xf3\xd2\xe8\xcb\xc7\x0b\xef\x4b\x37\x19\x8f\x65\x91\xa7\x6e\x21\x51\x09\x97\x4a\x33\xce\x98\xc8\x71\x4c\xf4\xa3\x1e\xf9\x48\xea\xb9\xb1\x45\x78\x66\xea\xdf\xce\xaf\x15\xfe\xff\x5c\x31\x3f\x72\x9f\x2a\x66\xf1\x09\x7c\x77\xf1\x3b\x5a\x27\x8d\x9e\xc0\x61\xfa\x3c\x7d\x7e\x0f\x83\x9a\x78\x14\x68\x1f\x82\x7e\x54\x96\x2d\x83\x67\xe9\xb3\xf4\xc7\x7b\x18\x74\xf4\xa3\x40\x7e\x2f\x8f\x24\x79\xfa\xf4\x95\x29\xb0\x64\x39\x4e\x9e\x3e\x85\xff\x6b\xe0\x73\xe9\x17\x55\x96\x72\x53\x8c\x49\xf9\x8b\x4f\xe1\x9f\x7f\x25\xc9\xc1\x01\xfc\xce\x54\x85\x2e\x49\x6e\xe0\x35\xae\xe1\x06\x48\x6f\x70\x03\x27\x38\x67\x95\xf2\xe1\xc9\x71\x2b\x4b\xe2\x0a\x37\xc9\xcd\x88\xfe\x8b\xff\x6f\xfe\xd9\x78\x0a\xbf\x92\x1b\xc8\x95\xc9\x98\x4a\x65\xc1\x72\x4c\x2d\xe6\xd2\x79\x4b\xf8\xce\x5b\xa9\x73\xb8\x81\xd9\x60\x69\x74\x3e\x12\x86\x2f\xd1\x8e\x82\x51\xc4\xe7\x34\x93\xda\x5b\xb6\x4e\xa5\x19\xcc\x7a\xa2\xb4\x20\x64\x28\x4c\xa9\x68\x28\xa7\xc4\xc0\xc1\x0e\x4b\xcf\xf2\x0d\x6e\x5a\x2a\x02\x3b\x5f\x20\x88\x1a\x90\x48\x36\xb0\xc2\x4a\x37\x84\xab\x85\xe4\x0b\x90\xde\xa1\x9a\x37\xd4\x0e\xbc\x81\xf4\x98\x2c\x35\xed\x4e\x26\xf0\x2d\x99\xe7\x8b\xb3\xb5\xf3\x58\xbc\x65\x05\xba\x92\x71\x52\x61\x66\x8c\x22\xce\xde\x56\x48\xac\xff\x58\xa0\x5f\xa0\x05\x63\x41\x1b\x4f\x70\x61\x61\xb0\x79\xcf\x6c\x8e\x1e\x74\xbb\xfc\x4a\xfa\xf8\xc5\x05\x5c\x50\x2c\x43\x15\xb8\x49\xed\x3c\x53\xea\xd8\x0a\xf7\x9b\x7e\x5f\xe6\x96\x09\xe2\x66\xb2\x8f\xc8\xe9\xbc\x66\x9f\x07\xa8\x59\xa6\x50\x0c\x26\xc4\x7a\x38\x08\xdb\x9a\x56\x4a\x9d\x21\xb7\xe8\xdd\x60\x72\x71\xf9\x65\x43\x22\x1f\x24\xaa\x91\x41\xe3\x15\x1c\xbf\x3b\x71\x90\xe1\xdc\x58\x84\xaa\x66\x02\x8f\xe5\x1c\x98\x5e\xc3\x15\x5a\x04\x3a\x24\x23\x2a\x8e\x02\x00\x3a\x79\x69\xf1\xaa\x56\x8e\x99\x07\xbd\x3e\x09\x72\xf3\xe8\xd1\xc1\xa1\x53\x65\xf2\x37\xb8\xa2\x1d\xf5\x0d\x82\x0c\x3c\x1c\x79\x0c\x01\x53\x50\x26\x07\x45\x74\x13\x30\x1a\x09\xcf\xcc\xe7\x43\x22\x1b\x0a\xcc\xaa\x7c\x17\xb8\x30\x41\x1b\x3d\x50\xe7\x99\x16\x4c\x19\x8d\x1b\xd0\x44\xe8\x5a\xd8\x8e\x68\x68\xb1\x30\x1e\x87\xd1\x98\x76\x19\xfc\x45\x2b\xf6\x18\x56\x83\x4b\xdf\x87\x20\xe7\x60\x2b\xad\x89\xa4\xa8\x94\x97\x71\xd5\x36\xd6\x52\xb8\xff\x04\x36\x47\x42\x58\x74\x6e\x53\xf0\x20\xee\x6f\x5a\xad\xa1\x72\x28\x40\x6a\x98\x45\xd9\x66\x10\x77\xb9\x0d\x67\x31\x44\x3b\x82\x91\x3a\x98\xc2\x33\x82\x78\x5b\x15\x19\x1d\xf2\x1c\x5a\x02\x33\xef\x45\xda\x69\x0a\xa7\xb9\x36\x16\x05\x5c\x2d\x50\x03\xab\xbc\x71\x9c\x29\x92\x43\x3a\xa8\x8d\x69\x97\x5d\x8f\x2e\x6d\x89\x5a\xab\x9f\x33\xe5\x36\xcc\xde\x9b\x1a\x0a\x5e\x19\x4b\x0a\xf1\x4c\xc1\xd4\x08\x38\xea\x70\x1a\xd7\xb3\xf8\xa9\x92\x16\x5d\x90\xf2\xe2\x57\xf4\x56\x72\x07\x67\x68\x57\x68\xbb\xa8\xb9\x11\xd6\x32\xb4\x1a\x3d\xba\x91\x93\xb9\x1b\x17\x71\xc9\xc8\x85\x25\x4f\x48\x79\x04\xc5\x55\xe5\x3c\xda\xbb\xf7\x52\x48\xfd\x6e\x47\x93\xdf\x37\xc1\xa3\x90\x5a\x16\x55\x41\x47\x5d\x1a\x11\xa2\x02\x53\xca\x5c\xdd\x83\xc9\xae\x77\x31\x9f\xb7\x98\xec\xba\x8f\x47\x8b\x90\x1e\xee\x84\x8c\x21\xe3\x78\xfa\xfe\xbd\x97\x4a\xfe\x15\xd2\xc2\x14\x2d\x47\xed\x59\x8e\x1d\x97\x97\x87\xc4\xe6\x17\x63\x9b\xdd\x93\x56\x99\x07\x61\xf4\x23\x0f\xae\x2a\x4b\x63\x7d\xff\xd0\xc7\xab\xef\x33\xf4\x6c\xb8\xf9\xee\x19\xd9\x42\x30\xc4\xbb\x37\x5a\x9f\xd5\x0d\x28\xe9\x02\xff\x8b\xcf\x03\x8b\xce\x54\x96\xe3\x60\xf2\x79\x40\x21\x6e\x30\x19\xf0\xb2\x1a\x0c\x07\x71\x0f\xf4\x9a\xad\xd0\xb2\x1c\x7b\x7b\x19\x4c\x5e\x1e\x0e\x07\x7e\x5d\x12\x79\xff\xfd\x97\x2f\xed\xeb\x77\x0d\xf0\x97\xcb\xdb\x36\x79\xe7\x0e\x2b\x87\xd0\x4a\xbc\xbd\x2d\x6d\x04\x9e\xa1\x42\xee\x8d\xdd\x0a\xb0\x9d\xb9\x51\xba\x66\x96\x2f\x06\x93\x01\x2b\xc4\x8b\x1f\x07\xc3\xad\x8f\xc6\x0d\x26\x03\x25\x75\x75\x3d\x08\x31\xf7\x2d\xb9\xae\x6b\x60\x6f\xaf\x79\xa2\x35\xec\x08\x25\xf5\xc7\xb0\xf2\x17\x26\x55\x65\x71\x6a\x94\xe4\x5b\x69\x35\x3a\x73\x88\x1e\x35\x15\x94\x91\xac\x76\xfb\xa2\xf2\xcc\x13\xf5\x15\x66\x0b\x63\x96\x20\x8b\x52\x61\x81\xda\xa3\x80\x6c\xdd\x09\x74\x5a\x33\x03\x6e\x8a\xd2\x68\x24\x83\xda\x16\x88\x3c\x4c\x72\x4c\xe9\x5c\xf7\xc5\xc5\xdf\xca\x58\xaf\xa8\x35\x98\x15\x5a\x2b\x05\x6e\x86\x9f\x8d\x4d\x9f\x45\xb4\x47\x0e\x22\xde\x6d\xdc\x7c\xac\x52\x7a\xbb\x3e\x8e\xe7\x7e\x3a\x0d\x1b\xaf\x71\x20\xd0\xdd\xce\xee\x56\x7c\xa6\xb5\xf1\xc1\xdc\xdc\xe6\xd1\x87\x33\x3c\x12\x42\xc6\x5d\x41\x9f\x90\x32\x7a\xe5\xc1\xe8\x07\xb3\x8b\x49\xe6\x5d\x88\xea\x67\x6b\xcd\x1b\xb1\x37\xad\xad\xc7\x63\x30\xf9\xfc\x65\x38\x20\x7b\x1e\x4c\x9e\xbf\x78\xf9\xbc\xf5\x84\x37\x86\x89\x9f\x98\x62\x9a\xa3\x8d\x86\xf6\xfe\xdd\x1b\xda\x79\x4c\x30\x6d\x7a\x7a\xa8\x08\x7b\x34\xbc\xc1\xe2\x36\x25\x47\x76\xa3\x88\x07\x6e\xad\xf9\xc3\x59\x7e\x03\xa5\xd7\xbb\xad\xd9\x13\x78\x2b\xe5\x83\xc5\x08\xd1\xa2\x0b\xd2\x2f\x5e\x86\x38\x3d\xa5\xb7\x46\xd7\x09\xea\x0e\x3e\x94\x32\xaf\x4b\xb3\x37\x52\x36\xb5\x64\xea\x96\xb2\xfc\x15\xdd\xe2\xd8\x22\x8b\x95\xf5\xed\x89\xb3\xab\x17\x69\x15\xf0\xb0\x44\xe7\x61\xbf\x4d\x29\x4b\x58\xfb\x0a\x82\x18\x1e\xdd\x43\x1d\x93\x20\x9b\x45\xe0\x4a\xdc\x73\x78\x5e\xb9\x34\x47\x8d\x96\xa9\xd4\x85\x7a\xf2\xed\xb6\xe7\x0f\x6a\xeb\xa0\x8f\x31\x0c\x13\x02\x93\x74\x5a\xca\xa5\xdc\xfa\x21\x2c\x71\x4d\x0f\xc0\xb4\x00\xce\xc2\x23\xc5\xc2\xd2\x1a\x8f\x3c\x6c\x2f\x56\xe4\x7a\xd4\xe4\x6c\x6e\x8a\xa2\xd2\x75\x37\x77\xb7\x5c\x9c\xfd\x54\x69\xa1\xf6\x49\xf5\x13\x73\xf8\xe2\x47\x40\xcd\x8d\x40\x01\xc7\x47\xc0\xd1\x7a\x39\x27\x5c\x84\xc7\xa1\xe2\xa6\xfd\x30\x47\x35\xc3\x3d\x3b\x3f\x88\x92\x3f\xd9\x2f\x0d\x2b\x65\xac\x58\xbe\x85\x9e\xf6\x29\xe7\x68\x7a\x4a\x16\xf9\xea\xfc\x7c\x7a\x76\x9f\x08\x5c\x49\xd4\xfe\x18\xad\x77\x67\x5f\x2d\x4d\x48\xe5\x66\x0e\x69\x89\x45\x5f\x5f\x75\x92\xe5\x4c\x03\xe3\x9c\x0a\x58\x26\x0a\xa9\x01\xb5\x28\x8d\xd4\xde\x35\x1d\xc0\x03\x44\x6d\x6b\xe1\x7f\x4c\x67\xdc\x1a\xe7\xe0\x2b\xcc\x69\x29\x5c\x74\xf0\xe3\xa0\xbc\xff\x41\xa4\xda\xb2\x63\xcc\xb8\x62\x75\x01\x45\x9e\x2c\x73\x0d\xaf\x4f\xce\x9a\x40\x12\xeb\xd4\x14\xde\xd3\x77\x92\xfb\x78\x4a\x5d\x54\xd4\xf3\x5e\x01\x63\x97\x5b\x56\x4a\xed\xad\x01\xe6\x6f\x8d\x9f\x5a\x74\xa8\xfd\x46\xdb\x73\xda\xf4\x82\xcd\xaa\xfd\xb8\x16\x4b\xe3\xa4\x37\x3b\x2d\x3b\xb5\xe9\xbc\xdc\x80\x0c\x2b\xa0\xbf\x62\x37\xab\x86\xbe\xb3\x29\x0a\xcd\x1c\x3e\xc3\xcf\x7a\x35\xa9\x91\x87\xb5\xf2\xba\xdf\xaf\x71\xdd\xfc\x80\x2f\xbd\x98\x55\x37\xb0\xa1\xe8\x16\x82\x9c\x14\xf5\x4a\x5a\xa3\xa9\x78\x81\x15\xb3\x92\x1a\x8c\xd0\xc1\x53\x8b\x3a\xfb\x59\xaf\x66\x14\x90\x43\x63\x4a\xe7\x56\x67\x29\xd4\xab\x96\x7a\x08\xb3\x08\xbb\x97\x32\x7e\x1a\x86\x38\x35\x7b\x8d\xeb\x96\x68\x89\xeb\x4d\x1a\x58\x31\x55\x85\xb2\x9d\xaa\xca\x1d\x1d\xa0\x5e\xfd\xce\xec\x3d\x89\x6d\xef\x6e\xa2\x4d\x5d\x49\xa5\x20\x43\x28\x99\xab\x6d\x28\x34\x34\x75\x7d\x51\xee\xaf\x2f\xea\x02\xcf\xa5\x2b\xa6\xa4\x60\xde\xd8\x94\xb5\xdc\xde\x55\x0a\xf7\xb5\x9c\x3d\x79\x6c\x20\x21\x6d\x97\x25\xe5\x09\x1d\x0f\xbd\x45\x6b\x2a\xc8\x60\xb8\xf3\x4a\xc5\x06\x32\xab\xa4\x12\xc1\xe3\x2a\xe7\x4d\xd1\x56\x9f\x1a\xbc\x29\x9b\x90\x90\xde\x21\xad\xb9\xd2\x68\xdf\xe1\x1c\x2d\x6a\xaa\x0b\xbe\x81\xc8\x01\x12\x6c\x83\xf9\xf7\x05\xd7\xf2\xae\xa6\xf7\xb4\xbe\x4a\x09\xbc\xc3\xdd\xc8\xf1\xdb\xd3\x70\xc1\x82\x4c\x10\x52\x69\xcd\xf5\x1a\xa4\x96\x6d\xb4\x68\xda\x52\x2d\x53\xbe\xa0\xdf\x77\x02\x47\x38\x68\x28\xbb\x0b\x01\x2d\x53\x8d\xfe\x44\xda\x4d\x35\x8d\xd1\xf3\x31\xd7\x72\x5c\x54\xca\x57\x6e\xac\xd1\xa7\xa2\x0e\x5c\x3e\x98\x52\x23\x20\xa1\x0b\x69\x43\xe1\xbf\x6e\x31\x33\xa9\x77\x31\x57\xcc\x8e\x95\xcc\x02\x6e\x26\xf5\x0e\x5c\x26\xf5\x1e\x28\x6e\xf4\x7c\x37\x88\xc6\xc8\x52\x7f\xde\x41\xa2\x97\x32\xaf\x6c\x0c\x86\x5d\x6f\xa0\xe5\x7d\x57\x49\xb4\xfa\x61\xd7\x48\xa4\xb9\x7f\xae\xe5\x3b\xdb\x6e\xf9\x48\xb0\xae\xc7\xd3\xf2\xce\xab\xd2\xfa\x66\x54\x76\x7b\x6a\xa2\x6e\x43\xbd\x05\xb2\x3f\x7c\x2b\x93\x2d\xcd\x4a\xaa\x35\x1b\xd7\x47\x4d\x2a\xdf\xc1\xdc\x8c\xe4\x2d\xea\xf6\x95\xea\xe0\x30\x3d\x4c\x5f\x6c\xad\x0e\x44\xc9\x0d\x08\xe6\xd9\x83\x33\x8a\x88\x19\xe5\xbc\x69\x9b\x4e\x6e\xc9\x2a\xdb\xa0\x5f\x97\xfe\x4e\xf6\xa7\xbf\x1e\xa8\x96\xfe\xf4\x7e\x69\x89\x6c\x57\x5e\x72\xe5\xbd\x42\x4b\x9d\x5b\x74\xee\xce\x70\x31\x87\x70\x55\x0b\xd2\x83\xc0\x52\x99\xb5\x83\xd3\xb8\x2c\xd8\xcb\x7d\xa5\x4b\xc3\xa2\x08\x6d\xc0\x86\xe1\xc4\x06\x21\x88\x1b\x9a\x04\x6f\xea\x72\xe4\x84\x79\x16\xd3\x46\xc3\x29\x43\x65\x74\xee\x9a\x9b\xa7\x06\x54\x58\x26\xf5\xb9\xdc\x76\xd8\x1f\x0e\x5d\x54\x02\x7d\x21\x21\x23\xac\x51\x22\x64\x79\x2a\x94\x63\xd2\x72\xbe\x4e\x5d\x8c\x7b\xb9\x0a\xa5\x75\x80\x0c\x40\x3d\x3e\x5f\x7d\x7d\xd9\xc8\xdd\x07\x71\x7f\xaf\x7d\xbd\x0b\xf2\x1b\xb4\xa7\x0d\xbc\xeb\xf5\xa4\xdb\x6c\x36\xdb\xcf\x67\x87\x87\x87\xcf\x76\xfb\xcf\x06\x68\xab\xd9\x6c\xb0\x1e\x2c\x6a\x34\xb6\x50\x6f\x74\x6b\x02\x14\x59\x3a\xf7\xea\x01\xde\xcb\xbd\x6a\xbd\xa1\xfe\xbd\xcf\x11\x92\x83\x03\x38\x8e\x79\xb5\xb9\xb6\x83\x13\x9c\x93\xdf\x90\x9c\x49\x72\xd4\xe4\xcb\x30\x7b\x60\x16\x41\x19\x46\x4d\xda\x4a\xb2\x78\x11\x3c\xe3\x56\xb8\xd9\xe5\x63\xfa\xe7\x49\x97\x59\xd2\x70\xf1\x57\x18\x4b\xfd\xb0\x67\x52\x85\xdb\xf2\x76\x56\x46\x5a\x8b\x90\x5a\x84\x79\xe3\x30\x29\x15\x32\x87\xb1\x1c\xa0\x23\xba\x20\xf8\x30\x8a\x14\x86\x57\xa4\x8e\x38\x62\xbc\x58\xa0\x2a\x46\xdc\x8a\xcb\x34\xc8\x7f\x82\x0a\xa9\x97\x48\x92\x23\x07\x25\xb3\xa1\x96\xbd\xa0\x85\x8f\xa8\x4b\x2a\x64\xad\xf4\x6e\xe1\xa8\xff\x76\x18\xe5\x08\x5e\x41\x2d\x7d\x46\x02\x2b\xf4\xcd\xcd\x3b\x49\x31\x23\x15\xce\xea\x91\xa8\x74\x2d\x01\xd3\x22\x29\x2a\xb7\xb1\xa8\x60\xba\xa2\x06\x3e\x85\x3f\xc2\xc5\x3d\xc1\xf7\xd7\xbc\x6e\xd3\x52\xfd\xca\x85\x59\x57\x77\x2d\x10\xac\x9e\x79\x58\x4a\x1d\xaa\xe9\x2b\x54\x6a\x08\x8e\x6a\x4b\xe9\xc0\x2d\x4c\xa5\x44\x42\x0c\x29\x6d\x72\x66\xa9\x54\x52\xeb\x34\x49\xce\x0d\x88\x9a\x2a\x54\x37\x33\xca\x80\xdc\xab\x19\x29\xfb\xa9\x96\xd7\x54\x91\x7a\x3a\x02\x37\x04\x5b\xe9\x49\x92\xcc\x66\x33\xb7\x40\xa5\x92\x9a\x14\x72\xf4\x40\x27\x09\x37\x90\x5b\x2c\x83\xed\xa4\xd2\xc0\x0d\x78\x0b\x23\x07\x03\x18\xc0\x0d\xf0\xca\xc3\x48\x84\x1f\xa3\xf9\x33\xb8\x81\x6b\x66\x73\x07\x0d\x48\xdc\x17\xe1\x24\xc9\x01\x50\x14\x22\x71\x3e\x7e\xda\xe5\x32\x32\xf0\xd1\x85\x9b\x96\x8f\x9f\xe0\x51\x2a\x3d\x16\xee\xe2\x32\x2d\xd0\x33\xca\x00\xed\x05\x66\xc8\xd3\x8f\xd3\x1b\x8f\xce\x3f\x1e\xa4\x4f\x49\xac\x3f\xff\xa4\xd4\xfb\xe4\xc9\xa3\xbb\xf8\xcf\x66\xb3\x60\x24\xbd\x79\x46\x92\x9c\x6a\x2a\xf5\x44\xc5\xc9\x02\x42\x7c\x97\xd4\x25\xaf\xa4\x0b\xa3\x90\x6e\x28\xb2\x79\x53\xd8\x9f\xc1\x50\x6c\x7d\x25\xf3\x05\x1c\xad\x98\x54\x2c\x93\x4a\xfa\x75\xda\x67\x43\x1d\x47\xe8\x4a\x92\x59\x37\x5b\x99\x1a\xd1\x90\xa0\x9d\x75\xd7\x3a\x75\xef\x64\x51\x54\x5a\x30\xcd\xd7\xc1\x2f\xea\x99\x03\xd5\x25\xf5\x20\x22\x63\x14\x55\xc8\x77\xa6\xef\xa1\xea\xee\xdf\xb7\x67\x34\x49\x70\xcd\xe5\x4b\x07\x9b\x43\x97\xcb\x0b\xd2\xd1\x68\xeb\x25\xb1\xcf\xb0\x1d\x8e\x99\x8d\xb9\x4c\xe3\x64\x2b\x54\xa6\x24\x2f\x4c\x12\x0a\x2a\xc1\x17\x62\x44\xa8\x27\x61\x1e\x6d\xbc\xb9\x92\x3a\x3a\x4c\x88\x39\xb1\xa2\x99\x0d\x09\xd2\xc6\xd1\x25\x81\xcf\x8d\x52\xe6\x8a\xb8\xc5\xde\x20\x36\x06\xc1\xe1\x44\x64\x45\xdf\x34\x5e\x11\x23\x0f\x73\x64\xbe\xb2\xe8\x26\x09\x3c\x0d\xad\xdc\xac\x60\x4b\x84\x78\xf3\xe3\x71\x5c\xb3\x6b\x0a\xa8\xf1\xf2\xa5\x1b\xd7\x6d\xcc\x28\xe4\xd3\x59\x68\xf0\xd7\x9a\x43\x1b\x55\xc2\xd8\x38\xf6\x90\xdb\xd2\x82\xc7\x82\x7c\x05\x1d\xf1\x23\xf7\x6c\x5f\x44\xdf\x74\x9e\xd6\x46\x2f\x2b\x2d\x8e\x66\x11\xa7\x34\xce\xd3\xb3\x45\x30\x85\xf4\x6d\x0c\x29\xad\xe1\xe8\x5c\x18\xde\xed\x51\x0e\x69\xf8\xa0\xe9\x22\x88\x68\x73\xb8\x16\x8c\x6d\xd3\x80\xe7\xfd\xc3\xa2\x40\x31\x24\x37\x33\x14\x6e\x9a\x82\x24\x08\xc7\xc0\xc9\x42\x2a\x66\xd5\x9a\x9c\x68\x3e\x72\x32\xa7\xd6\x84\xa3\xf5\xc3\x38\x77\xa8\x59\x45\x53\x80\x26\x9a\x35\xb5\x7d\xec\x6a\xc3\x30\x2d\x91\xda\x21\xaf\x2c\x06\x3f\x53\xe8\xe1\xfc\xcd\x59\x5a\xcf\xca\x96\x54\x64\xba\x25\xcc\x48\x98\x71\xcc\x60\x5b\x03\xbf\x59\xb3\x5f\x17\x63\x54\x18\xb4\x53\x26\xe9\x06\xd3\xe1\xa6\x2f\xde\xba\x24\x49\xf7\x37\x29\x13\x68\xa6\x8b\x75\x38\x1a\x27\xbd\x3f\x5e\xd9\xfc\x3a\x2a\xab\x4c\x49\x3e\xa2\x8e\xdc\xbb\xd4\xfd\x90\xb2\x82\xfd\x65\x34\xbb\x72\xed\xdf\x5a\x84\x75\xa3\xd5\xf7\x69\xa9\xf3\xa4\x4b\x27\x1d\x10\xbd\x4a\xdd\x62\x2c\x0c\x77\xe3\x60\xe9\x1f\x32\x74\xfe\x43\x69\xa9\x5c\xe2\xe8\xc6\xb1\x19\xfd\xd0\x38\xf0\x07\xd1\x25\xcd\x71\xb2\x3f\xd1\xdc\x02\xef\x4d\x29\x1b\x2e\x6e\x7c\xd0\x5b\x31\x32\x9a\x40\x5c\xb2\xd7\x69\x3b\xb8\x07\x8f\x5c\x93\xff\x06\x00\x00\xff\xff\x60\xd8\x5a\x6c\xf7\x23\x00\x00"),
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xb4\x5a\x59\x73\x1b\xb7\xb2\x7e\x9f\x5f\xd1\xa1\x1e\xbc\x14\x39\x94\x93\xd8\xd7\xc5\xba\xf7\x9e\x52\xa4\xe4\x58\x65\xc7\x61\x59\x72\xf2\xa0\xa8\x4c\x0c\xd0\x1c\xc2\xc4\x00\x63\x00\x43\x89\xb1\xfc\xdf\x4f\x35\x30\x1b\x17\x2d\x3e\x71\xf2\x10\x0f\x67\x1a\x5f\x37\x1a\xbd\xa2\x75\xf1\xdd\xc5\xe5\xc5\xb2\x2a\xd8\x48\x99\xdc\x5c\xd6\xcf\x95\x55\x97\x49\x72\x04\xaf\x50\x15\xc0\x17\xcc\x7a\x98\x1b\x0b\x7e\x81\xf0\xba\x2a\x18\x1c\x1b\xed\xad\x51\x30\x55\x4c\x63\x92\x7c\x77\x71\xbe\x2e\x71\x02\xac\x2c\x95\xe4\xcc\x4b\xa3\x2f\x1f\x2f\xbc\x2f\xdd\x64\x3c\x96\x45\x9e\xba\x85\x44\x25\x5c\x2a\xcd\x38\x63\x22\xc7\x31\xd1\x8f\x7a\xe4\x23\xa9\xe7\xc6\x16\xe1\x99\xa9\x7f\x39\xbf\x56\xf8\x7f\x73\xc5\xfc\xc8\x7d\xaa\x98\xc5\x27\xf0\xdd\xc5\xef\x68\x9d\x34\x7a\x02\x87\xe9\xf3\xf4\xf9\x3d\x0c\x6a\xe2\x51\xa0\x7d\x08\xfa\x51\x59\xb6\x0c\x9e\xa5\xcf\xd2\x1f\xef\x61\xd0\xd1\x8f\x02\xf9\xbd\x3c\x92\xe4\xe9\xd3\x57\xa6\xc0\x92\xe5\x38\x79\xfa\x14\xfe\xb7\x81\xcf\xa5\x5f\x54\x59\xca\x4d\x31\x26\xe5\x2f\x3e\x85\x7f\xfe\x3f\x49\x0e\x0e\xe0\x77\xa6\x2a\x74\x49\x72\x03\xaf\x71\x0d\x37\x40\x7a\x83\x1b\x38\xc1\x39\xab\x94\x0f\x4f\x8e\x5b\x59\x12\x57\xb8\x49\x6e\x46\xf4\x5f\xfc\x7f\xf3\xcf\xc6\x53\xf8\x95\xdc\x40\xae\x4c\xc6\x54\x2a\x0b\x96\x63\x6a\x31\x97\xce\x5b\xc2\x77\xde\x4a\x9d\xc3\x0d\xcc\x06\x4b\xa3\xf3\x91\x30\x7c\x89\x76\x14\x8c\x22\x3e\xa7\x99\xd4\xde\xb2\x75\x2a\xcd\x60\xd6\x13\xa5\x05\x21\x43\x61\x4a\x45\x43\x39\x25\x06\x0e\x76\x58\x7a\x96\x6f\x70\xd3\x52\x11\xd8\xf9\x02\x41\xd4\x80\x44\xb2\x81\x15\x56\xba\x21\x5c\x2d\x24\x5f\x80\xf4\x0e\xd5\xbc\xa1\x76\xe0\x0d\xa4\xc7\x64\xa9\x69\x77\x32\x81\x6f\xc9\x3c\x5f\x9c\xad\x9d\xc7\xe2\x2d\x2b\xd0\x95\x8c\x93\x0a\x33\x63\x14\x71\xf6\xb6\x42\x62\xfd\xc7\x02\xfd\x02\x2d\x18\x0b\xda\x78\x82\x0b\x0b\x83\xcd\x7b\x66\x73\xf4\xa0\xdb\xe5\x57\xd2\xc7\x2f\x2e\xe0\x82\x62\x19\xaa\xc0\x4d\x6a\xe7\x99\x52\xc7\x56\xb8\xdf\xf4\xfb\x32\xb7\x4c\x10\x37\x93\x7d\x44\x4e\xe7\x35\xfb\x3c\x40\xcd\x32\x85\x62\x30\x21\xd6\xc3\x41\xd8\xd6\xb4\x52\xea\x0c\xb9\x45\xef\x06\x93\x8b\xcb\x2f\x1b\x12\xf9\x20\x51\x8d\x0c\x1a\xaf\xe0\xf8\xdd\x89\x83\x0c\xe7\xc6\x22\x54\x35\x13\x78\x2c\xe7\xc0\xf4\x1a\xae\xd0\x22\xd0\x21\x19\x51\x71\x14\x00\xd0\xc9\x4b\x8b\x57\xb5\x72\xcc\x3c\xe8\xf5\x49\x90\x9b\x47\x8f\x0e\x0e\x9d\x2a\x93\xbf\xc1\x15\xed\xa8\x6f\x10\x64\xe0\xe1\xc8\x63\x08\x98\x82\x32\x39\x28\xa2\x9b\x80\xd1\x48\x78\x66\x3e\x1f\x12\xd9\x50\x60\x56\xe5\xbb\xc0\x85\x09\xda\xe8\x81\x3a\xcf\xb4\x60\xca\x68\xdc\x80\x26\x42\xd7\xc2\x76\x44\x43\x8b\x85\xf1\x38\x8c\xc6\xb4\xcb\xe0\x2f\x5a\xb1\xc7\xb0\x1a\x5c\xfa\x3e\x04\x39\x07\x5b\x69\x4d\x24\x45\xa5\xbc\x8c\xab\xb6\xb1\x96\xc2\xfd\x3b\xb0\x39\x12\xc2\xa2\x73\x9b\x82\x07\x71\x7f\xd3\x6a\x0d\x95\x43\x01\x52\xc3\x2c\xca\x36\x83\xb8\xcb\x6d\x38\x8b\x21\xda\x11\x8c\xd4\xc1\x14\x9e\x11\xc4\xdb\xaa\xc8\xe8\x90\xe7\xd0\x12\x98\x79\x2f\xd2\x4e\x53\x38\xcd\xb5\xb1\x28\xe0\x6a\x81\x1a\x58\xe5\x8d\xe3\x4c\x91\x1c\xd2\x41\x6d\x4c\xbb\xec\x7a\x74\x69\x4b\xd4\x5a\xfd\x9c\x29\xb7\x61\xf6\xde\xd4\x50\xf0\xca\x58\x52\x88\x67\x0a\xa6\x46\xc0\x51\x87\xd3\xb8\x9e\xc5\x4f\x95\xb4\xe8\x82\x94\x17\xbf\xa2\xb7\x92\x3b\x38\x43\xbb\x42\xdb\x45\xcd\x8d\xb0\x96\xa1\xd5\xe8\xd1\x8d\x9c\xcc\xdd\xb8\x88\x4b\x46\x2e\x2c\x79\x42\xca\x23\x28\xae\x2a\xe7\xd1\xde\xbd\x97\x42\xea\x77\x3b\x9a\xfc\xbe\x09\x1e\x85\xd4\xb2\xa8\x0a\x3a\xea\xd2\x88\x10\x15\x98\x52\xe6\xea\x1e\x4c\x76\xbd\x8b\xf9\xbc\xc5\x64\xd7\x7d\x3c\x5a\x84\xf4\x70\x27\x64\x0c\x19\xc7\xd3\xf7\xef\xbd\x54\xf2\xaf\x90\x16\xa6\x68\x39\x6a\xcf\x72\xec\xb8\xbc\x3c\x24\x36\xbf\x18\xdb\xec\x9e\xb4\xca\x3c\x08\xa3\x1f\x79\x70\x55\x59\x1a\xeb\xfb\x87\x3e\x5e\x7d\x9f\xa1\x67\xc3\xcd\x77\xcf\xc8\x16\x82\x21\xde\xbd\xd1\xfa\xac\x6e\x40\x49\x17\xf8\x5f\x7c\x1e\x58\x74\xa6\xb2\x1c\x07\x93\xcf\x03\x0a\x71\x83\xc9\x80\x97\xd5\x60\x38\x88\x7b\xa0\xd7\x6c\x85\x96\xe5\xd8\xdb\xcb\x60\xf2\xf2\x70\x38\xf0\xeb\x92\xc8\xfb\xef\xbf\x7c\x69\x5f\xbf\x6b\x80\xbf\x5c\xde\xb6\xc9\x3b\x77\x58\x39\x84\x56\xe2\xed\x6d\x69\x23\xf0\x0c\x15\x72\x6f\xec\x56\x80\xed\xcc\x8d\xd2\x35\xb3\x7c\x31\x98\x0c\x58\x21\x5e\xfc\x38\x18\x6e\x7d\x34\x6e\x30\x19\x28\xa9\xab\xeb\x41\x88\xb9\x6f\xc9\x75\x5d\x03\x7b\x7b\xcd\x13\xad\x61\x47\x28\xa9\x3f\x86\x95\xbf\x30\xa9\x2a\x8b\x53\xa3\x24\xdf\x4a\xab\xd1\x99\x43\xf4\xa8\xa9\xa0\x8c\x64\xb5\xdb\x17\x95\x67\x9e\xa8\xaf\x30\x5b\x18\xb3\x04\x59\x94\x0a\x0b\xd4\x1e\x05\x64\xeb\x4e\xa0\xd3\x9a\x19\x70\x53\x94\x46\x23\x19\xd4\xb6\x40\xe4\x61\x92\x63\x4a\xe7\xba\x2f\x2e\xfe\x56\xc6\x7a\x45\xad\xc1\xac\xd0\x5a\x29\x70\x33\xfc\x6c\x6c\xfa\x2c\xa2\x3d\x72\x10\xf1\x6e\xe3\xe6\x63\x95\xd2\xdb\xf5\x71\x3c\xf7\xd3\x69\xd8\x78\x8d\x03\x81\xee\x76\x76\xb7\xe2\x33\xad\x8d\x0f\xe6\xe6\x36\x8f\x3e\x9c\xe1\x91\x10\x32\xee\x0a\xfa\x84\x94\xd1\x2b\x0f\x46\x3f\x98\x5d\x4c\x32\xef\x42\x54\x3f\x5b\x6b\xde\x88\xbd\x69\x6d\x3d\x1e\x83\xc9\xe7\x2f\xc3\x01\xd9\xf3\x60\xf2\xfc\xc5\xcb\xe7\xad\x27\xbc\x31\x4c\xfc\xc4\x14\xd3\x1c\x6d\x34\xb4\xf7\xef\xde\xd0\xce\x63\x82\x69\xd3\xd3\x43\x45\xd8\xa3\xe1\x0d\x16\xb7\x29\x39\xb2\x1b\x45\x3c\x70\x6b\xcd\x1f\xce\xf2\x1b\x28\xbd\xde\x6d\xcd\x9e\xc0\x5b\x29\x1f\x2c\x46\x88\x16\x5d\x90\x7e\xf1\x32\xc4\xe9\x29\xbd\x35\xba\x4e\x50\x77\xf0\xa1\x94\x79\x5d\x9a\xbd\x91\xb2\xa9\x25\x53\xb7\x94\xe5\xaf\xe8\x16\xc7\x16\x59\xac\xac\x6f\x4f\x9c\x5d\xbd\x48\xab\x80\x87\x25\x3a\x0f\xfb\x6d\x4a\x59\xc2\xda\x57\x10\xc4\xf0\xe8\x1e\xea\x98\x04\xd9\x2c\x02\x57\xe2\x9e\xc3\xf3\xca\xa5\x39\x6a\xb4\x4c\xa5\x2e\xd4\x93\x6f\xb7\x3d\x7f\x50\x5b\x07\x7d\x8c\x61\x98\x10\x98\xa4\xd3\x52\x2e\xe5\xd6\x0f\x61\x89\x6b\x7a\x00\xa6\x05\x70\x16\x1e\x29\x16\x96\xd6\x78\xe4\x61\x7b\xb1\x22\xd7\xa3\x26\x67\x73\x53\x14\x95\xae\xbb\xb9\xbb\xe5\xe2\xec\xa7\x4a\x0b\xb5\x4f\xaa\x9f\x98\xc3\x17\x3f\x02\x6a\x6e\x04\x0a\x38\x3e\x02\x8e\xd6\xcb\x39\xe1\x22\x3c\x0e\x15\x37\xed\x87\x39\xaa\x19\xee\xd9\xf9\x41\x94\xfc\xc9\x7e\x69\x58\x29\x63\xc5\xf2\x2d\xf4\xb4\x4f\x39\x47\xd3\x53\xb2\xc8\x57\xe7\xe7\xd3\xb3\xfb\x44\xe0\x4a\xa2\xf6\xc7\x68\xbd\x3b\xfb\x6a\x69\x42\x2a\x37\x73\x48\x4b\x2c\xfa\xfa\xaa\x93\x2c\x67\x1a\x18\xe7\x54\xc0\x32\x51\x48\x0d\xa8\x45\x69\xa4\xf6\xae\xe9\x00\x1e\x20\x6a\x5b\x0b\xff\x63\x3a\xe3\xd6\x38\x07\x5f\x61\x4e\x4b\xe1\xa2\x83\x1f\x07\xe5\xfd\x17\x22\xd5\x96\x1d\x63\xc6\x15\xab\x0b\x28\xf2\x64\x99\x6b\x78\x7d\x72\xd6\x04\x92\x58\xa7\xa6\xf0\x9e\xbe\x93\xdc\xc7\x53\xea\xa2\xa2\x9e\xf7\x0a\x18\xbb\xdc\xb2\x52\x6a\x6f\x0d\x30\x7f\x6b\xfc\xd4\xa2\x43\xed\x37\xda\x9e\xd3\xa6\x17\x6c\x56\xed\xc7\xb5\x58\x1a\x27\xbd\xd9\x69\xd9\xa9\x4d\xe7\xe5\x06\x64\x58\x01\xfd\x15\xbb\x59\x35\xf4\x9d\x4d\x51\x68\xe6\xf0\x19\x7e\xd6\xab\x49\x8d\x3c\xac\x95\xd7\xfd\x7e\x8d\xeb\xe6\x07\x7c\xe9\xc5\xac\xba\x81\x0d\x45\xb7\x10\xe4\xa4\xa8\x57\xd2\x1a\x4d\xc5\x0b\xac\x98\x95\xd4\x60\x84\x0e\x9e\x5a\xd4\xd9\xcf\x7a\x35\xa3\x80\x1c\x1a\x53\x3a\xb7\x3a\x4b\xa1\x5e\xb5\xd4\x43\x98\x45\xd8\xbd\x94\xf1\xd3\x30\xc4\xa9\xd9\x6b\x5c\xb7\x44\x4b\x5c\x6f\xd2\xc0\x8a\xa9\x2a\x94\xed\x54\x55\xee\xe8\x00\xf5\xea\x77\x66\xef\x49\x6c\x7b\x77\x13\x6d\xea\x4a\x2a\x05\x19\x42\xc9\x5c\x6d\x43\xa1\xa1\xa9\xeb\x8b\x72\x7f\x7d\x51\x17\x78\x2e\x5d\x31\x25\x05\xf3\xc6\xa6\xac\xe5\xf6\xae\x52\xb8\xaf\xe5\xec\xc9\x63\x03\x09\x69\xbb\x2c\x29\x4f\xe8\x78\xe8\x2d\x5a\x53\x41\x06\xc3\x9d\x57\x2a\x36\x90\x59\x25\x95\x08\x1e\x57\x39\x6f\x8a\xb6\xfa\xd4\xe0\x4d\xd9\x84\x84\xf4\x0e\x69\xcd\x95\x46\xfb\x0e\xe7\x68\x51\x53\x5d\xf0\x0d\x44\x0e\x90\x60\x1b\xcc\xbf\x2f\xb8\x96\x77\x35\xbd\xa7\xf5\x55\x4a\xe0\x1d\xee\x46\x8e\xdf\x9e\x86\x0b\x16\x64\x82\x90\x4a\x6b\xae\xd7\x20\xb5\x6c\xa3\x45\xd3\x96\x6a\x99\xf2\x05\xfd\xbe\x13\x38\xc2\x41\x43\xd9\x5d\x08\x68\x99\x6a\xf4\x27\xd2\x6e\xaa\x69\x8c\x9e\x8f\xb9\x96\xe3\xa2\x52\xbe\x72\x63\x8d\x3e\x15\x75\xe0\xf2\xc1\x94\x1a\x01\x09\x5d\x48\x1b\x0a\xff\x75\x8b\x99\x49\xbd\x8b\xb9\x62\x76\xac\x64\x16\x70\x33\xa9\x77\xe0\x32\xa9\xf7\x40\x71\xa3\xe7\xbb\x41\x34\x46\x96\xfa\xf3\x0e\x12\xbd\x94\x79\x65\x63\x30\xec\x7a\x03\x2d\xef\xbb\x4a\xa2\xd5\x0f\xbb\x46\x22\xcd\xfd\x73\x2d\xdf\xd9\x76\xcb\x47\x82\x75\x3d\x9e\x96\x77\x5e\x95\xd6\x37\xa3\xb2\xdb\x53\x13\x75\x1b\xea\x2d\x90\xfd\xe1\x5b\x99\x6c\x69\x56\x52\xad\xd9\xb8\x3e\x6a\x52\xf9\x0e\xe6\x66\x24\x6f\x51\xb7\xaf\x54\x07\x87\xe9\x61\xfa\x3f\x5b\xab\x03\x51\x72\x03\x82\x79\xf6\xe0\x8c\x22\x62\x46\x39\x6f\xda\xa6\x93\x5b\xb2\xca\x36\xe8\xd7\xa5\xbf\x93\xfd\xe9\xaf\x07\xaa\xa5\x3f\xbd\x5f\x5a\x22\xdb\x95\x97\x5c\x79\xaf\xd0\x52\xe7\x16\x9d\xbb\x33\x5c\xcc\x21\x5c\xd5\x82\xf4\x20\xb0\x54\x66\xed\xe0\x34\x2e\x0b\xf6\x72\x5f\xe9\xd2\xb0\x28\x42\x1b\xb0\x61\x38\xb1\x41\x08\xe2\x86\x26\xc1\x9b\xba\x1c\x39\x61\x9e\xc5\xb4\xd1\x70\xca\x50\x19\x9d\xbb\xe6\xe6\xa9\x01\x15\x96\x49\x7d\x2e\xb7\x1d\xf6\x87\x43\x17\x95\x40\x5f\x48\xc8\x08\x6b\x94\x08\x59\x9e\x0a\xe5\x98\xb4\x9c\xaf\x53\x17\xe3\x5e\xae\x42\x69\x1d\x20\x03\x50\x8f\xcf\x57\x5f\x5f\x36\x72\xf7\x41\xdc\xdf\x6b\x5f\xef\x82\xfc\x06\xed\x69\x03\xef\x7a\x3d\xe9\x36\x9b\xcd\xf6\xf3\xd9\xe1\xe1\xe1\xb3\xdd\xfe\xb3\x01\xda\x6a\x36\x1b\xac\x07\x8b\x1a\x8d\x2d\xd4\x1b\xdd\x9a\x00\x45\x96\xce\xbd\x7a\x80\xf7\x72\xaf\x5a\x6f\xa8\x7f\xef\x73\x84\xe4\xe0\x00\x8e\x63\x5e\x6d\xae\xed\xe0\x04\xe7\xe4\x37\x24\x67\x92\x1c\x35\xf9\x32\xcc\x1e\x98\x45\x50\x86\x51\x93\xb6\x92\x2c\x5e\x04\xcf\xb8\x15\x6e\x76\xf9\x98\xfe\x79\xd2\x65\x96\x34\x5c\xfc\x15\xc6\x52\x3f\xec\x99\x54\xe1\xb6\xbc\x9d\x95\x91\xd6\x22\xa4\x16\x61\xde\x38\x4c\x4a\x85\xcc\x61\x2c\x07\xe8\x88\x2e\x08\x3e\x8c\x22\x85\xe1\x15\xa9\x23\x8e\x18\x2f\x16\xa8\x8a\x11\xb7\xe2\x32\x0d\xf2\x9f\xa0\x42\xea\x25\x92\xe4\xc8\x41\xc9\x6c\xa8\x65\x2f\x68\xe1\x23\xea\x92\x0a\x59\x2b\xbd\x5b\x38\xea\xbf\x1d\x46\x39\x82\x57\x50\x4b\x9f\x91\xc0\x0a\x7d\x73\xf3\x4e\x52\xcc\x48\x85\xb3\x7a\x24\x2a\x5d\x4b\xc0\xb4\x48\x8a\xca\x6d\x2c\x2a\x98\xae\xa8\x81\x4f\xe1\x8f\x70\x71\x4f\xf0\xfd\x35\xaf\xdb\xb4\x54\xbf\x72\x61\xd6\xd5\x5d\x0b\x04\xab\x67\x1e\x96\x52\x87\x6a\xfa\x0a\x95\x1a\x82\xa3\xda\x52\x3a\x70\x0b\x53\x29\x91\x10\x43\x4a\x9b\x9c\x59\x2a\x95\xd4\x3a\x4d\x92\x73\x03\xa2\xa6\x0a\xd5\xcd\x8c\x32\x20\xf7\x6a\x46\xca\x7e\xaa\xe5\x35\x55\xa4\x9e\x8e\xc0\x0d\xc1\x56\x7a\x92\x24\xb3\xd9\xcc\x2d\x50\xa9\xa4\x26\x85\x1c\x3d\xd0\x49\xc2\x0d\xe4\x16\xcb\x60\x3b\xa9\x34\x70\x03\xde\xc2\xc8\xc1\x00\x06\x70\x03\xbc\xf2\x30\x12\xe1\xc7\x68\xfe\x0c\x6e\xe0\x9a\xd9\xdc\x41\x03\x12\xf7\x45\x38\x49\x72\x00\x14\x85\x48\x9c\x8f\x9f\x76\xb9\x8c\x0c\x7c\x74\xe1\xa6\xe5\xe3\x27\x78\x94\x4a\x8f\x85\xbb\xb8\x4c\x0b\xf4\x8c\x32\x40\x7b\x81\x19\xf2\xf4\xe3\xf4\xc6\xa3\xf3\x8f\x07\xe9\x53\x12\xeb\xcf\x3f\x29\xf5\x3e\x79\xf2\xe8\x2e\xfe\xb3\xd9\x2c\x18\x49\x6f\x9e\x91\x24\xa7\x9a\x4a\x3d\x51\x71\xb2\x80\x10\xdf\x25\x75\xc9\x2b\xe9\xc2\x28\xa4\x1b\x8a\x6c\xde\x14\xf6\x67\x30\x14\x5b\x5f\xc9\x7c\x01\x47\x2b\x26\x15\xcb\xa4\x92\x7e\x9d\xf6\xd9\x50\xc7\x11\xba\x92\x64\xd6\xcd\x56\xa6\x46\x34\x24\x68\x67\xdd\xb5\x4e\xdd\x3b\x59\x14\x95\x16\x4c\xf3\x75\xf0\x8b\x7a\xe6\x40\x75\x49\x3d\x88\xc8\x18\x45\x15\xf2\x9d\xe9\x7b\xa8\xba\xfb\xf7\xed\x19\x4d\x12\x5c\x73\xf9\xd2\xc1\xe6\xd0\xe5\xf2\x82\x74\x34\xda\x7a\x49\xec\x33\x6c\x87\x63\x66\x63\x2e\xd3\x38\xd9\x0a\x95\x29\xc9\x0b\x93\x84\x82\x4a\xf0\x85\x18\x11\xea\x49\x98\x47\x1b\x6f\xae\xa4\x8e\x0e\x13\x62\x4e\xac\x68\x66\x43\x82\xb4\x71\x74\x49\xe0\x73\xa3\x94\xb9\x22\x6e\xb1\x37\x88\x8d\x41\x70\x38\x11\x59\xd1\x37\x8d\x57\xc4\xc8\xc3\x1c\x99\xaf\x2c\xba\x49\x02\x4f\x43\x2b\x37\x2b\xd8\x12\x21\xde\xfc\x78\x1c\xd7\xec\x9a\x02\x6a\xbc\x7c\xe9\xc6\x75\x1b\x33\x0a\xf9\x74\x16\x1a\xfc\xb5\xe6\xd0\x46\x95\x30\x36\x8e\x3d\xe4\xb6\xb4\xe0\xb1\x20\x5f\x41\x47\xfc\xc8\x3d\xdb\x17\xd1\x37\x9d\xa7\xb5\xd1\xcb\x4a\x8b\xa3\x59\xc4\x29\x8d\xf3\xf4\x6c\x11\x4c\x21\x7d\x1b\x43\x4a\x6b\x38\x3a\x17\x86\x77\x7b\x94\x43\x1a\x3e\x68\xba\x08\x22\xda\x1c\xae\x05\x63\xdb\x34\xe0\x79\xff\xb0\x28\x50\x0c\xc9\xcd\x0c\x85\x9b\xa6\x20\x09\xc2\x31\x70\xb2\x90\x8a\x59\xb5\x26\x27\x9a\x8f\x9c\xcc\xa9\x35\xe1\x68\xfd\x30\xce\x1d\x6a\x56\xd1\x14\xa0\x89\x66\x4d\x6d\x1f\xbb\xda\x30\x4c\x4b\xa4\x76\xc8\x2b\x8b\xc1\xcf\x14\x7a\x38\x7f\x73\x96\xd6\xb3\xb2\x25\x15\x99\x6e\x09\x33\x12\x66\x1c\x33\xd8\xd6\xc0\x6f\xd6\xec\xd7\xc5\x18\x15\x06\xed\x94\x49\xba\xc1\x74\xb8\xe9\x8b\xb7\x2e\x49\xd2\xfd\x4d\xca\x04\x9a\xe9\x62\x1d\x8e\xc6\x49\xef\x8f\x57\x36\xbf\x8e\xca\x2a\x53\x92\x8f\xa8\x23\xf7\x2e\x75\x3f\xa4\xac\x60\x7f\x19\xcd\xae\x5c\xfb\xb7\x16\x61\xdd\x68\xf5\x7d\x5a\xea\x3c\xe9\xd2\x49\x07\x44\xaf\x52\xb7\x18\x0b\xc3\xdd\x38\x58\xfa\x87\x0c\x9d\xff\x50\x5a\x2a\x97\x38\xba\x71\x6c\x46\x3f\x34\x0e\xfc\x41\x74\x49\x73\x9c\xec\x4f\x34\xb7\xc0\x7b\x53\xca\x86\x8b\x1b\x1f\xf4\x56\x8c\x8c\x26\x10\x97\xec\x75\xda\x0e\xee\xc1\x23\xd7\xe4\x3f\x01\x00\x00\xff\xff\x2d\xc1\x5f\x8e\xf7\x23\x00\x00"),
 		},
 		"/README.md.gotmpl": &vfsgen۰CompressedFileInfo{
 			name:             "README.md.gotmpl",
@@ -188,7 +188,7 @@ var HelmTemplates = func() http.FileSystem {
 		},
 		"/templates": &vfsgen۰DirInfo{
 			name:    "templates",
-			modTime: time.Date(2021, 4, 19, 12, 26, 7, 426378989, time.UTC),
+			modTime: time.Date(2021, 4, 22, 8, 17, 15, 85002580, time.UTC),
 		},
 		"/templates/NOTES.txt": &vfsgen۰CompressedFileInfo{
 			name:             "NOTES.txt",
@@ -255,7 +255,7 @@ var HelmTemplates = func() http.FileSystem {
 		},
 		"/templates/cp-rbac.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "cp-rbac.yaml",
-			modTime:          time.Date(2021, 4, 19, 12, 26, 7, 426873037, time.UTC),
+			modTime:          time.Date(2021, 4, 22, 8, 17, 15, 85452672, time.UTC),
 			uncompressedSize: 3713,
 
 			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x56\xcd\x6e\xdb\x30\x0c\xbe\xe7\x29\x84\xec\x36\xc0\x2e\x06\xec\x50\xe4\xb6\xed\xb0\xcb\x30\x0c\xed\xd0\x3b\x23\xd3\x31\x17\x99\xf2\x24\x2a\xed\x9a\xe5\xdd\x07\x39\x4e\xec\xc4\x49\xd0\x38\x6d\xb7\xf9\x64\x92\xe2\x8f\xc8\x8f\x14\xa1\xa2\x3b\x74\x9e\x2c\x4f\xd4\xe2\xdd\x68\x4e\x9c\x4d\xd4\x2d\xba\x05\x69\xfc\xa0\xb5\x0d\x2c\xa3\x12\x05\x32\x10\x98\x8c\x94\x62\x28\x71\xa2\x96\x4b\x45\xac\x4d\xc8\x50\x8d\xe7\xa1\x84\x34\xb2\xc7\x2a\x55\xab\x55\xa2\x2d\x8b\xb3\x26\xa9\x0c\x30\x36\x1a\xbe\x02\xbd\x56\x4b\x6f\xd0\x20\x78\x4c\xbf\x6e\xd8\x6a\xb5\x1a\x29\x65\x60\x8a\xc6\x47\x0f\xcb\x65\xb2\x67\x7c\x2d\x8b\xe6\x7f\x2b\x26\xce\x90\x45\xbd\x8f\x6a\x49\x92\x8c\xba\x17\x70\x53\xd0\x29\x04\x29\xac\xa3\x47\x10\xb2\x9c\xce\xaf\x7d\x4a\xf6\x6a\x7b\xb5\x4f\x26\x78\x41\x77\x63\x0d\x5e\x78\xaf\x41\x11\xbb\x60\xb0\xd6\x49\x14\x54\xf4\xd9\xd9\x50\xd5\x64\xfc\x12\x35\x1e\xd7\xbf\x0e\xbd\x0d\x4e\x63\x47\xb2\x4d\xa2\xdf\xb2\x2a\x9b\xb5\x84\xb6\x9c\xd3\xac\x84\xaa\x65\xb1\xcd\x9a\xd3\x0b\x74\xd3\x8e\xad\x19\xca\xf6\xdf\x90\x6f\x89\x7b\x10\x5d\x9c\x1f\x9b\x5f\xa3\x65\x98\xaf\x26\x7c\x87\x20\xb8\x25\x43\x95\x75\xc9\x6a\x58\x5c\xb8\x40\x96\x83\x51\xed\xb9\x3b\x69\xbf\xae\x27\xd9\x63\x4e\x22\x7e\x6a\x44\xf8\x3e\x8b\xd8\xd3\xac\x90\x56\x52\xa2\x2f\x3a\x07\x1f\x2d\xef\x51\x07\x35\x7a\xcc\x26\xe1\x3d\x7e\xe5\xec\xc3\x2f\xc1\xb2\x32\x20\x1d\xc3\xe2\x20\xcf\x49\x57\xe8\x4a\xf2\xb1\x51\x7a\x22\x67\xc3\x8e\x02\x95\x68\x43\xc7\xb0\x43\x71\xf4\x0a\x05\x6e\xf2\x87\x06\x6b\xe1\x90\x7a\x68\x72\x3a\x90\x4c\x1d\xc2\x1c\x5d\x7b\x05\x7c\x10\x74\x0c\x66\x07\xac\x51\x90\x43\x30\x42\xfc\x03\xb5\xec\xa4\xa6\x40\x30\x52\xe8\x02\xf5\xbc\x97\x2f\x63\x67\x3d\x9e\x38\xb8\xa4\x07\xea\x19\x92\x2b\xfc\xa9\xd2\x3b\x30\x01\x7d\xda\xcc\x9b\x6f\x11\x49\x69\x69\xe3\x6c\x71\x58\x5a\xc1\xf1\x7a\x62\x5e\x90\xd8\xe8\x0c\x39\x5b\xdb\x69\x3c\x6f\xdd\x32\xa5\xc8\x30\x35\xd8\xc8\x0f\x57\xe1\x7a\x7d\x52\xb3\xce\x4f\x54\x83\x51\xee\xad\x9b\x27\x20\x02\xba\x28\x91\x25\xc9\x30\x27\xa6\x36\xd7\xcf\x82\xa7\xd3\x90\x81\x8a\x62\xf9\xb9\xc6\x7e\xf3\x22\x1c\xc5\x4f\xf0\x62\xcb\x8d\xe0\xd2\x60\x77\x12\x7d\xe6\xf8\x8a\xf3\xfd\x2a\x27\x06\x43\x8f\x1b\x24\xef\xf9\x1f\xbf\x1d\x0f\x6c\x93\xf5\x24\x7a\x31\xf3\xed\x54\x7c\x92\x8b\x37\x6a\x01\x86\x22\x72\x23\xb0\x94\xd8\x39\xb2\x9a\x62\x6e\x1d\x2a\xf2\x3e\x20\xf1\x4c\x95\xdf\xbf\xdc\x2a\x8d\x4e\x8e\x96\x39\x48\x81\x2c\xa4\xbb\x2f\xff\xb1\x08\x6b\x1f\x0e\x17\x84\xf7\xa7\x9e\x88\xcb\x36\x8c\x8f\xc4\x19\xf1\xec\xaf\x2c\x1a\xd6\xe0\x0d\xe6\x51\x6b\x93\xaa\x13\xd1\x8f\x94\xea\xaf\x47\xe7\xc7\xea\xc3\x34\xce\xd1\x66\xc1\x39\xb8\x4b\xc6\xec\x9e\x9f\x82\xa7\x6d\x91\x03\x8a\xf5\x0c\x7b\xe0\x0b\xee\xb7\x43\xb7\x45\x8f\xda\xa1\xfc\x1b\xef\xf5\xf1\x28\xf7\x76\xd6\x57\x0b\x74\x20\x4c\x9e\xa7\x99\x9f\x82\x96\x81\xbd\xfb\x7f\x36\xed\x9f\x00\x00\x00\xff\xff\x3f\x41\x40\xcd\x81\x0e\x00\x00"),
@@ -318,10 +318,10 @@ var HelmTemplates = func() http.FileSystem {
 		},
 		"/values.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "values.yaml",
-			modTime:          time.Date(2021, 4, 19, 12, 39, 19, 584398748, time.UTC),
+			modTime:          time.Date(2021, 4, 22, 8, 6, 5, 751847903, time.UTC),
 			uncompressedSize: 5847,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xb4\x58\x5b\x8f\xdb\xb6\xf2\x7f\xd7\xa7\x18\x38\x0f\x4d\x00\x5f\x36\xf9\x37\x8b\x42\x4f\xff\x8d\xb7\x3d\x35\x92\x6c\x8c\xf5\x6e\xcf\x43\x51\x60\x29\x72\x2c\xf3\x98\x22\x75\x48\xca\x5e\xb7\xe8\x77\x3f\x18\x92\x92\x65\x47\xbb\x49\x0e\x72\xde\x24\x6a\x6e\x9c\xcb\x6f\x66\x54\x2a\x53\x30\x95\x67\x00\xb2\x62\x25\xd2\x03\xc0\x0b\x98\x4c\xe0\x1a\xd7\xac\x51\x1e\x2c\x96\xd2\x79\x7b\x80\xb5\xb1\xc0\x94\x82\xf7\x4d\xc5\x60\x41\xd4\x2e\x50\xb7\x04\x39\x8c\xb6\x46\x97\x13\x61\xf8\x16\xed\x64\xdb\x54\x2c\x3d\x4f\x0b\xa9\xbd\x65\x87\xa9\x34\xa3\xa3\x82\xbb\x0d\x82\x48\x4a\x3c\x2b\x4f\xe5\x07\x6b\xdc\x18\xf6\x1b\xc9\x37\x20\xbd\x43\xb5\x6e\xa9\x1d\x78\x03\xd3\xf9\x86\x59\x3f\xbd\xaa\xeb\xdf\xd0\x3a\x69\x74\x10\xec\x59\x99\x67\x59\x10\xff\xcf\x0d\xfa\x0d\x5a\x30\x16\xb4\xf1\xc4\x52\x33\xcf\x37\xe0\x37\x08\x9e\xd9\x12\x3d\x68\x56\xa1\xab\x19\x47\xd8\x4b\x1f\xbf\xb8\x83\xf3\x58\x81\x62\x05\xaa\x2c\x30\xac\xc2\xc9\x4d\x4b\x9a\x83\xb7\x0d\x9e\xeb\xf0\x41\x87\xd4\xce\xd3\x0d\x34\xee\x61\x7e\x7b\xed\xa0\xc0\xb5\xb1\x08\x4d\x5d\x5a\x26\x10\xe0\xa5\x5c\x03\xd3\x07\xd8\xa3\x45\x20\x9f\x18\xd1\x70\x14\xd9\x0b\xb2\xbd\xb3\x81\xd8\x77\xf1\x52\x60\xd6\xc1\x1f\xaf\xb2\x24\x7b\x6e\x85\xfb\xa4\xef\xa3\x40\x8a\x16\x6a\x56\x28\x14\xc9\xac\x14\xc6\x65\xa3\xd4\x0a\xb9\x45\xef\x72\xf8\xfd\x8f\x2c\xe3\x86\x94\xa9\xa5\x62\x3a\x70\x05\xeb\x83\xa3\xe7\x4b\x50\xa6\x04\x85\x3b\x54\x39\x18\x8d\xa4\xd2\xac\xd7\x63\xa9\xd7\x66\x2c\xb0\x68\xca\x0c\x88\xe4\x43\xa4\x18\xd1\xf9\x28\x3b\x97\x51\x19\x81\xae\xe3\x77\x9e\x69\xc1\x94\xd1\x38\xb6\x58\x19\x8f\xe3\x98\x67\x19\x04\xc2\x1c\x46\x47\x8a\xa3\xac\x97\xce\x5b\xa9\xcb\x57\x9d\xd0\x3f\x49\x00\xc8\x35\xd8\x46\x6b\xa9\x4b\xa8\x1a\xe5\x25\x9d\x66\x10\x3e\xe6\x1d\xef\x27\xad\x0e\xd0\x38\x14\x20\x35\x3c\x44\xa5\x0f\x41\x59\x06\xb0\x15\xee\x1f\x41\xff\x95\x10\x16\x9d\xcb\x61\x74\xd4\x7a\xd3\x54\x05\x85\x70\x0d\x16\x6b\x25\x39\x73\xf4\x4c\x71\x48\x66\x4c\x61\x51\x6a\x63\x51\xc0\x7e\x83\x1a\x58\xe3\x8d\xe3\x4c\x91\x3d\xd2\xb5\xfe\xcf\xa0\x63\xcf\xe1\x75\x14\xfe\xab\xb1\x64\xac\x67\x0a\x96\x46\xc0\x55\x8f\x91\x1b\xbd\x96\x65\x63\x99\x8f\x99\xdb\x13\xda\x2b\xc1\x36\xbd\xbc\x49\x6a\x9e\x11\xd9\x96\x8a\xc5\x7f\x37\xd2\xa2\x0b\x37\xf8\xfd\x23\x7a\x2b\xb9\x83\x15\xda\x1d\xda\x3f\x5e\x6e\xbc\xaf\x5d\x3e\x9b\x95\xd2\x6f\x9a\x62\xca\x4d\x35\xdb\x36\x05\x5a\x8d\x1e\xdd\xc4\xc9\xd2\xcd\xaa\xc8\x32\x71\x81\xe5\x15\xf9\x93\x44\x71\xd5\x38\x8f\x36\x18\xd7\xe5\xdc\x9a\x29\x87\xd9\x69\x49\x57\x52\xcb\xaa\xa9\x28\x7e\xb5\x11\xa1\x56\x99\x52\x66\x1f\xa8\x2a\xa9\x6f\x3b\x37\xbd\x39\x63\x64\x8f\x7d\x26\xba\x17\x82\x37\x91\x8f\x3d\x1e\xf9\xde\xf6\x34\xfe\x62\x6c\x6b\x1a\x5d\x99\x79\x10\x46\xff\xe0\xc1\x35\x75\x6d\xac\xef\x3b\x76\xb6\x7b\x53\xa0\x67\xe3\xd3\xb3\xd7\x14\x44\x4a\x9c\x84\x1f\x04\x0c\xf3\xe5\xfd\xbd\x97\x4a\xfe\x19\xc2\xb3\x44\xcb\x51\x7b\x42\x47\xf8\xe9\xe2\x79\xd5\xcf\xea\x6d\x1c\x42\xf2\x6e\xbc\x54\x7c\x8e\x01\x07\x98\x80\x3f\xd4\x98\xc3\x2d\x3a\xd3\x58\x8e\xe9\x98\x12\x2b\x1e\xe4\xdd\x09\x04\xe8\xca\x81\xd7\x4d\xef\x2c\x1a\xdf\xa7\x82\x24\xb2\x77\x9b\x93\xaf\x6c\x87\x96\x95\xd8\xfb\x1c\xae\xd8\x95\x86\x11\x08\x0e\x15\x72\x6f\x6c\xc0\xe7\x63\x59\x44\x40\x81\x80\x28\x21\x66\x19\x80\x36\x02\x57\x89\x3c\x9a\x71\x4c\xae\xa9\x34\x33\xe3\x72\x50\x52\x37\x8f\x03\xdf\x98\xe5\x9b\x1c\x58\x25\x2e\x7f\xec\xf4\xff\xc2\xa4\x6a\x2c\x89\x57\x92\x1f\xda\xb2\xac\x1a\xcf\x3c\x15\xd1\x1e\x8b\x8d\x31\x5b\x90\x55\xad\xb0\x42\xed\x51\x40\x71\x38\xda\xb8\xd0\xff\x8a\x96\x73\x53\xd5\x46\xa3\xf6\x84\x8f\xe9\x30\xc9\x5e\x06\xd1\x79\x2a\x71\xd2\x4c\x79\x2f\x79\xbf\x13\x76\xb8\xf4\xa9\x26\x17\x31\xa5\x0e\x60\x76\x68\xad\x14\x78\x8a\x15\x27\x4e\x59\x45\x41\x3f\xb8\x10\xac\xac\x8b\x5a\x2f\x7b\x13\x49\x88\xd2\xd3\x92\xb2\x63\x20\xe7\x31\xdf\x16\xcb\x9e\x90\x2b\x21\x64\xb4\x0b\x98\xd6\xc6\x87\x38\x86\x12\xaa\x1b\x0f\x46\x3f\x27\xb5\xc7\x90\xc3\x5f\x7f\x77\x9e\xbf\xbf\xfd\x40\xf6\x44\xd4\x6c\x81\x30\x03\x88\x30\x7e\x1b\xe0\x75\x75\xd0\x7c\xf5\x99\xb3\x86\xae\x14\xc5\x4c\x22\x1b\xb8\x83\xe6\xbd\x2b\x7d\x30\x4c\xbc\x63\x8a\x69\x9e\xd0\xe5\xeb\x2f\x95\xcc\x4b\x72\xc9\x9e\x56\xfd\xe0\xe5\x3a\xe1\x4b\xaa\x50\xa3\x13\x62\x3e\x2d\x25\xe0\xfb\x63\x6d\x5a\x74\xa0\xca\xce\xe1\xed\xe5\x4f\x01\x81\xda\x69\x64\x00\xb0\x8f\x33\x87\xdb\xca\x1a\xb8\xc5\x98\xb1\xbe\x37\xf2\x7c\x44\xb7\x09\x9c\x44\x42\x2f\xf3\x40\x45\x25\xd8\xc1\x6a\x6c\x6d\x03\x59\x47\x82\x5a\x58\x00\x57\x23\x0f\xc4\xff\xdf\xca\x9e\x4c\x4e\x28\x1c\xec\xa5\x52\x50\x20\xf0\x8d\x71\xa8\xa1\x60\xd4\x29\x93\x17\x53\x93\xec\x88\xe3\x7c\x10\x1a\x09\x3a\xdf\xbe\x02\x81\x4d\x0e\xaf\x2f\x2e\xaa\xf6\xa0\xc2\xca\xd0\xd8\xf7\xe6\xed\xe5\x47\x19\xcd\xbd\xfb\xb0\x0a\x38\xb1\x63\x56\x9a\xc6\x41\x6c\x22\x84\x0d\x5e\x25\x47\x95\xa8\xd1\xc6\x91\xb3\x97\x34\x34\xab\x44\x10\xa5\x51\x85\x49\x8a\xb5\x72\x53\x6e\xfd\x18\xb6\x78\xa0\x07\x60\x5a\x00\x67\xe1\x91\x74\xd4\xd6\x78\xe4\xc1\xaf\x71\x64\xd4\x93\x04\xc7\x54\xf0\x55\xa3\x25\xef\x23\x9e\x0b\x3a\x6e\x02\x6e\x8e\x46\x7d\xed\xef\x98\xc3\xcb\x1f\x01\x35\x37\x02\x05\xcc\xaf\x80\xa3\xf5\x72\x4d\xfc\x08\x2f\xc3\x58\xc8\x2a\x04\xe6\xa8\x19\xf6\x47\xa9\x29\xd9\x98\x2e\x34\x8d\x0a\x5e\x44\x0b\x5f\x25\x05\x9c\xbd\x6b\xb4\x50\x47\x9d\xac\x96\xb1\x19\xff\x17\x0e\x18\xba\xf5\xd5\x72\x41\x81\xfc\xf5\xee\x6e\xb9\xfa\xe2\x4d\x07\xd5\x28\xe9\x3c\x55\xea\xb4\xc6\xaa\x7f\xf3\xd4\xd4\x38\xd3\xc0\x38\x47\xe7\x80\x89\x4a\x6a\x40\x2d\x6a\x23\xb5\x77\xed\x70\x3a\x64\x03\x57\x12\xb5\x9f\xa3\xf5\x6e\xf5\xb9\x39\xdd\x40\xf6\xbd\x5c\xc1\xad\x71\x0e\xbe\x31\xfc\x5b\xe1\x62\xd1\xcf\x83\xb1\x5f\xb6\x22\x25\x5f\x84\x8d\x3d\x8b\x73\x43\xa8\x72\x59\x6a\x78\x7f\xbd\x6a\xb1\x24\xa6\xfd\x14\xee\xe9\x3b\x99\x3a\x5f\xd2\x44\x1f\x1d\xfb\xa4\x4d\x03\x4b\x58\x3b\x09\x2f\xda\xa9\x3e\xf6\xab\x88\x46\xdd\x6b\x0e\x8b\xf5\x8d\xf1\x4b\x8b\x2e\x36\xb9\x33\xee\x20\x95\xe6\x53\xe3\xa4\x37\xf6\x90\xd6\xb6\xf6\x95\x16\x37\x5a\xd6\x78\xdd\x9b\xc5\xdb\xac\xf8\x0b\x7e\xd6\xbb\x1c\x62\x0b\x1c\x27\xbf\x1c\xdf\xdf\xe3\xa1\x7d\x81\xbf\x5f\xa5\xcf\x71\xe8\x13\x82\x2a\x06\xf5\x4e\x5a\xa3\xa9\x3d\x07\x54\xa0\xc9\xd1\x8d\x83\x9a\xfd\x86\xd6\xa0\x87\x9f\xf5\xee\x81\x90\x36\xac\x3e\x54\x67\xa9\x6b\xa0\xde\x75\x1c\x91\xe1\x21\x8a\x1f\xa4\x8e\x9f\x22\x1d\x01\xc5\xc3\x7b\x3c\x74\x84\x5b\x3c\x9c\xd2\xc1\x8e\xa9\x86\xa6\x4b\x0a\x61\xd6\x46\xc2\x1d\xf7\x89\x5e\xff\x19\xbc\x41\xcc\x8c\x16\x56\x6b\xe6\x52\x26\x84\x51\x39\xb5\xd9\x3a\xb5\x59\xd4\xbb\xdf\x98\xed\x1a\x6c\x1a\x5b\x12\x1c\xee\x98\x92\x82\x75\x03\xd3\xe7\xea\x6d\x13\xd4\x19\x60\x75\x4d\x2d\x40\xc7\xb0\x76\x7c\xad\xbc\x90\x6d\xeb\x46\xc5\x2d\xa5\x68\xa4\x12\xa1\x32\x1a\xe7\x4d\xd5\x8d\x50\x1a\xbc\xa9\xdb\xc2\x9d\x26\x95\xac\xd3\x76\x4b\xca\xba\x02\x31\x7b\x8d\xf6\x16\xd7\x68\x51\x1f\xc7\xcf\xaf\x34\x30\x30\x83\x6d\xb9\xff\x47\x66\x66\x5c\xcb\x6e\xa1\x5d\xa4\xfd\x3b\xe8\x0f\xeb\xf4\xfc\x66\x11\xb6\x72\x64\x82\xa4\xd5\xd6\x3c\x1e\x40\x6a\xd9\x15\x75\x98\x39\xce\xf6\x99\x33\x69\x51\x06\xf0\x0d\x91\x8b\xb6\x5d\xa6\xd7\x33\x9e\x55\xc0\x0c\xec\xf4\x12\xbf\x90\x36\x4c\x9c\x54\x76\x1a\xfd\xb5\xb4\x39\xcc\xd0\xf3\x19\xd7\x72\x46\x1b\x6d\xe3\x66\x1a\xfd\x54\x0c\x09\x29\xa4\x3e\x11\x50\x48\x1d\x05\xec\x98\x9d\x29\x59\x04\x21\x85\xd4\x43\xbc\x27\x4b\x66\x3b\x84\xd2\x61\x44\x9c\x58\xf3\x5a\x4e\xe9\xa8\xe5\x27\xbe\x6f\xfa\x1f\x40\xc7\x27\xfb\xc2\xea\x7c\x5f\x20\x91\xdf\x7f\x41\x38\x47\xca\xe0\xf1\x84\x73\xf1\x7f\xd4\xf9\xcf\xa9\xf4\x2f\xea\xe4\x1f\x54\x9f\xeb\x69\x74\x54\xa6\xd8\x9a\x9d\x54\x07\x36\x4b\x41\x25\xbf\x0d\x8a\xf1\xac\xec\x7e\x44\xc1\xe8\x62\x7a\x31\xbd\x1c\x65\x99\x60\x9e\x75\xff\x5e\xce\x2d\xbf\x6b\xc7\xf3\xeb\xaf\x46\x6a\x51\x8f\xce\x50\xfe\xfa\x1b\x7b\x44\xd8\x84\xa4\x5f\x3c\x67\x0b\x95\xc9\x57\x1a\x44\xb4\xa3\x2c\x93\xba\x0c\xff\x57\xba\x12\x5a\x87\xdf\x52\x63\x90\x1e\x04\xd6\xca\x1c\x1c\x2c\x22\x4d\x48\x8f\xe7\xdb\xf6\x70\x59\xd2\xa8\x4c\x68\x13\xbb\xf0\x35\xf3\x2c\xe0\x6c\x27\xb7\x40\x65\x74\xe9\xe2\x9f\x83\x0a\xdd\x26\x6f\x47\xee\x56\xc2\x9d\xac\x30\xa8\x8f\x22\x8c\x12\x61\x06\xa2\x31\x2e\x22\xba\xf3\x09\xd7\x19\xf7\x72\x17\x06\x3f\x61\x99\xd4\x52\x53\x70\xc3\x23\xc9\xc8\xe1\xff\x2e\xdc\x97\x7f\x23\x25\xc3\xce\xfe\x10\x0d\x2d\x9a\x43\xbb\xd3\x91\xfb\x3b\x2c\x4c\xad\x8f\xdc\xb7\x6f\x49\x2d\xeb\xe0\x4a\xf4\xfa\xe2\xe2\xe2\xf5\x40\xeb\x8c\x31\x0f\x9d\xf3\xa8\x26\x1b\x58\x3b\x29\x89\xb8\x57\x4f\x95\x47\xfa\xfc\xe5\x6c\x4c\x84\xd9\x7f\x02\x00\x00\xff\xff\xf6\x99\xfc\xb8\xd7\x16\x00\x00"),
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xb4\x58\xdd\x73\xdb\x36\x12\x7f\xe7\x5f\xb1\xa3\x3e\x34\x99\xd1\x87\x9d\x6b\x72\x1d\x3e\x9d\x23\xb7\x57\x4d\x12\x47\x63\xd9\xbd\x87\x4e\x67\x0c\x02\x2b\x0a\x27\x10\xe0\x01\xa0\x64\xb5\xd3\xff\xfd\x66\x01\x90\xa2\x14\xda\x49\x6e\x72\x6f\x24\xb8\x5f\xd8\x8f\xdf\xee\xb2\x54\xa6\x60\x2a\xcf\x00\x64\xc5\x4a\xa4\x07\x80\xef\x60\x32\x81\x6b\x5c\xb3\x46\x79\xb0\x58\x4a\xe7\xed\x01\xd6\xc6\x02\x53\x0a\xde\x35\x15\x83\x05\x51\xbb\x40\xdd\x12\xe4\x30\xda\x1a\x5d\x4e\x84\xe1\x5b\xb4\x93\x6d\x53\xb1\xf4\x3c\x2d\xa4\xf6\x96\x1d\xa6\xd2\x8c\x8e\x0a\xee\x36\x08\x22\x29\xf1\xac\x3c\x95\x1f\xac\x71\x63\xd8\x6f\x24\xdf\x80\xf4\x0e\xd5\xba\xa5\x76\xe0\x0d\x4c\xe7\x1b\x66\xfd\xf4\xaa\xae\x7f\x45\xeb\xa4\xd1\x41\xb0\x67\x65\x9e\x65\x41\xfc\xbf\x36\xe8\x37\x68\xc1\x58\xd0\xc6\x13\x4b\xcd\x3c\xdf\x80\xdf\x20\x78\x66\x4b\xf4\xa0\x59\x85\xae\x66\x1c\x61\x2f\x7d\xfc\xe2\x0e\xce\x63\x05\x8a\x15\xa8\xb2\xc0\xb0\x0a\x27\x37\x2d\x69\x0e\xde\x36\x78\xae\xc3\x07\x1d\x52\x3b\x4f\x37\xd0\xb8\x87\xf9\xed\xb5\x83\x02\xd7\xc6\x22\x34\x75\x69\x99\x40\x80\x17\x72\x0d\x4c\x1f\x60\x8f\x16\x81\x7c\x62\x44\xc3\x51\x64\xdf\x91\xed\x9d\x0d\xc4\xbe\x8b\x97\x02\xb3\x0e\xfe\x78\x99\x25\xd9\x73\x2b\xdc\x47\x7d\x1f\x05\x52\xb4\x50\xb3\x42\xa1\x48\x66\xa5\x30\x2e\x1b\xa5\x56\xc8\x2d\x7a\x97\xc3\x6f\xbf\x67\x19\x37\xa4\x4c\x2d\x15\xd3\x81\x2b\x58\x1f\x1c\x3d\x5f\x82\x32\x25\x28\xdc\xa1\xca\xc1\x68\x24\x95\x66\xbd\x1e\x4b\xbd\x36\x63\x81\x45\x53\x66\x40\x24\xef\x23\xc5\x88\xce\x47\xd9\xb9\x8c\xca\x08\x74\x1d\xbf\xf3\x4c\x0b\xa6\x8c\xc6\xb1\xc5\xca\x78\x1c\xc7\x3c\xcb\x20\x10\xe6\x30\x3a\x52\x1c\x65\xbd\x70\xde\x4a\x5d\xbe\xec\x84\xfe\x41\x02\x40\xae\xc1\x36\x5a\x4b\x5d\x42\xd5\x28\x2f\xe9\x34\x83\xf0\x31\xef\x78\x3f\x6a\x75\x80\xc6\xa1\x00\xa9\xe1\x21\x2a\x7d\x08\xca\x32\x80\xad\x70\xff\x0c\xfa\xaf\x84\xb0\xe8\x5c\x0e\xa3\xa3\xd6\x9b\xa6\x2a\x28\x84\x6b\xb0\x58\x2b\xc9\x99\xa3\x67\x8a\x43\x32\x63\x0a\x8b\x52\x1b\x8b\x02\xf6\x1b\xd4\xc0\x1a\x6f\x1c\x67\x8a\xec\x91\xae\xf5\x7f\x06\x1d\x7b\x0e\x97\x51\xf8\x2f\xc6\x92\xb1\x9e\x29\x58\x1a\x01\x57\x3d\x46\x6e\xf4\x5a\x96\x8d\x65\x3e\x66\x6e\x4f\x68\xaf\x04\xdb\xf4\xf2\x26\xa9\x79\x46\x64\x5b\x2a\x16\xff\xd3\x48\x8b\x2e\xdc\xe0\xb7\x0f\xe8\xad\xe4\x0e\x56\x68\x77\x68\x7f\x7f\xb1\xf1\xbe\x76\xf9\x6c\x56\x4a\xbf\x69\x8a\x29\x37\xd5\x6c\xdb\x14\x68\x35\x7a\x74\x13\x27\x4b\x37\xab\x22\xcb\xc4\x05\x96\x97\xe4\x4f\x12\xc5\x55\xe3\x3c\xda\x60\x5c\x97\x73\x6b\xa6\x1c\x66\xa7\x25\x5d\x49\x2d\xab\xa6\xa2\xf8\xd5\x46\x84\x5a\x65\x4a\x99\x7d\xa0\xaa\xa4\xbe\xed\xdc\xf4\xea\x8c\x91\x3d\xf6\x99\xe8\x5e\x08\xde\x44\x3e\xf6\x78\xe4\x7b\xdd\xd3\xf8\xb3\xb1\xad\x69\x74\x65\xe6\x41\x18\xfd\xbd\x07\xd7\xd4\xb5\xb1\xbe\xef\xd8\xd9\xee\x55\x81\x9e\x8d\x4f\xcf\x2e\x29\x88\x94\x38\x09\x3f\x08\x18\xe6\xcb\xfb\x7b\x2f\x95\xfc\x23\x84\x67\x89\x96\xa3\xf6\x84\x8e\xf0\xe3\xc5\xf3\xaa\x9f\xd5\xdb\x38\x84\xe4\xdd\x78\xa9\xf8\x1c\x03\x0e\x30\x01\x7f\xa8\x31\x87\x5b\x74\xa6\xb1\x1c\xd3\x31\x25\x56\x3c\xc8\xbb\x13\x08\xd0\x95\x03\xaf\x9b\xde\x59\x34\xbe\x4f\x05\x49\x64\xef\x36\x27\x5f\xd9\x0e\x2d\x2b\xb1\xf7\x39\x5c\xb1\x2b\x0d\x23\x10\x1c\x2a\xe4\xde\xd8\x80\xcf\xc7\xb2\x88\x80\x02\x01\x51\x42\xcc\x32\x00\x6d\x04\xae\x12\x79\x34\xe3\x98\x5c\x53\x69\x66\xc6\xe5\xa0\xa4\x6e\x1e\x07\xbe\x31\xcb\x37\x39\xb0\x4a\xbc\xf9\xa1\xd3\xff\x33\x93\xaa\xb1\x24\x5e\x49\x7e\x68\xcb\xb2\x6a\x3c\xf3\x54\x44\x7b\x2c\x36\xc6\x6c\x41\x56\xb5\xc2\x0a\xb5\x47\x01\xc5\xe1\x68\xe3\x42\xff\x3b\x5a\xce\x4d\x55\x1b\x8d\xda\x13\x3e\xa6\xc3\x24\x7b\x19\x44\xe7\xa9\xc4\x49\x33\xe5\xbd\xe4\xfd\x4e\xd8\xe1\xd2\xc7\x9a\x5c\xc4\x94\x3a\x80\xd9\xa1\xb5\x52\xe0\x29\x56\x9c\x38\x65\x15\x05\x7d\xef\x42\xb0\xb2\x2e\x6a\xbd\xec\x4d\x24\x21\x4a\x4f\x4b\xca\x8e\x81\x9c\xc7\x7c\x5b\x2c\x7b\x42\xae\x84\x90\xd1\x2e\x60\x5a\x1b\x1f\xe2\x18\x4a\xa8\x6e\x3c\x18\xfd\x9c\xd4\x1e\x43\x0e\x7f\xfe\xd5\x79\xfe\xfe\xf6\x3d\xd9\x13\x51\xb3\x05\xc2\x0c\x20\xc2\xf8\x6d\x80\xd7\xd5\x41\xf3\xd5\x27\xce\x1a\xba\x52\x14\x33\x89\x6c\xe0\x0e\x9a\xf7\xae\xf4\xde\x30\xf1\x96\x29\xa6\x79\x42\x97\x2f\xbf\x54\x32\x2f\xc9\x25\x7b\x5a\xf5\x83\x97\xeb\x84\x2f\xa9\x42\x8d\x4e\x88\xf9\xb4\x94\x80\xef\x8f\xb5\x69\xd1\x81\x2a\x3b\x87\xd7\x6f\x7e\x0c\x08\xd4\x4e\x23\x03\x80\x7d\x9c\x39\xdc\x56\xd6\xc0\x2d\xc6\x8c\xf5\xbd\x91\xe7\x03\xba\x4d\xe0\x24\x12\x7a\x99\x07\x2a\x2a\xc1\x0e\x56\x63\x6b\x1b\xc8\x3a\x12\xd4\xc2\x02\xb8\x1a\x79\x20\xfe\x47\x2b\x7b\x32\x39\xa1\x70\xb0\x97\x4a\x41\x81\xc0\x37\xc6\xa1\x86\x82\x51\xa7\x4c\x5e\x4c\x4d\xb2\x23\x8e\xf3\x41\x68\x24\xe8\x7c\xfb\x0a\x04\x36\x39\x5c\x5e\x5c\x54\xed\x41\x85\x95\xa1\xb1\xef\xd5\xeb\x37\x1f\x64\x34\xf7\xee\xfd\x2a\xe0\xc4\x8e\x59\x69\x1a\x07\xb1\x89\x10\x36\x78\x95\x1c\x55\xa2\x46\x1b\x47\xce\x5e\xd2\xd0\xac\x12\x41\x94\x46\x15\x26\x29\xd6\xca\x4d\xb9\xf5\x63\xd8\xe2\x81\x1e\x80\x69\x01\x9c\x85\x47\xd2\x51\x5b\xe3\x91\x07\xbf\xc6\x91\x51\x4f\x12\x1c\x53\xc1\x57\x8d\x96\xbc\x8f\x78\x2e\xe8\xb8\x09\xb8\x39\x1a\xf5\xb5\xbf\x65\x0e\xdf\xfc\x00\xa8\xb9\x11\x28\x60\x7e\x05\x1c\xad\x97\x6b\xe2\x47\x78\x11\xc6\x42\x56\x21\x30\x47\xcd\xb0\x3f\x4a\x4d\xc9\xc6\x74\xa1\x69\x54\xf0\x5d\xb4\xf0\x65\x52\xc0\xd9\xdb\x46\x0b\x75\xd4\xc9\x6a\x19\x9b\xf1\xff\xe0\x80\xa1\x5b\x5f\x2d\x17\x14\xc8\x5f\xee\xee\x96\xab\xcf\xde\x74\x50\x8d\x92\xce\x53\xa5\x4e\x6b\xac\xfa\x37\x4f\x4d\x8d\x33\x0d\x8c\x73\x74\x0e\x98\xa8\xa4\x06\xd4\xa2\x36\x52\x7b\xd7\x0e\xa7\x43\x36\x70\x25\x51\xfb\x39\x5a\xef\x56\x9f\x9a\xd3\x0d\x64\xdf\xca\x15\xdc\x1a\xe7\xe0\x2b\xc3\xbf\x15\x2e\x16\xfd\x3c\x18\xfb\x79\x2b\x52\xf2\x45\xd8\xd8\xb3\x38\x37\x84\x2a\x97\xa5\x86\x77\xd7\xab\x16\x4b\x62\xda\x4f\xe1\x9e\xbe\x93\xa9\xf3\x25\x4d\xf4\xd1\xb1\x4f\xda\x34\xb0\x84\xb5\x93\xf0\xa2\x9d\xea\x63\xbf\x8a\x68\xd4\xbd\xe6\xb0\x58\xdf\x18\xbf\xb4\xe8\x62\x93\x3b\xe3\x0e\x52\x69\x3e\x35\x4e\x7a\x63\x0f\x69\x6d\x6b\x5f\x69\x71\xa3\x65\x8d\xd7\xbd\x59\xbc\xcd\x8a\x3f\xe1\x27\xbd\xcb\x21\xb6\xc0\x71\xf2\xcb\xf1\xfd\x1d\x1e\xda\x17\xf8\xeb\x65\xfa\x1c\x87\x3e\x21\xa8\x62\x50\xef\xa4\x35\x9a\xda\x73\x40\x05\x9a\x1c\xdd\x38\xa8\xd9\x6f\x68\x0d\x7a\xf8\x49\xef\x1e\x08\x69\xc3\xea\x43\x75\x96\xba\x06\xea\x5d\xc7\x11\x19\x1e\xa2\xf8\x41\xea\xf8\x29\xd2\x11\x50\x3c\xbc\xc3\x43\x47\xb8\xc5\xc3\x29\x1d\xec\x98\x6a\x68\xba\xa4\x10\x66\x6d\x24\xdc\x71\x9f\xe8\xf5\x9f\xc1\x1b\xc4\xcc\x68\x61\xb5\x66\x2e\x65\x42\x18\x95\x53\x9b\xad\x53\x9b\x45\xbd\xfb\x95\xd9\xae\xc1\xa6\xb1\x25\xc1\xe1\x8e\x29\x29\x58\x37\x30\x7d\xaa\xde\x36\x41\x9d\x01\x56\xd7\xd4\x02\x74\x0c\x6b\xc7\xd7\xca\x0b\xd9\xb6\x6e\x54\xdc\x52\x8a\x46\x2a\x11\x2a\xa3\x71\xde\x54\xdd\x08\xa5\xc1\x9b\xba\x2d\xdc\x69\x52\xc9\x3a\x6d\xb7\xa4\xac\x2b\x10\xb3\xd7\x68\x6f\x71\x8d\x16\xf5\x71\xfc\xfc\x42\x03\x03\x33\xd8\x96\xfb\xff\x64\x66\xc6\xb5\xec\x16\xda\x45\xda\xbf\x83\xfe\xb0\x4e\xcf\x6f\x16\x61\x2b\x47\x26\x48\x5a\x6d\xcd\xe3\x01\xa4\x96\x5d\x51\x87\x99\xe3\x6c\x9f\x39\x93\x16\x65\x00\xdf\x10\xb9\x68\xdb\x65\x7a\x3d\xe3\x59\x05\xcc\xc0\x4e\x2f\xf1\x0b\x69\xc3\xc4\x49\x65\xa7\xd1\x5f\x4b\x9b\xc3\x0c\x3d\x9f\x71\x2d\x67\xb4\xd1\x36\x6e\xa6\xd1\x4f\xc5\x90\x90\x42\xea\x13\x01\x85\xd4\x51\xc0\x8e\xd9\x99\x92\x45\x10\x52\x48\x3d\xc4\x7b\xb2\x64\xb6\x43\x28\x1d\x46\xc4\x89\x35\xaf\xe5\x94\x8e\x5a\x7e\xe2\xfb\xaa\xff\x01\x74\x7c\xb2\x2f\xac\xce\xf7\x05\x12\xf9\xed\x17\x84\x73\xa4\x0c\x1e\x4f\x38\x17\xff\x47\x9d\xff\x9c\x4a\xff\xa2\x4e\xfe\x41\xf5\xb9\x9e\x46\x47\x65\x8a\xad\xd9\x49\x75\x60\xb3\x14\x54\xf2\xdb\xa0\x18\xcf\xca\xee\x47\x14\x8c\x2e\xa6\x17\xd3\xbf\x8f\xb2\x4c\x30\xcf\xba\x7f\x2f\xe7\x96\xdf\xb5\xe3\xf9\xf5\x17\x23\xb5\xa8\x47\x67\x28\x7f\xfd\x95\x3d\x22\x6c\x42\xd2\x2f\x9e\xb3\x85\xca\xe4\x0b\x0d\x22\xda\x51\x96\x49\x5d\x86\xff\x2b\x5d\x09\xad\xc3\x6f\xa9\x31\x48\x0f\x02\x6b\x65\x0e\x0e\x16\x91\x26\xa4\xc7\xf3\x6d\x7b\xb8\x2c\x69\x54\x26\xb4\x89\x5d\xf8\x9a\x79\x16\x70\xb6\x93\x5b\xa0\x32\xba\x74\xf1\xcf\x41\x85\x6e\x93\xb7\x23\x77\x2b\xe1\x4e\x56\x18\xd4\x47\x11\x46\x89\x30\x03\xd1\x18\x17\x11\xdd\xf9\x84\xeb\x8c\x7b\xb9\x0b\x83\x9f\xb0\x4c\x6a\xa9\x29\xb8\xe1\x91\x64\xe4\xf0\xb7\x0b\xf7\xf9\xdf\x48\xc9\xb0\xb3\x3f\x44\x43\x8b\xe6\xd0\xee\x74\xe4\xfe\x06\x0b\x53\xeb\x23\xf7\xf5\x5b\x52\xcb\x3a\xb8\x12\x5d\x5e\x5c\x5c\x5c\x0e\xb4\xce\x18\xf3\xd0\x39\x8f\x6a\xb2\x81\xb5\x93\x92\x88\x7b\xf5\x54\x79\xa4\xcf\x9f\xcf\xc6\x44\x98\xfd\x37\x00\x00\xff\xff\x58\x10\x9e\x6c\xd7\x16\x00\x00"),
 		},
 	}
 	fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
diff --git a/deployments/charts/kuma/README.md b/deployments/charts/kuma/README.md
index 440e6dfd9..5b73b0c92 100644
--- a/deployments/charts/kuma/README.md
+++ b/deployments/charts/kuma/README.md
@@ -56,7 +56,7 @@ A Helm chart for the Kuma Control Plane
 | cni.nodeSelector | object | `{"kubernetes.io/arch":"amd64","kubernetes.io/os":"linux"}` | Node Selector for the CNI pods |
 | cni.image.registry | string | `"docker.io"` | CNI image registry |
 | cni.image.repository | string | `"lobkovilya/install-cni"` | CNI image repository |
-| cni.image.tag | string | `"0.0.6"` | CNI image tag |
+| cni.image.tag | string | `"0.0.7"` | CNI image tag |
 | dataPlane.image.repository | string | `"kuma-dp"` | The Kuma DP image repository |
 | dataPlane.image.pullPolicy | string | `"IfNotPresent"` | Kuma DP ImagePullPolicy |
 | dataPlane.initImage.repository | string | `"kuma-init"` | The Kuma DP init image repository |
diff --git a/deployments/charts/kuma/values.yaml b/deployments/charts/kuma/values.yaml
index 9e0bcb9f4..841b86b57 100644
--- a/deployments/charts/kuma/values.yaml
+++ b/deployments/charts/kuma/values.yaml
@@ -155,7 +155,7 @@ cni:
     # -- CNI image repository
     repository: "lobkovilya/install-cni"
     # -- CNI image tag
-    tag: "0.0.6"
+    tag: "0.0.7"
 
 dataPlane:
   image:
diff --git a/docs/cmd/kumactl/HELP.md b/docs/cmd/kumactl/HELP.md
index d670b5abf..b95e1e634 100644
--- a/docs/cmd/kumactl/HELP.md
+++ b/docs/cmd/kumactl/HELP.md
@@ -250,7 +250,7 @@ Flags:
       --cni-net-dir string                          set the CNI install directory (default "/etc/cni/multus/net.d")
       --cni-registry string                         registry for the image of the Kuma CNI component (default "docker.io")
       --cni-repository string                       repository for the image of the Kuma CNI component (default "lobkovilya/install-cni")
-      --cni-version string                          version of the image of the Kuma CNI component (default "0.0.6")
+      --cni-version string                          version of the image of the Kuma CNI component (default "0.0.7")
       --control-plane-registry string               registry for the image of the Kuma Control Plane component (default "kong-docker-kuma-docker.bintray.io")
       --control-plane-repository string             repository for the image of the Kuma Control Plane component (default "kuma-cp")
       --control-plane-service-name string           Service name of the Kuma Control Plane (default "kuma-control-plane")
diff --git a/go.mod b/go.mod
index bc1cb35f0..abb3f055c 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/kumahq/kuma
 
-go 1.15
+go 1.16
 
 require (
 	cirello.io/pglock v1.8.0
diff --git a/go.sum b/go.sum
index c89fbe23b..5b306219f 100644
--- a/go.sum
+++ b/go.sum
@@ -110,8 +110,12 @@ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go
 github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
 github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
 github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
+github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
+github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
 github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=
 github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
+github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
 github.com/Masterminds/semver/v3 v3.1.0 h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk=
 github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
 github.com/Masterminds/sprig v2.20.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
@@ -224,6 +228,8 @@ github.com/circonus-labs/circonusllhist v0.1.4/go.mod h1:kMXHVDlOchFAehlya5ePtbp
 github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd h1:Hy1EFDPdhjoQGPJVuGIP1CwjCHSRN3+pb821CcbPLC4=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd/go.mod h1:HNVadOiXCy7Jk3R2knJ+qm++zkncJxxBMpjdGgJ+UJc=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M=
@@ -332,7 +338,6 @@ github.com/elazarl/goproxy v0.0.0-20190630181448-f1e96bc0f4c5/go.mod h1:/Zj4wYkg
 github.com/elazarl/goproxy v0.0.0-20190911111923-ecfe977594f1 h1:yY9rWGoXv1U5pl4gxqlULARMQD7x0QG85lqEXTWysik=
 github.com/elazarl/goproxy v0.0.0-20190911111923-ecfe977594f1/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
 github.com/elazarl/goproxy/ext v0.0.0-20190630181448-f1e96bc0f4c5/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
-github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2 h1:dWB6v3RcOy03t/bUadywsbyrQwCqZeNIEX6M1OtSZOM=
 github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
@@ -340,6 +345,7 @@ github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
 github.com/emicklei/go-restful v2.14.2+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful v2.15.0+incompatible h1:8KpYO/Xl/ZudZs5RNOEhWMBY4hmzlZhhRd9cu+jrZP4=
 github.com/emicklei/go-restful v2.15.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/envoyproxy/data-plane-api v0.0.0-20210105195927-01fb099f5a86/go.mod h1:ysQJ12w0R8EJ2rE11wHBGdm+4q7Ft5RTmABx23SOscc=
 github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -563,6 +569,8 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
+github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
@@ -571,6 +579,7 @@ github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTV
 github.com/googleapis/gnostic v0.2.2/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk=
 github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
+github.com/googleapis/googleapis v0.0.0-20210422004218-6b711581c9a6/go.mod h1:XrPm4xpez/lHHyE+8/G+NqQRcB4lg42HF9zQVTvxtXw=
 github.com/gophercloud/gophercloud v0.1.0 h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o=
 github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
@@ -582,7 +591,6 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
 github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
 github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
@@ -664,6 +672,8 @@ github.com/howeyc/fsnotify v0.9.0/go.mod h1:41HzSPxBGeFRQKEEwgh49TRw/nKBsYZ2cF1O
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs=
 github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=
+github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
 github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
 github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -673,6 +683,8 @@ github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ
 github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
 github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
+github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
 github.com/imkira/go-observer v1.0.3/go.mod h1:zLzElv2cGTHufQG17IEILJMPDg32TD85fFgKyFv00wU=
 github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
@@ -755,6 +767,8 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7 h1:WgwGa7QgVbj2QVzRU5hQaMxSJ29WppDHVczo3FUIc84=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7/go.mod h1:F+c9RjgKlv1Q3UEoPJCtMJw8Fd+X5PfG5jlkTSfZOMA=
 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/labstack/echo/v4 v4.1.17/go.mod h1:Tn2yRQL/UclUalpb5rPdXDevbkJ+lp/2svdyFBg6CHQ=
 github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
@@ -776,6 +790,7 @@ github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-b
 github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
 github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
 github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
+github.com/lyft/protoc-gen-star v0.5.2/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
 github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
 github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
@@ -825,6 +840,8 @@ github.com/miekg/dns v1.1.40/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7
 github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
 github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
+github.com/mitchellh/copystructure v1.1.1 h1:Bp6x9R1Wn16SIz3OfeDr0b7RnCG2OB66Y7PQyC/cvq4=
+github.com/mitchellh/copystructure v1.1.1/go.mod h1:EBArHfARyrSWO/+Wyr9zwEkc6XMFB9XyNgFNmRkZZU4=
 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
 github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -1269,7 +1286,6 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1682,7 +1698,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
 gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
 helm.sh/helm/v3 v3.2.4/go.mod h1:ZaXz/vzktgwjyGGFbUWtIQkscfE7WYoRGP2szqAFHR0=
 helm.sh/helm/v3 v3.3.4 h1:tbad6WQVMxEw1HlVBvI2rQqOblmI5lgXOrWAMwJ198M=
diff --git a/mk/build.mk b/mk/build.mk
index f9506af3a..052178741 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -51,6 +51,7 @@ build/coredns:
 	cp $(COREDNS_PLUGIN_CFG_PATH) $(COREDNS_TMP_DIRECTORY)
 	cd $(COREDNS_TMP_DIRECTORY) && \
 		GOOS= GOARCH= go generate coredns.go && \
+		go get github.com/coredns/alternate && \
 		$(GO_BUILD_COREDNS) -ldflags="-s -w -X github.com/coredns/coredns/coremain.GitCommit=$(shell git describe --dirty --always)" -o $(BUILD_ARTIFACTS_DIR)/coredns/coredns
 	rm -rf "$(COREDNS_TMP_DIRECTORY)"
 
diff --git a/mk/dev.mk b/mk/dev.mk
index 837660764..f419db935 100644
--- a/mk/dev.mk
+++ b/mk/dev.mk
@@ -4,11 +4,12 @@ GOLANG_PROTOBUF_VERSION := v1.4.3
 GOLANGCI_LINT_VERSION := v1.35.2
 GINKGO_VERSION := v1.14.2
 HELM_DOCS_VERSION := 1.4.0
+GOIMPORTS_VERSION := v0.1.0
 
 CI_KUBEBUILDER_VERSION ?= 2.3.1
 CI_MINIKUBE_VERSION ?= v1.18.1
 CI_KUBECTL_VERSION ?= v1.18.14
-CI_TOOLS_IMAGE ?= circleci/golang:1.15.11
+CI_TOOLS_IMAGE ?= circleci/golang:1.16.3
 
 CI_TOOLS_DIR ?= $(HOME)/bin
 GOPATH_DIR := $(shell go env GOPATH | awk -F: '{print $$1}')
@@ -88,17 +89,17 @@ dev/install/protobuf-wellknown-types:: ## Bootstrap: Install Protobuf well-known
 
 .PHONY: dev/install/protoc-gen-go
 dev/install/protoc-gen-go: ## Bootstrap: Install Protoc Go Plugin (protobuf Go generator)
-	go get github.com/golang/protobuf/protoc-gen-go@$(GOLANG_PROTOBUF_VERSION)
+	go install github.com/golang/protobuf/protoc-gen-go@$(GOLANG_PROTOBUF_VERSION)
 
 .PHONY: dev/install/protoc-gen-validate
 dev/install/protoc-gen-validate: ## Bootstrap: Install Protoc Gen Validate Plugin (protobuf validation code generator)
-	go get github.com/envoyproxy/protoc-gen-validate@$(PROTOC_PGV_VERSION)
+	go install github.com/envoyproxy/protoc-gen-validate@$(PROTOC_PGV_VERSION)
 
 .PHONY: dev/install/ginkgo
 dev/install/ginkgo: ## Bootstrap: Install Ginkgo (BDD testing framework)
 	# see https://github.com/onsi/ginkgo#set-me-up
 	echo "Installing Ginkgo ..."
-	go get github.com/onsi/ginkgo/ginkgo@$(GINKGO_VERSION)  # installs the ginkgo CLI
+	go install github.com/onsi/ginkgo/ginkgo@$(GINKGO_VERSION)  # installs the ginkgo CLI
 	echo "Ginkgo has been installed at $(GOPATH_BIN_DIR)/ginkgo"
 
 .PHONY: dev/install/kubebuilder
@@ -180,7 +181,7 @@ dev/install/golangci-lint: ## Bootstrap: Install golangci-lint
 
 .PHONY: dev/install/goimports
 dev/install/goimports: ## Bootstrap: Install goimports
-	go get golang.org/x/tools/cmd/goimports
+	go install golang.org/x/tools/cmd/goimports@$(GOIMPORTS_VERSION)
 
 .PHONY: dev/install/helm3
 dev/install/helm3: ## Bootstrap: Install Helm 3
diff --git a/pkg/config/app/kumactl/v1alpha1/config.pb.go b/pkg/config/app/kumactl/v1alpha1/config.pb.go
index feb1b24aa..acb870412 100644
--- a/pkg/config/app/kumactl/v1alpha1/config.pb.go
+++ b/pkg/config/app/kumactl/v1alpha1/config.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: pkg/config/app/kumactl/v1alpha1/config.proto
 
diff --git a/pkg/plugins/ca/builtin/config/builtin_ca_config.pb.go b/pkg/plugins/ca/builtin/config/builtin_ca_config.pb.go
index 6e16801dd..f2e5888f4 100644
--- a/pkg/plugins/ca/builtin/config/builtin_ca_config.pb.go
+++ b/pkg/plugins/ca/builtin/config/builtin_ca_config.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: pkg/plugins/ca/builtin/config/builtin_ca_config.proto
 
diff --git a/pkg/plugins/ca/provided/config/provided_ca_config.pb.go b/pkg/plugins/ca/provided/config/provided_ca_config.pb.go
index 7aed49a46..3e5809646 100644
--- a/pkg/plugins/ca/provided/config/provided_ca_config.pb.go
+++ b/pkg/plugins/ca/provided/config/provided_ca_config.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: pkg/plugins/ca/provided/config/provided_ca_config.proto
 
diff --git a/pkg/plugins/resources/k8s/native/Dockerfile b/pkg/plugins/resources/k8s/native/Dockerfile
index 303e22789..33f6218ba 100644
--- a/pkg/plugins/resources/k8s/native/Dockerfile
+++ b/pkg/plugins/resources/k8s/native/Dockerfile
@@ -1,5 +1,5 @@
 # Build the manager binary
-FROM golang:1.15.11 as builder
+FROM golang:1.16.3 as builder
 
 WORKDIR /workspace
 # Copy the Go Modules manifests
diff --git a/pkg/plugins/resources/k8s/native/Makefile b/pkg/plugins/resources/k8s/native/Makefile
index ad6642c36..1fd431f2d 100644
--- a/pkg/plugins/resources/k8s/native/Makefile
+++ b/pkg/plugins/resources/k8s/native/Makefile
@@ -88,7 +88,7 @@ docker-push:
 # download controller-gen if necessary
 controller-gen:
 ifeq (, $(shell which controller-gen))
-	go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0
+	go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0
 CONTROLLER_GEN=$(GOPATH_BIN_DIR)/controller-gen
 else
 CONTROLLER_GEN=$(shell which controller-gen)
diff --git a/pkg/plugins/resources/k8s/native/go.mod b/pkg/plugins/resources/k8s/native/go.mod
index 373c7cc5b..c147543a8 100644
--- a/pkg/plugins/resources/k8s/native/go.mod
+++ b/pkg/plugins/resources/k8s/native/go.mod
@@ -1,6 +1,6 @@
 module github.com/kumahq/kuma/pkg/plugins/resources/k8s/native
 
-go 1.15
+go 1.16
 
 require (
 	github.com/go-logr/logr v0.1.0
diff --git a/pkg/plugins/resources/k8s/native/go.sum b/pkg/plugins/resources/k8s/native/go.sum
index bb7d48f20..808cef10d 100644
--- a/pkg/plugins/resources/k8s/native/go.sum
+++ b/pkg/plugins/resources/k8s/native/go.sum
@@ -11,6 +11,9 @@ github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxB
 github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
 github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
+github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
@@ -32,6 +35,8 @@ github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb
 github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd h1:Hy1EFDPdhjoQGPJVuGIP1CwjCHSRN3+pb821CcbPLC4=
+github.com/cncf/udpa v0.0.2-0.20201211205326-cc1b757b3edd/go.mod h1:HNVadOiXCy7Jk3R2knJ+qm++zkncJxxBMpjdGgJ+UJc=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
@@ -60,6 +65,7 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn
 github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
+github.com/envoyproxy/data-plane-api v0.0.0-20210105195927-01fb099f5a86/go.mod h1:ysQJ12w0R8EJ2rE11wHBGdm+4q7Ft5RTmABx23SOscc=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad h1:EmNYJhPYy0pOFjCx2PrgtaBXmee0iUX9hLlxE1xHOJE=
@@ -170,11 +176,14 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
+github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk=
 github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
+github.com/googleapis/googleapis v0.0.0-20210422004218-6b711581c9a6/go.mod h1:XrPm4xpez/lHHyE+8/G+NqQRcB4lg42HF9zQVTvxtXw=
 github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
@@ -188,10 +197,13 @@ github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+l
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
 github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
 github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
 github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
+github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -213,7 +225,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7 h1:WgwGa7QgVbj2QVzRU5hQaMxSJ29WppDHVczo3FUIc84=
+github.com/kumahq/protoc-gen-kumadoc v0.1.7/go.mod h1:F+c9RjgKlv1Q3UEoPJCtMJw8Fd+X5PfG5jlkTSfZOMA=
 github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
+github.com/lyft/protoc-gen-star v0.5.2/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
 github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -226,8 +241,10 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx
 github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
 github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/mitchellh/copystructure v1.1.1/go.mod h1:EBArHfARyrSWO/+Wyr9zwEkc6XMFB9XyNgFNmRkZZU4=
 github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
diff --git a/pkg/plugins/runtime/k8s/webhooks/injector/injector.go b/pkg/plugins/runtime/k8s/webhooks/injector/injector.go
index 50fd97fa7..c45fe8ef9 100644
--- a/pkg/plugins/runtime/k8s/webhooks/injector/injector.go
+++ b/pkg/plugins/runtime/k8s/webhooks/injector/injector.go
@@ -426,7 +426,7 @@ func (i *KumaInjector) NewInitContainer(pod *kube_core.Pod) (kube_core.Container
 
 	if i.cfg.BuiltinDNS.Enabled {
 		dnsArg = append(dnsArg,
-			"--redirect-dns",
+			"--redirect-all-dns-traffic",
 			"--redirect-dns-port", strconv.FormatInt(int64(i.cfg.BuiltinDNS.Port), 10),
 		)
 	}
@@ -437,6 +437,7 @@ func (i *KumaInjector) NewInitContainer(pod *kube_core.Pod) (kube_core.Container
 		ImagePullPolicy: kube_core.PullIfNotPresent,
 		Command:         []string{"/usr/bin/kumactl", "install", "transparent-proxy"},
 		Args: append([]string{
+			// changes here shall be reflected in CNI iptables.go
 			"--redirect-outbound-port",
 			fmt.Sprintf("%d", i.cfg.SidecarContainer.RedirectPortOutbound),
 			"--redirect-inbound=" + redirectInbound,
diff --git a/pkg/transparentproxy/config/config.go b/pkg/transparentproxy/config/config.go
index cbb79b6e9..fc95474bb 100644
--- a/pkg/transparentproxy/config/config.go
+++ b/pkg/transparentproxy/config/config.go
@@ -2,6 +2,7 @@ package config
 
 type TransparentProxyConfig struct {
 	DryRun                 bool
+	Verbose                bool
 	RedirectPortOutBound   string
 	RedirectInBound        bool
 	RedirectPortInBound    string
@@ -11,6 +12,7 @@ type TransparentProxyConfig struct {
 	UID                    string
 	GID                    string
 	RedirectDNS            bool
+	RedirectAllDNSTraffic  bool
 	AgentDNSListenerPort   string
 	DNSUpstreamTargetChain string
 }
diff --git a/pkg/transparentproxy/istio/go.mod b/pkg/transparentproxy/istio/go.mod
index 08e5667cf..fc4893c5a 100644
--- a/pkg/transparentproxy/istio/go.mod
+++ b/pkg/transparentproxy/istio/go.mod
@@ -1,6 +1,6 @@
 module github.com/kumahq/kuma/pkg/transparentproxy/istio
 
-go 1.15
+go 1.16
 
 require (
 	github.com/pkg/errors v0.9.1
diff --git a/pkg/transparentproxy/istio/istio.go b/pkg/transparentproxy/istio/istio.go
index d6cc7b143..0d65cad0a 100644
--- a/pkg/transparentproxy/istio/istio.go
+++ b/pkg/transparentproxy/istio/istio.go
@@ -42,14 +42,16 @@ func (tp *IstioTransparentProxy) Setup(cfg *config.TransparentProxyConfig) (stri
 	viper.Set(constants.SkipRuleApply, false)
 	viper.Set(constants.RunValidation, false)
 	viper.Set(constants.RedirectDNS, cfg.RedirectDNS)
-	viper.Set(constants.RedirectDNSServers, false) // force all DNS traffic capture
+	viper.Set(constants.RedirectAllDNSTraffic, cfg.RedirectAllDNSTraffic)
 	viper.Set(constants.AgentDNSListenerPort, cfg.AgentDNSListenerPort)
 	viper.Set(constants.DNSUpstreamTargetChain, cfg.DNSUpstreamTargetChain)
 
-	tp.redirectStdOutStdErr()
-	defer func() {
-		tp.restoreStdOutStderr()
-	}()
+	if !cfg.Verbose {
+		tp.redirectStdOutStdErr()
+		defer func() {
+			tp.restoreStdOutStderr()
+		}()
+	}
 
 	savedArgs := os.Args[1:]
 	os.Args = os.Args[:1]
@@ -64,14 +66,22 @@ func (tp *IstioTransparentProxy) Setup(cfg *config.TransparentProxyConfig) (stri
 	return tp.getStdOutStdErr(), nil
 }
 
-func (tp *IstioTransparentProxy) Cleanup(dryRun bool) (string, error) {
+func (tp *IstioTransparentProxy) Cleanup(dryRun, verbose bool) (string, error) {
 
 	viper.Set(constants.DryRun, dryRun)
 	viper.Set(constants.DNSUpstreamTargetChain, "")
 
-	tp.redirectStdOutStdErr()
+	if !verbose {
+		tp.redirectStdOutStdErr()
+		defer func() {
+			tp.restoreStdOutStderr()
+		}()
+	}
+
+	savedArgs := os.Args[1:]
+	os.Args = os.Args[:1]
 	defer func() {
-		tp.restoreStdOutStderr()
+		os.Args = append(os.Args, savedArgs...)
 	}()
 
 	if err := uninstall.GetCommand().Execute(); err != nil {
diff --git a/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/cmd/root.go b/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/cmd/root.go
index 3c0a5c5ab..1de21c6bb 100644
--- a/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/cmd/root.go
+++ b/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/cmd/root.go
@@ -55,7 +55,7 @@ func constructConfig() *config.Config {
 		ProxyUID:               viper.GetString(constants.ProxyUID),
 		ProxyGID:               viper.GetString(constants.ProxyGID),
 		RedirectDNS:            viper.GetBool(constants.RedirectDNS),
-		RedirectDNSServers:     viper.GetBool(constants.RedirectDNSServers),
+		RedirectAllDNSTraffic:  viper.GetBool(constants.RedirectAllDNSTraffic),
 		AgentDNSListenerPort:   viper.GetString(constants.AgentDNSListenerPort),
 		DNSUpstreamTargetChain: viper.GetString(constants.DNSUpstreamTargetChain),
 	}
@@ -80,14 +80,14 @@ func constructConfig() *config.Config {
 	// Lookup DNS nameservers. We only do this if DNS is enabled in case of some obscure theoretical
 	// case where reading /etc/resolv.conf could fail.
 	if cfg.RedirectDNS {
-		if cfg.RedirectDNSServers {
+		if cfg.RedirectAllDNSTraffic {
+			cfg.DNSServersV4, cfg.DNSServersV6 = []string{"0.0.0.0"}, []string{"::"}
+		} else {
 			dnsConfig, err := dns.ClientConfigFromFile("/etc/resolv.conf")
 			if err != nil {
 				panic(fmt.Sprintf("failed to load /etc/resolv.conf: %v", err))
 			}
 			cfg.DNSServersV4, cfg.DNSServersV6 = common.SplitV4V6(dnsConfig.Servers)
-		} else {
-			cfg.DNSServersV4, cfg.DNSServersV6 = []string{"0.0.0.0"}, []string{"::"}
 		}
 	}
 
@@ -122,10 +122,10 @@ func bindFlags(cmd *cobra.Command, args []string) {
 	}
 	viper.SetDefault(constants.RedirectDNS, dnsCaptureByAgent)
 
-	if err := viper.BindPFlag(constants.RedirectDNSServers, cmd.Flags().Lookup(constants.RedirectDNSServers)); err != nil {
+	if err := viper.BindPFlag(constants.RedirectAllDNSTraffic, cmd.Flags().Lookup(constants.RedirectAllDNSTraffic)); err != nil {
 		handleError(err)
 	}
-	viper.SetDefault(constants.RedirectDNSServers, false)
+	viper.SetDefault(constants.RedirectAllDNSTraffic, false)
 
 	if err := viper.BindPFlag(constants.AgentDNSListenerPort, cmd.Flags().Lookup(constants.AgentDNSListenerPort)); err != nil {
 		handleError(err)
@@ -152,7 +152,7 @@ func init() {
 
 	rootCmd.Flags().Bool(constants.RedirectDNS, dnsCaptureByAgent, "Enable capture of dns traffic by istio-agent")
 
-	rootCmd.Flags().Bool(constants.RedirectDNSServers, false, "Enable capture of configured dns servers traffic by istio-agent ")
+	rootCmd.Flags().Bool(constants.RedirectAllDNSTraffic, false, "Enable capture of all dns traffic by istio-agent ")
 
 	rootCmd.Flags().String(constants.AgentDNSListenerPort, constants.IstioAgentDNSListenerPort, "set listen port for DNS agent")
 }
diff --git a/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/config/config.go b/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/config/config.go
index 52ae136db..e53503b6f 100644
--- a/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/config/config.go
+++ b/pkg/transparentproxy/istio/tools/istio-clean-iptables/pkg/config/config.go
@@ -26,7 +26,7 @@ type Config struct {
 	ProxyUID               string   `json:"PROXY_UID"`
 	ProxyGID               string   `json:"PROXY_GID"`
 	RedirectDNS            bool     `json:"REDIRECT_DNS"`
-	RedirectDNSServers     bool     `json:"REDIRECT_DNS_SERVERS"`
+	RedirectAllDNSTraffic  bool     `json:"REDIRECT_ALL_DNS_TRAFFIC"`
 	DNSServersV4           []string `json:"DNS_SERVERS_V4"`
 	DNSServersV6           []string `json:"DNS_SERVERS_V6"`
 	AgentDNSListenerPort   string   `json:"AGENT_DNS_LISTENER_PORT"`
diff --git a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/root.go b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/root.go
index ef453306a..d492c0e5a 100644
--- a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/root.go
+++ b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/root.go
@@ -99,7 +99,7 @@ func constructConfig() *config.Config {
 		SkipRuleApply:           viper.GetBool(constants.SkipRuleApply),
 		RunValidation:           viper.GetBool(constants.RunValidation),
 		RedirectDNS:             viper.GetBool(constants.RedirectDNS),
-		RedirectDNSServers:      viper.GetBool(constants.RedirectDNSServers),
+		RedirectAllDNSTraffic:   viper.GetBool(constants.RedirectAllDNSTraffic),
 		AgentDNSListenerPort:    viper.GetString(constants.AgentDNSListenerPort),
 		DNSUpstreamTargetChain:  viper.GetString(constants.DNSUpstreamTargetChain),
 	}
@@ -132,14 +132,14 @@ func constructConfig() *config.Config {
 	// Lookup DNS nameservers. We only do this if DNS is enabled in case of some obscure theoretical
 	// case where reading /etc/resolv.conf could fail.
 	if cfg.RedirectDNS {
-		if cfg.RedirectDNSServers {
+		if cfg.RedirectAllDNSTraffic {
+			cfg.DNSServersV4, cfg.DNSServersV6 = []string{"0.0.0.0"}, []string{"::"}
+		} else {
 			dnsConfig, err := dns.ClientConfigFromFile("/etc/resolv.conf")
 			if err != nil {
 				panic(fmt.Sprintf("failed to load /etc/resolv.conf: %v", err))
 			}
 			cfg.DNSServersV4, cfg.DNSServersV6 = SplitV4V6(dnsConfig.Servers)
-		} else {
-			cfg.DNSServersV4, cfg.DNSServersV6 = []string{"0.0.0.0"}, []string{"::"}
 		}
 	}
 	return cfg
@@ -314,10 +314,10 @@ func bindFlags(cmd *cobra.Command, args []string) {
 	}
 	viper.SetDefault(constants.RedirectDNS, dnsCaptureByAgent)
 
-	if err := viper.BindPFlag(constants.RedirectDNSServers, cmd.Flags().Lookup(constants.RedirectDNSServers)); err != nil {
+	if err := viper.BindPFlag(constants.RedirectAllDNSTraffic, cmd.Flags().Lookup(constants.RedirectAllDNSTraffic)); err != nil {
 		handleError(err)
 	}
-	viper.SetDefault(constants.RedirectDNSServers, false)
+	viper.SetDefault(constants.RedirectAllDNSTraffic, false)
 
 	if err := viper.BindPFlag(constants.AgentDNSListenerPort, cmd.Flags().Lookup(constants.AgentDNSListenerPort)); err != nil {
 		handleError(err)
@@ -397,7 +397,7 @@ func init() {
 
 	rootCmd.Flags().Bool(constants.RedirectDNS, dnsCaptureByAgent, "Enable capture of dns traffic by istio-agent")
 
-	rootCmd.Flags().Bool(constants.RedirectDNSServers, false, "Enable capture of configured dns servers traffic by istio-agent ")
+	rootCmd.Flags().Bool(constants.RedirectAllDNSTraffic, false, "Enable capture of all dns traffic by istio-agent ")
 
 	rootCmd.Flags().String(constants.AgentDNSListenerPort, constants.IstioAgentDNSListenerPort, "set listen port for DNS agent")
 }
diff --git a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/run.go b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/run.go
index 6e66adeda..92bc974e7 100644
--- a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/run.go
+++ b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/cmd/run.go
@@ -396,7 +396,7 @@ func (iptConfigurator *IptablesConfigurator) run() {
 
 	if iptConfigurator.cfg.EnableInboundIPv6 {
 		// TODO: (abhide): Move this out of this method
-		iptConfigurator.ext.RunOrFail(constants.IP, "-6", "addr", "add", "::6/128", "dev", "lo")
+		iptConfigurator.ext.RunQuietlyAndIgnore(constants.IP, "-6", "addr", "add", "::6/128", "dev", "lo")
 	}
 
 	// Do not capture internal interface.
diff --git a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/config/config.go b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/config/config.go
index 6e4518017..3e06e5a59 100644
--- a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/config/config.go
+++ b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/config/config.go
@@ -46,7 +46,7 @@ type Config struct {
 	SkipRuleApply           bool          `json:"SKIP_RULE_APPLY"`
 	RunValidation           bool          `json:"RUN_VALIDATION"`
 	RedirectDNS             bool          `json:"REDIRECT_DNS"`
-	RedirectDNSServers      bool          `json:"REDIRECT_DNS_SERVERS"`
+	RedirectAllDNSTraffic   bool          `json:"REDIRECT_ALL_DNS_TRAFFIC"`
 	EnableInboundIPv6       bool          `json:"ENABLE_INBOUND_IPV6"`
 	DNSServersV4            []string      `json:"DNS_SERVERS_V4"`
 	DNSServersV6            []string      `json:"DNS_SERVERS_V6"`
@@ -83,7 +83,7 @@ func (c *Config) Print() {
 	fmt.Printf("KUBEVIRT_INTERFACES=%s\n", c.KubevirtInterfaces)
 	fmt.Printf("ENABLE_INBOUND_IPV6=%t\n", c.EnableInboundIPv6)
 	fmt.Printf("DNS_CAPTURE=%t\n", c.RedirectDNS)
-	fmt.Printf("DNS_CAPTURE_SERVERS=%t\n", c.RedirectDNSServers)
+	fmt.Printf("REDIRECT_ALL_DNS_TRAFFIC=%t\n", c.RedirectAllDNSTraffic)
 	fmt.Printf("DNS_SERVERS=%s,%s\n", c.DNSServersV4, c.DNSServersV6)
 	fmt.Printf("AGENT_DNS_LISTENER_PORT=%s\n", c.AgentDNSListenerPort)
 	fmt.Printf("DNS_UPSTREAM_TARGET_CHAIN=%s\n", c.DNSUpstreamTargetChain)
diff --git a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/constants/constants.go b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/constants/constants.go
index 9c464ca02..72994464a 100644
--- a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/constants/constants.go
+++ b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/constants/constants.go
@@ -89,7 +89,7 @@ const (
 	IptablesProbePort         = "iptables-probe-port"
 	ProbeTimeout              = "probe-timeout"
 	RedirectDNS               = "redirect-dns"
-	RedirectDNSServers        = "redirect-dns-servers"
+	RedirectAllDNSTraffic     = "redirect-all-dns-traffic"
 	AgentDNSListenerPort      = "agent-dns-listener-port"
 	DNSUpstreamTargetChain    = "dns-upstream-target-chain"
 )
diff --git a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/dependencies/implementation.go b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/dependencies/implementation.go
index c3a66bd80..4dfd24304 100644
--- a/pkg/transparentproxy/istio/tools/istio-iptables/pkg/dependencies/implementation.go
+++ b/pkg/transparentproxy/istio/tools/istio-iptables/pkg/dependencies/implementation.go
@@ -39,7 +39,8 @@ func (r *RealDependencies) execute(cmd string, redirectStdout bool, args ...stri
 func (r *RealDependencies) RunOrFail(cmd string, args ...string) {
 	err := r.execute(cmd, false, args...)
 	if err != nil {
-		panic(err)
+		fmt.Errorf("Apply failed for:\n%s %s\nWith error: %v", cmd, strings.Join(args, " "), err)
+		os.Exit(1)
 	}
 }
 
diff --git a/pkg/transparentproxy/transparentproxy.go b/pkg/transparentproxy/transparentproxy.go
index a92198d30..08f793ee0 100644
--- a/pkg/transparentproxy/transparentproxy.go
+++ b/pkg/transparentproxy/transparentproxy.go
@@ -18,7 +18,7 @@ type TransparentProxy interface {
 	Setup(cfg *config.TransparentProxyConfig) (string, error)
 
 	// returns the stdout and stderr as string and an error if such has occurred
-	Cleanup(dryRun bool) (string, error)
+	Cleanup(dryRun, verbose bool) (string, error)
 }
 
 func DefaultTransparentProxy() TransparentProxy {
diff --git a/tools/releases/changelog/go.mod b/tools/releases/changelog/go.mod
index 7d7280923..b55d13bfa 100644
--- a/tools/releases/changelog/go.mod
+++ b/tools/releases/changelog/go.mod
@@ -1,6 +1,6 @@
 module github.com/kumahq/kuma/tools/releases/changelog
 
-go 1.15
+go 1.16
 
 require (
 	github.com/go-git/go-git/v5 v5.2.0


Test patch:
diff --git a/app/kumactl/cmd/completion/testdata/bash.golden b/app/kumactl/cmd/completion/testdata/bash.golden
index 5ef9a984d..744252449 100644
--- a/app/kumactl/cmd/completion/testdata/bash.golden
+++ b/app/kumactl/cmd/completion/testdata/bash.golden
@@ -2394,6 +2394,8 @@ _kumactl_install_transparent-proxy()
     local_nonpersistent_flags+=("--kuma-dp-user=")
     flags+=("--modify-iptables")
     local_nonpersistent_flags+=("--modify-iptables")
+    flags+=("--redirect-all-dns-traffic")
+    local_nonpersistent_flags+=("--redirect-all-dns-traffic")
     flags+=("--redirect-dns")
     local_nonpersistent_flags+=("--redirect-dns")
     flags+=("--redirect-dns-port=")
@@ -2417,6 +2419,8 @@ _kumactl_install_transparent-proxy()
     local_nonpersistent_flags+=("--skip-resolv-conf")
     flags+=("--store-firewalld")
     local_nonpersistent_flags+=("--store-firewalld")
+    flags+=("--verbose")
+    local_nonpersistent_flags+=("--verbose")
     flags+=("--config-file=")
     two_word_flags+=("--config-file")
     flags+=("--log-level=")
@@ -2480,6 +2484,8 @@ _kumactl_uninstall_transparent-proxy()
 
     flags+=("--dry-run")
     local_nonpersistent_flags+=("--dry-run")
+    flags+=("--verbose")
+    local_nonpersistent_flags+=("--verbose")
     flags+=("--config-file=")
     two_word_flags+=("--config-file")
     flags+=("--log-level=")
diff --git a/app/kumactl/cmd/completion/testdata/zsh.golden b/app/kumactl/cmd/completion/testdata/zsh.golden
index c660c5417..982fca7ab 100644
--- a/app/kumactl/cmd/completion/testdata/zsh.golden
+++ b/app/kumactl/cmd/completion/testdata/zsh.golden
@@ -974,7 +974,8 @@ function _kumactl_install_transparent-proxy {
     '--kuma-dp-uid[the UID of the user that will run kuma-dp]:' \
     '--kuma-dp-user[the user that will run kuma-dp]:' \
     '--modify-iptables[modify the host iptables to redirect the traffic to Envoy]' \
-    '--redirect-dns[redirect the DNS requests to a specified port]' \
+    '--redirect-all-dns-traffic[redirect all DNS requests to a specified port. Implies --redirect-dns.]' \
+    '--redirect-dns[redirect all DNS requests to the servers in /etc/resolv.conf to a specified port]' \
     '--redirect-dns-port[the port where the DNS agent is listening]:' \
     '--redirect-dns-upstream-target-chain[(optional) the iptables chain where the upstream DNS requests should be directed to. It is only applied for IP V4. Use with care.]:' \
     '--redirect-inbound[redirect the inbound traffic to the Envoy. Should be disabled for Gateway data plane proxies.]' \
@@ -983,6 +984,7 @@ function _kumactl_install_transparent-proxy {
     '--redirect-outbound-port[outbound port redirected to Envoy, as specified in dataplane'\''s `networking.transparentProxying.redirectPortOutbound`]:' \
     '--skip-resolv-conf[skip modifying the host `/etc/resolv.conf`]' \
     '--store-firewalld[store the iptables changes with firewalld]' \
+    '--verbose[verbose]' \
     '--config-file[path to the configuration file to use]:' \
     '--log-level[log level: one of off|info|debug]:' \
     '(-m --mesh)'{-m,--mesh}'[mesh to use]:'
@@ -1018,6 +1020,7 @@ function _kumactl_uninstall {
 function _kumactl_uninstall_transparent-proxy {
   _arguments \
     '--dry-run[dry run]' \
+    '--verbose[verbose]' \
     '--config-file[path to the configuration file to use]:' \
     '--log-level[log level: one of off|info|debug]:' \
     '(-m --mesh)'{-m,--mesh}'[mesh to use]:'
diff --git a/app/kumactl/cmd/install/install_transparent_proxy_test.go b/app/kumactl/cmd/install/install_transparent_proxy_test.go
index d072a1f3c..64a7fa8ec 100644
--- a/app/kumactl/cmd/install/install_transparent_proxy_test.go
+++ b/app/kumactl/cmd/install/install_transparent_proxy_test.go
@@ -75,7 +75,7 @@ var _ = Describe("kumactl install tracing", func() {
 				"--kuma-dp-uid", "0",
 				"--kuma-cp-ip", "1.2.3.4",
 				"--skip-resolv-conf",
-				"--redirect-dns",
+				"--redirect-all-dns-traffic",
 				"--redirect-dns-port", "12345",
 				"--redirect-dns-upstream-target-chain", "DOCKER_OUTPUT",
 			},
diff --git a/app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml b/app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml
index 8c3786018..ae542b0c7 100644
--- a/app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml
+++ b/app/kumactl/cmd/install/testdata/install-control-plane.cni-enabled.golden.yaml
@@ -834,7 +834,7 @@ spec:
       terminationGracePeriodSeconds: 5
       containers:
         - name: install-cni
-          image: "docker.io/lobkovilya/install-cni:0.0.6"
+          image: "docker.io/lobkovilya/install-cni:0.0.7"
           imagePullPolicy: Always
           command: ["/install-cni.sh"]
           env:
diff --git a/mk/e2e.new.mk b/mk/e2e.new.mk
index 9a400c972..05e603007 100644
--- a/mk/e2e.new.mk
+++ b/mk/e2e.new.mk
@@ -15,6 +15,52 @@ KUMA_IN_EKS ?=
 KUMA_DEFAULT_RETRIES ?=
 KUMA_DEFAULT_TIMEOUT ?=
 
+ENV_VARS ?= API_VERSION="$(API_VERSION)"
+
+ifdef KUMA_UNIVERSAL_IMAGE
+	ENV_VARS += KUMA_UNIVERSAL_IMAGE=$(KUMA_UNIVERSAL_IMAGE)
+endif
+
+ifdef HELM_CHART_PATH
+	ENV_VARS += HELM_CHART_PATH=$(HELM_CHART_PATH)
+endif
+
+ifdef KUMA_GLOBAL_IMAGE_TAG
+	ENV_VARS += KUMA_GLOBAL_IMAGE_TAG=$(KUMA_GLOBAL_IMAGE_TAG)
+endif
+
+ifdef KUMA_GLOBAL_IMAGE_REGISTRY
+	ENV_VARS += KUMA_GLOBAL_IMAGE_REGISTRY=$(KUMA_GLOBAL_IMAGE_REGISTRY)
+endif
+
+ifdef KUMA_CP_IMAGE_REPOSITORY
+	ENV_VARS += KUMA_CP_IMAGE_REPOSITORY=$(KUMA_CP_IMAGE_REPOSITORY)
+endif
+
+ifdef KUMA_DP_IMAGE_REPOSITORY
+	ENV_VARS += KUMA_DP_IMAGE_REPOSITORY=$(KUMA_DP_IMAGE_REPOSITORY)
+endif
+
+ifdef KUMA_DP_INIT_IMAGE_REPOSITORY
+	ENV_VARS += KUMA_DP_INIT_IMAGE_REPOSITORY=$(KUMA_DP_INIT_IMAGE_REPOSITORY)
+endif
+
+ifdef KUMA_USE_LOAD_BALANCER
+	ENV_VARS += KUMA_USE_LOAD_BALANCER=$(KUMA_USE_LOAD_BALANCER)
+endif
+
+ifdef KUMA_IN_EKS
+	ENV_VARS += KUMA_IN_EKS=$(KUMA_IN_EKS)
+endif
+
+ifdef KUMA_DEFAULT_RETRIES
+	ENV_VARS += KUMA_DEFAULT_RETRIES=$(KUMA_DEFAULT_RETRIES)
+endif
+
+ifdef KUMA_DEFAULT_TIMEOUT
+	ENV_VARS += KUMA_DEFAULT_TIMEOUT=$(KUMA_DEFAULT_TIMEOUT)
+endif
+
 TEST_NAMES = $(shell ls -1 ./test/e2e)
 ALL_TESTS = $(addprefix ./test/e2e/, $(addsuffix /..., $(TEST_NAMES)))
 E2E_PKG_LIST ?= $(ALL_TESTS)
@@ -56,19 +102,8 @@ test/e2e/test:
 	for t in $(E2E_PKG_LIST); do \
 		K8SCLUSTERS="$(K8SCLUSTERS)" \
 		KUMACTLBIN=${BUILD_ARTIFACTS_DIR}/kumactl/kumactl \
-		API_VERSION="$(API_VERSION)" \
-		HELM_CHART_PATH="$(HELM_CHART_PATH)" \
-		KUMA_GLOBAL_IMAGE_TAG="$(KUMA_GLOBAL_IMAGE_TAG)" \
-		KUMA_GLOBAL_IMAGE_REGISTRY="$(KUMA_GLOBAL_IMAGE_REGISTRY)" \
-		KUMA_CP_IMAGE_REPOSITORY="$(KUMA_CP_IMAGE_REPOSITORY)" \
-		KUMA_DP_IMAGE_REPOSITORY="$(KUMA_DP_IMAGE_REPOSITORY)" \
-		KUMA_DP_INIT_IMAGE_REPOSITORY="$(KUMA_DP_INIT_IMAGE_REPOSITORY)" \
-		KUMA_USE_LOAD_BALANCER="$(KUMA_USE_LOAD_BALANCER)" \
-		KUMA_IN_EKS="$(KUMA_IN_EKS)" \
-		KUMA_UNIVERSAL_IMAGE="$(KUMA_UNIVERSAL_IMAGE)" \
-		KUMA_DEFAULT_RETRIES="$(KUMA_DEFAULT_RETRIES)" \
-        KUMA_DEFAULT_TIMEOUT="$(KUMA_DEFAULT_TIMEOUT)" \
-			$(GO_TEST) -v -timeout=45m $$t || exit; \
+		$(ENV_VARS) \
+		$(GO_TEST) -v -timeout=45m $$t || exit; \
 	done
 
 # test/e2e/debug is used for quicker feedback of E2E tests (ex. debugging flaky tests)
diff --git a/pkg/plugins/runtime/k8s/webhooks/injector/testdata/inject.25.golden.yaml b/pkg/plugins/runtime/k8s/webhooks/injector/testdata/inject.25.golden.yaml
index 7c1e8d02c..1353de5ff 100644
--- a/pkg/plugins/runtime/k8s/webhooks/injector/testdata/inject.25.golden.yaml
+++ b/pkg/plugins/runtime/k8s/webhooks/injector/testdata/inject.25.golden.yaml
@@ -150,7 +150,7 @@ spec:
     - --exclude-outbound-ports
     - ""
     - --skip-resolv-conf
-    - --redirect-dns
+    - --redirect-all-dns-traffic
     - --redirect-dns-port
     - "25053"
     command:
diff --git a/pkg/test/apis/sample/v1alpha1/sample_types.pb.go b/pkg/test/apis/sample/v1alpha1/sample_types.pb.go
index 9383452d8..31b4d9ea8 100644
--- a/pkg/test/apis/sample/v1alpha1/sample_types.pb.go
+++ b/pkg/test/apis/sample/v1alpha1/sample_types.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
+// 	protoc-gen-go v1.23.0
 // 	protoc        v3.14.0
 // source: pkg/test/apis/sample/v1alpha1/sample_types.proto
 
diff --git a/pkg/test/xds/client/go.mod b/pkg/test/xds/client/go.mod
index a8376a97b..91ef94818 100644
--- a/pkg/test/xds/client/go.mod
+++ b/pkg/test/xds/client/go.mod
@@ -1,6 +1,6 @@
 module github.com/Kong/kuma/pkg/test/xds/client
 
-go 1.15
+go 1.16
 
 require (
 	github.com/envoyproxy/go-control-plane v0.9.7
diff --git a/test/e2e/deploy/kuma_deploy_universal_transparent_proxy_test.go b/test/e2e/deploy/kuma_deploy_universal_transparent_proxy_test.go
index c94c822aa..c7d0265c2 100644
--- a/test/e2e/deploy/kuma_deploy_universal_transparent_proxy_test.go
+++ b/test/e2e/deploy/kuma_deploy_universal_transparent_proxy_test.go
@@ -13,9 +13,6 @@ import (
 )
 
 var _ = Describe("Test Universal Transparent Proxy deployment", func() {
-
-	const iterations = 10
-
 	var cluster Cluster
 	var deployOptsFuncs []DeployOptionsFunc
 
@@ -50,34 +47,68 @@ var _ = Describe("Test Universal Transparent Proxy deployment", func() {
 	})
 
 	It("should access the service using .mesh", func() {
+		retry.DoWithRetry(cluster.GetTesting(), "curl remote service",
+			DefaultRetries, DefaultTimeout,
+			func() (string, error) {
+				stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
+					"curl", "-v", "-m", "3", "echo-server_kuma-test_svc_8080.mesh")
+				if err != nil {
+					return "should retry", err
+				}
+				if strings.Contains(stdout, "HTTP/1.1 200 OK") {
+					return "Accessing service successful", nil
+				}
+				return "should retry", errors.Errorf("should retry")
+			})
+		retry.DoWithRetry(cluster.GetTesting(), "curl service with dots",
+			DefaultRetries, DefaultTimeout,
+			func() (string, error) {
+				stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
+					"curl", "-v", "-m", "3", "echo-server.kuma-test.svc.8080.mesh")
+				if err != nil {
+					return "should retry", err
+				}
+				if strings.Contains(stdout, "HTTP/1.1 200 OK") {
+					return "Accessing service successful", nil
+				}
+				return "should retry", errors.Errorf("should retry")
+			})
+	})
 
-		for i := 0; i < iterations; i++ {
-			retry.DoWithRetry(cluster.GetTesting(), "curl remote service",
-				DefaultRetries, DefaultTimeout,
-				func() (string, error) {
-					stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
-						"curl", "-v", "-m", "3", "echo-server_kuma-test_svc_8080.mesh")
-					if err != nil {
-						return "should retry", err
-					}
-					if strings.Contains(stdout, "HTTP/1.1 200 OK") {
-						return "Accessing service successful", nil
-					}
-					return "should retry", errors.Errorf("should retry")
-				})
-			retry.DoWithRetry(cluster.GetTesting(), "curl remote service with dots",
-				DefaultRetries, DefaultTimeout,
-				func() (string, error) {
-					stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
-						"curl", "-v", "-m", "3", "echo-server.kuma-test.svc.8080.mesh")
-					if err != nil {
-						return "should retry", err
-					}
-					if strings.Contains(stdout, "HTTP/1.1 200 OK") {
-						return "Accessing service successful", nil
-					}
-					return "should retry", errors.Errorf("should retry")
-				})
-		}
+	It("should re-install transparent proxy", func() {
+		retry.DoWithRetry(cluster.GetTesting(), "curl remote service",
+			DefaultRetries, DefaultTimeout,
+			func() (string, error) {
+				stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
+					"curl", "-v", "-m", "3", "echo-server_kuma-test_svc_8080.mesh")
+				if err != nil {
+					return "should retry", err
+				}
+				if strings.Contains(stdout, "HTTP/1.1 200 OK") {
+					return "Accessing service successful", nil
+				}
+				return "should retry", errors.Errorf("should retry")
+			})
+
+		stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
+			"/usr/bin/kumactl", "install", "transparent-proxy",
+			"--kuma-dp-user", "kuma-dp", "--skip-resolv-conf", "--verbose")
+		Expect(stdout).To(ContainSubstring("Transparent proxy set up successfully"))
+		Expect(err).ToNot(HaveOccurred())
+
+		retry.DoWithRetry(cluster.GetTesting(), "curl service with dots",
+			DefaultRetries, DefaultTimeout,
+			func() (string, error) {
+				stdout, _, err := cluster.ExecWithRetries("", "", "demo-client",
+					"curl", "-v", "-m", "3", "echo-server.kuma-test.svc.8080.mesh")
+				if err != nil {
+					return "should retry", err
+				}
+				if strings.Contains(stdout, "HTTP/1.1 200 OK") {
+					return "Accessing service successful", nil
+				}
+				return "should retry", errors.Errorf("should retry")
+			})
 	})
+
 })
diff --git a/test/framework/env.go b/test/framework/env.go
index 8bf9732d9..7409cd207 100644
--- a/test/framework/env.go
+++ b/test/framework/env.go
@@ -36,7 +36,7 @@ func GetGlobalImageRegistry() string {
 }
 
 func HasGlobalImageRegistry() bool {
-	return envBool("KUMA_GLOBAL_IMAGE_REGISTRY")
+	return envIsPresent("KUMA_GLOBAL_IMAGE_REGISTRY")
 }
 
 func GetGlobalImageTag() string {
@@ -44,7 +44,7 @@ func GetGlobalImageTag() string {
 }
 
 func HasGlobalImageTag() bool {
-	return envBool("KUMA_GLOBAL_IMAGE_TAG")
+	return envIsPresent("KUMA_GLOBAL_IMAGE_TAG")
 }
 
 func GetCpImageRegistry() string {
@@ -52,7 +52,7 @@ func GetCpImageRegistry() string {
 }
 
 func HasCpImageRegistry() bool {
-	return envBool("KUMA_CP_IMAGE_REPOSITORY")
+	return envIsPresent("KUMA_CP_IMAGE_REPOSITORY")
 }
 
 func GetDpImageRegistry() string {
@@ -60,7 +60,7 @@ func GetDpImageRegistry() string {
 }
 
 func HasDpImageRegistry() bool {
-	return envBool("KUMA_DP_IMAGE_REPOSITORY")
+	return envIsPresent("KUMA_DP_IMAGE_REPOSITORY")
 }
 
 func GetDpInitImageRegistry() string {
@@ -68,7 +68,7 @@ func GetDpInitImageRegistry() string {
 }
 
 func HasDpInitImageRegistry() bool {
-	return envBool("KUMA_DP_INIT_IMAGE_REPOSITORY")
+	return envIsPresent("KUMA_DP_INIT_IMAGE_REPOSITORY")
 }
 
 func GetUniversalImage() string {
@@ -84,7 +84,7 @@ func GetApiVersion() string {
 }
 
 func HasApiVersion() bool {
-	return envBool(envAPIVersion)
+	return envIsPresent(envAPIVersion)
 }
 
 func GetHelmChartPath() string {
@@ -92,7 +92,7 @@ func GetHelmChartPath() string {
 }
 
 func HasHelmChartPath() bool {
-	return envBool("HELM_CHART_PATH")
+	return envIsPresent("HELM_CHART_PATH")
 }
 
 func GetCniConfName() string {
@@ -100,7 +100,7 @@ func GetCniConfName() string {
 }
 
 func HasCniConfName() bool {
-	return envBool("KUMA_CNI_CONF_NAME")
+	return envIsPresent("KUMA_CNI_CONF_NAME")
 }
 
 func UseLoadBalancer() bool {
@@ -120,8 +120,13 @@ func GetKumactlBin() string {
 }
 
 func IsK8sClustersStarted() bool {
-	_, found := os.LookupEnv(envK8SCLUSTERS)
-	return found
+	return envIsPresent(envK8SCLUSTERS)
+}
+
+func envIsPresent(env string) bool {
+	_, ok := os.LookupEnv(env)
+
+	return ok
 }
 
 func envBool(env string) bool {