You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2020/12/04 17:14:36 UTC

[camel-k] 06/07: fix(crd): Override OpenAPI schema type for RawMessage

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 9cbbb956e1d1f5d15313f90da1d6427aa741f65f
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Fri Dec 4 10:46:06 2020 +0100

    fix(crd): Override OpenAPI schema type for RawMessage
---
 .../bases/camel.apache.org_integrationkits.yaml    |  3 +-
 .../camel.apache.org_integrationplatforms.yaml     |  6 ++--
 .../crd/bases/camel.apache.org_integrations.yaml   |  6 ++--
 .../bases/camel.apache.org_kameletbindings.yaml    | 12 +++----
 config/crd/bases/camel.apache.org_kamelets.yaml    |  3 +-
 deploy/crd-integration-kit.yaml                    |  3 +-
 deploy/crd-integration-platform.yaml               |  6 ++--
 deploy/crd-integration.yaml                        |  6 ++--
 deploy/crd-kamelet-binding.yaml                    | 12 +++----
 deploy/crd-kamelet.yaml                            |  3 +-
 .../integrationkits.camel.apache.org.crd.yaml      |  3 +-
 .../integrationplatforms.camel.apache.org.crd.yaml |  6 ++--
 .../integrations.camel.apache.org.crd.yaml         |  6 ++--
 .../kameletbindings.camel.apache.org.crd.yaml      | 12 +++----
 .../kamelets.camel.apache.org.crd.yaml             |  3 +-
 deploy/resources.go                                | 20 +++++------
 helm/camel-k/crds/crd-integration-kit.yaml         |  3 +-
 helm/camel-k/crds/crd-integration-platform.yaml    |  6 ++--
 helm/camel-k/crds/crd-integration.yaml             |  6 ++--
 helm/camel-k/crds/crd-kamelet-binding.yaml         | 12 +++----
 helm/camel-k/crds/crd-kamelet.yaml                 |  3 +-
 pkg/apis/addtoscheme_camel_v1.go                   |  2 +-
 pkg/apis/addtoscheme_camel_v1alpha1.go             |  2 +-
 pkg/apis/camel/v1/common_types.go                  | 15 ++++----
 pkg/apis/camel/v1/common_types_support.go          | 22 ++++++++++++
 pkg/apis/camel/v1/zz_generated.deepcopy.go         | 24 +++++++++++--
 pkg/apis/camel/v1alpha1/kamelet_binding_types.go   |  8 ++---
 pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go   |  2 +-
 pkg/client/camel/go.sum                            | 40 ++++++++++++++++++++++
 29 files changed, 148 insertions(+), 107 deletions(-)

diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index aa4b129..23f52b3 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -104,8 +104,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index bb27323..5cdc3ff 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -200,8 +200,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
@@ -381,8 +380,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index 2b36a75..77cb361 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -96,8 +96,7 @@ spec:
               items:
                 description: Flow is an unstructured object representing a Camel Flow
                   in YAML/JSON DSL
-                format: byte
-                type: string
+                type: object
               type: array
             kit:
               type: string
@@ -180,8 +179,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index 0d02f41..5f2e859 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -88,8 +88,7 @@ spec:
                   items:
                     description: Flow is an unstructured object representing a Camel
                       Flow in YAML/JSON DSL
-                    format: byte
-                    type: string
+                    type: object
                   type: array
                 kit:
                   type: string
@@ -172,8 +171,7 @@ spec:
                     properties:
                       configuration:
                         description: TraitConfiguration --
-                        format: byte
-                        type: string
+                        type: object
                     required:
                     - configuration
                     type: object
@@ -186,8 +184,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
@@ -237,8 +234,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
diff --git a/config/crd/bases/camel.apache.org_kamelets.yaml b/config/crd/bases/camel.apache.org_kamelets.yaml
index d899c99..31f2e9c 100644
--- a/config/crd/bases/camel.apache.org_kamelets.yaml
+++ b/config/crd/bases/camel.apache.org_kamelets.yaml
@@ -294,8 +294,7 @@ spec:
             flow:
               description: Flow is an unstructured object representing a Camel Flow
                 in YAML/JSON DSL
-              format: byte
-              type: string
+              type: object
             sources:
               items:
                 description: SourceSpec --
diff --git a/deploy/crd-integration-kit.yaml b/deploy/crd-integration-kit.yaml
index aa4b129..23f52b3 100644
--- a/deploy/crd-integration-kit.yaml
+++ b/deploy/crd-integration-kit.yaml
@@ -104,8 +104,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/crd-integration-platform.yaml b/deploy/crd-integration-platform.yaml
index bb27323..5cdc3ff 100644
--- a/deploy/crd-integration-platform.yaml
+++ b/deploy/crd-integration-platform.yaml
@@ -200,8 +200,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
@@ -381,8 +380,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/crd-integration.yaml b/deploy/crd-integration.yaml
index 2b36a75..77cb361 100644
--- a/deploy/crd-integration.yaml
+++ b/deploy/crd-integration.yaml
@@ -96,8 +96,7 @@ spec:
               items:
                 description: Flow is an unstructured object representing a Camel Flow
                   in YAML/JSON DSL
-                format: byte
-                type: string
+                type: object
               type: array
             kit:
               type: string
@@ -180,8 +179,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/crd-kamelet-binding.yaml b/deploy/crd-kamelet-binding.yaml
index 0d02f41..5f2e859 100644
--- a/deploy/crd-kamelet-binding.yaml
+++ b/deploy/crd-kamelet-binding.yaml
@@ -88,8 +88,7 @@ spec:
                   items:
                     description: Flow is an unstructured object representing a Camel
                       Flow in YAML/JSON DSL
-                    format: byte
-                    type: string
+                    type: object
                   type: array
                 kit:
                   type: string
@@ -172,8 +171,7 @@ spec:
                     properties:
                       configuration:
                         description: TraitConfiguration --
-                        format: byte
-                        type: string
+                        type: object
                     required:
                     - configuration
                     type: object
@@ -186,8 +184,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
@@ -237,8 +234,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
diff --git a/deploy/crd-kamelet.yaml b/deploy/crd-kamelet.yaml
index d899c99..31f2e9c 100644
--- a/deploy/crd-kamelet.yaml
+++ b/deploy/crd-kamelet.yaml
@@ -294,8 +294,7 @@ spec:
             flow:
               description: Flow is an unstructured object representing a Camel Flow
                 in YAML/JSON DSL
-              format: byte
-              type: string
+              type: object
             sources:
               items:
                 description: SourceSpec --
diff --git a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationkits.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationkits.camel.apache.org.crd.yaml
index aa4b129..23f52b3 100644
--- a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationkits.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationkits.camel.apache.org.crd.yaml
@@ -104,8 +104,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationplatforms.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationplatforms.camel.apache.org.crd.yaml
index bb27323..5cdc3ff 100644
--- a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationplatforms.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrationplatforms.camel.apache.org.crd.yaml
@@ -200,8 +200,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
@@ -381,8 +380,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrations.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrations.camel.apache.org.crd.yaml
index 2b36a75..77cb361 100644
--- a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrations.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/integrations.camel.apache.org.crd.yaml
@@ -96,8 +96,7 @@ spec:
               items:
                 description: Flow is an unstructured object representing a Camel Flow
                   in YAML/JSON DSL
-                format: byte
-                type: string
+                type: object
               type: array
             kit:
               type: string
@@ -180,8 +179,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kameletbindings.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kameletbindings.camel.apache.org.crd.yaml
index 0d02f41..5f2e859 100644
--- a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kameletbindings.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kameletbindings.camel.apache.org.crd.yaml
@@ -88,8 +88,7 @@ spec:
                   items:
                     description: Flow is an unstructured object representing a Camel
                       Flow in YAML/JSON DSL
-                    format: byte
-                    type: string
+                    type: object
                   type: array
                 kit:
                   type: string
@@ -172,8 +171,7 @@ spec:
                     properties:
                       configuration:
                         description: TraitConfiguration --
-                        format: byte
-                        type: string
+                        type: object
                     required:
                     - configuration
                     type: object
@@ -186,8 +184,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
@@ -237,8 +234,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
diff --git a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kamelets.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kamelets.camel.apache.org.crd.yaml
index d899c99..31f2e9c 100644
--- a/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kamelets.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.3.0-snapshot/kamelets.camel.apache.org.crd.yaml
@@ -294,8 +294,7 @@ spec:
             flow:
               description: Flow is an unstructured object representing a Camel Flow
                 in YAML/JSON DSL
-              format: byte
-              type: string
+              type: object
             sources:
               items:
                 description: SourceSpec --
diff --git a/deploy/resources.go b/deploy/resources.go
index f5a5e5b..ad3eeba 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -126,37 +126,37 @@ var assets = func() http.FileSystem {
 		"/crd-integration-kit.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-integration-kit.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 7464,
+			uncompressedSize: 7431,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x59\x5f\x93\xe2\xb8\x11\x7f\xf7\xa7\xe8\x1a\x1e\xee\xae\x6a\x30\xb7\x49\x1e\x52\xe4\x89\xb0\x3b\x15\xb2\xbb\x33\x53\x03\x7b\x57\x57\xb5\x2f\x8d\xdd\x98\x0e\xb6\xe4\x48\x32\x0c\x49\xe5\xbb\xa7\x24\xd9\xc6\xc6\x36\xc3\xcc\xee\xfa\x09\x4b\xad\xee\x5f\xff\x6f\x8b\x11\x8c\xbf\xdf\x13\x8c\xe0\x13\x47\x24\x34\xc5\x60\x24\x98\x2d\xc1\x2c\xc7\x68\x4b\xb0\x94\x1b\x73\x40\x45\x70\x27\x0b\x11\xa3\x61\x29\xe0\xe7\xd9\xf2\xee\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x59\x5f\x93\xe2\xb8\x11\x7f\xf7\xa7\xe8\x1a\x1e\xee\xae\x6a\x30\xb7\x49\x1e\x52\xe4\x89\xb0\x33\x15\xb2\xbb\x33\x53\x03\x7b\x57\x57\xb5\x2f\x8d\xdd\xd8\x1d\x6c\xc9\x91\x64\x18\x92\xca\x77\x4f\x49\xb2\x8d\x0d\x36\xcb\xcc\xee\xfa\x09\x4b\xad\xee\x5f\xff\x6f\x8b\x11\x8c\xbf\xdf\x13\x8c\xe0\x23\x47\x24\x34\xc5\x60\x24\x98\x94\x60\x56\x60\x94\x12\x2c\xe5\xc6\xec\x51\x11\xdc\xcb\x52\xc4\x68\x58\x0a\xf8\x79\xb6\xbc\xff\x [...]
 		},
 		"/crd-integration-platform.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-integration-platform.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 16005,
+			uncompressedSize: 15939,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\xdf\x93\xe2\xb8\xf1\x7f\xf7\x5f\xd1\x35\x3c\xec\x5d\xd5\x00\xb7\xdf\x6f\x1e\x52\xe4\x21\x35\xc7\xee\x56\xc8\xee\xce\x4c\x0d\xec\x5e\xdd\xa3\xb0\x1b\xa3\x20\x4b\x8e\x24\xc3\x72\xa9\xfc\xef\xa9\x6e\xd9\xc6\x80\x0d\xcc\xcc\x5d\xa5\xb2\x85\x5e\x66\xb0\xd5\xad\x4f\xff\x54\xab\x6d\xf7\xa0\xff\xfb\x8d\xa8\x07\x9f\x64\x8c\xda\x61\x02\xde\x80\x5f\x22\xdc\xe5\x22\x5e\x22\x4c\xcd\xc2\x6f\x84\x45\xf8\x60\x0a\x9d\x08\x2f\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x5f\x93\xe2\xb8\x11\x7f\xf7\xa7\xe8\x1a\x1e\xf6\xae\x6a\x80\xdb\x24\x0f\x29\xf2\x90\x9a\x63\x77\x2b\x64\x77\x67\xa6\x06\x76\xaf\xee\x51\xd8\x8d\x51\x90\x25\x47\x92\x61\xb9\x54\xbe\x7b\xaa\x5b\xb6\x31\x60\x03\x33\x73\x57\xa9\x5c\xd0\xcb\x0c\xb6\xba\xf5\xeb\xbf\x6a\xb5\xed\x1e\xf4\x7f\xbd\x11\xf5\xe0\x93\x8c\x51\x3b\x4c\xc0\x1b\xf0\x4b\x84\xbb\x5c\xc4\x4b\x84\xa9\x59\xf8\x8d\xb0\x08\x1f\x4c\xa1\x13\xe1\xa5\xd1\x [...]
 		},
 		"/crd-integration.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-integration.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 13082,
+			uncompressedSize: 13020,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3a\x4f\x73\xe2\x38\xf6\x77\x7f\x8a\x57\xe1\xd0\xdd\x55\x01\xa6\x67\x7e\x87\x5f\xb1\x27\x36\xdd\xa9\x65\x3b\x9d\xa4\x02\x3d\x53\x7d\x14\xf6\xc3\xbc\x8d\x2c\x79\x25\x19\x9a\xd9\xda\xef\xbe\xf5\x24\x1b\x6c\xb0\x09\x21\xe9\x3d\x6c\xc5\x27\x2c\xeb\xe9\xfd\xff\x8b\x7a\xd0\x7f\xbd\x27\xea\xc1\x0d\xc5\xa8\x2c\x26\xe0\x34\xb8\x25\xc2\x38\x17\xf1\x12\x61\xaa\x17\x6e\x2d\x0c\xc2\xb5\x2e\x54\x22\x1c\x69\x05\xef\xc7\xd3\xeb\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3a\x4f\x73\xe2\x38\xf6\x77\x7f\x8a\x57\xe1\xd0\xdd\x55\x01\xa6\x67\x7e\x87\x5f\xb1\x27\x36\xdd\xa9\x65\x3b\x9d\xa4\x02\x3d\x53\x7d\x14\xf6\xc3\xbc\x8d\x2c\x79\x25\x19\x9a\xd9\xda\xef\xbe\xf5\x24\x1b\x6c\xb0\x09\x21\xe9\x3d\x6c\xc5\x27\x2c\xeb\xe9\xfd\xff\x8b\x7a\xd0\x7f\xbd\x27\xea\xc1\x0d\xc5\xa8\x2c\x26\xe0\x34\xb8\x25\xc2\x38\x17\xf1\x12\x61\xaa\x17\x6e\x2d\x0c\xc2\xb5\x2e\x54\x22\x1c\x69\x05\xef\xc7\xd3\xeb\x [...]
 		},
 		"/crd-kamelet-binding.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-kamelet-binding.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 14888,
+			uncompressedSize: 14756,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1b\x4d\x73\xdb\x36\xf6\xae\x5f\xf1\xc6\x3a\x24\x99\xb1\xa8\x26\xdd\xc3\x8e\xf6\xe4\x3a\xc9\xae\x36\xae\xed\xb1\x94\x76\x3a\x9d\x1e\x20\xf2\x89\xc2\x0a\x04\xb8\x00\x68\x59\xdb\xe9\x7f\xdf\x79\x0f\x24\x45\x49\x24\xad\xd8\x49\x7b\x31\x2f\xb6\x48\xe0\xe1\x7d\x7f\x92\x43\x18\x7d\xbd\x6b\x30\x84\x2b\x19\xa3\x76\x98\x80\x37\xe0\x57\x08\x17\xb9\x88\x57\x08\x33\xb3\xf4\x1b\x61\x11\x3e\x9a\x42\x27\xc2\x4b\xa3\xe1\xf5\xc5\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1b\x4d\x73\xdb\x36\xf6\xae\x5f\xf1\xc6\x3a\x24\x99\xb1\xa8\x26\xdd\xc3\x8e\xf6\xe4\x3a\xc9\xae\x36\xae\xed\xb1\x94\x76\x3a\x9d\x1e\x20\xf2\x89\xc2\x0a\x04\xb8\x00\x68\x59\xdb\xe9\x7f\xdf\x79\x0f\x24\x45\x49\x24\xad\xd8\x49\x7b\x31\x2f\xb6\x48\xf0\xe1\x7d\x7f\x82\x43\x18\x7d\xbd\x6b\x30\x84\x2b\x19\xa3\x76\x98\x80\x37\xe0\x57\x08\x17\xb9\x88\x57\x08\x33\xb3\xf4\x1b\x61\x11\x3e\x9a\x42\x27\xc2\x4b\xa3\xe1\xf5\xc5\x [...]
 		},
 		"/crd-kamelet.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-kamelet.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 32415,
+			uncompressedSize: 32388,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x7d\x6d\x6f\x1b\x39\x92\xff\x7b\x7f\x8a\x82\xbd\xc0\xd8\x80\x5b\xb6\x6c\x27\x3b\xa3\xff\x8b\xc0\xeb\x4c\xf6\xaf\x9b\x24\x0e\x6c\x67\x17\x7b\x71\x16\x43\x75\x97\x24\x9e\xbb\xc9\x5e\x92\x6d\x5b\xbb\xc9\x77\x3f\xf0\xa1\x1f\x24\x35\xd9\x2d\xd9\xce\xe0\x08\x0c\xc6\x6a\x91\xc5\x62\x55\xb1\x58\xac\xae\x5f\xb4\x07\xd1\xf3\xb5\x9d\x3d\x78\x4f\x63\x64\x12\x13\x50\x1c\xd4\x1c\xe1\x3c\x27\xf1\x1c\xe1\x9a\x4f\xd5\x03\x11\x08\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x7d\x6d\x6f\x1b\x39\x92\xff\x7b\x7f\x8a\x82\xbd\xc0\xd8\x80\x5b\xb6\x6c\x27\x3b\xa3\xff\x8b\xc0\xeb\x4c\xf6\xaf\x9b\x24\x0e\x6c\x67\x17\x7b\x71\x16\x43\x75\x97\x24\x9e\xbb\xc9\x5e\x92\x6d\x5b\xbb\xc9\x77\x3f\xf0\xa1\x1f\x24\x35\xd9\x2d\xd9\xce\xe0\x08\x0c\xc6\x6a\x91\xc5\x62\x55\xb1\x58\xac\xae\x5f\xb4\x07\xd1\xf3\xb5\x9d\x3d\x78\x4f\x63\x64\x12\x13\x50\x1c\xd4\x1c\xe1\x3c\x27\xf1\x1c\xe1\x9a\x4f\xd5\x03\x11\x08\x [...]
 		},
 		"/operator-deployment.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator-deployment.yaml",
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index aa4b129..23f52b3 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -104,8 +104,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index bb27323..5cdc3ff 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -200,8 +200,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
@@ -381,8 +380,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 2b36a75..77cb361 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -96,8 +96,7 @@ spec:
               items:
                 description: Flow is an unstructured object representing a Camel Flow
                   in YAML/JSON DSL
-                format: byte
-                type: string
+                type: object
               type: array
             kit:
               type: string
@@ -180,8 +179,7 @@ spec:
                 properties:
                   configuration:
                     description: TraitConfiguration --
-                    format: byte
-                    type: string
+                    type: object
                 required:
                 - configuration
                 type: object
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index 0d02f41..5f2e859 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -88,8 +88,7 @@ spec:
                   items:
                     description: Flow is an unstructured object representing a Camel
                       Flow in YAML/JSON DSL
-                    format: byte
-                    type: string
+                    type: object
                   type: array
                 kit:
                   type: string
@@ -172,8 +171,7 @@ spec:
                     properties:
                       configuration:
                         description: TraitConfiguration --
-                        format: byte
-                        type: string
+                        type: object
                     required:
                     - configuration
                     type: object
@@ -186,8 +184,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
@@ -237,8 +234,7 @@ spec:
                 properties:
                   description: Properties are a key value representation of endpoint
                     properties
-                  format: byte
-                  type: string
+                  type: object
                 ref:
                   description: Ref can be used to declare a Kubernetes resource as
                     source/sink endpoint
diff --git a/helm/camel-k/crds/crd-kamelet.yaml b/helm/camel-k/crds/crd-kamelet.yaml
index d899c99..31f2e9c 100644
--- a/helm/camel-k/crds/crd-kamelet.yaml
+++ b/helm/camel-k/crds/crd-kamelet.yaml
@@ -294,8 +294,7 @@ spec:
             flow:
               description: Flow is an unstructured object representing a Camel Flow
                 in YAML/JSON DSL
-              format: byte
-              type: string
+              type: object
             sources:
               items:
                 description: SourceSpec --
diff --git a/pkg/apis/addtoscheme_camel_v1.go b/pkg/apis/addtoscheme_camel_v1.go
index 212a101..4a365dd 100644
--- a/pkg/apis/addtoscheme_camel_v1.go
+++ b/pkg/apis/addtoscheme_camel_v1.go
@@ -23,5 +23,5 @@ import (
 
 func init() {
 	// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
-	AddToSchemes = append(AddToSchemes, v1.SchemeBuilder.AddToScheme)
+	AddToSchemes = append(AddToSchemes, v1.AddToScheme)
 }
diff --git a/pkg/apis/addtoscheme_camel_v1alpha1.go b/pkg/apis/addtoscheme_camel_v1alpha1.go
index 001d778..a56140d 100644
--- a/pkg/apis/addtoscheme_camel_v1alpha1.go
+++ b/pkg/apis/addtoscheme_camel_v1alpha1.go
@@ -23,5 +23,5 @@ import (
 
 func init() {
 	// Register the types with the Scheme so the components can map objects to GroupVersionKinds and back
-	AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme)
+	AddToSchemes = append(AddToSchemes, v1alpha1.AddToScheme)
 }
diff --git a/pkg/apis/camel/v1/common_types.go b/pkg/apis/camel/v1/common_types.go
index 343f6b7..6226309 100644
--- a/pkg/apis/camel/v1/common_types.go
+++ b/pkg/apis/camel/v1/common_types.go
@@ -18,8 +18,6 @@ limitations under the License.
 package v1
 
 import (
-	"encoding/json"
-
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
@@ -58,12 +56,18 @@ type TraitSpec struct {
 	Configuration TraitConfiguration `json:"configuration"`
 }
 
-// +kubebuilder:validation:Type=string
 // TraitConfiguration --
 type TraitConfiguration struct {
-	json.RawMessage `json:",inline"`
+	RawMessage `json:",inline"`
 }
 
+// RawMessage is a raw encoded JSON value.
+// It implements Marshaler and Unmarshaler and can
+// be used to delay JSON decoding or precompute a JSON encoding.
+// +kubebuilder:validation:Type=object
+// +kubebuilder:validation:Format=""
+type RawMessage []byte
+
 // +kubebuilder:object:generate=false
 // Configurable --
 type Configurable interface {
@@ -146,9 +150,8 @@ type ResourceCondition interface {
 }
 
 // Flow is an unstructured object representing a Camel Flow in YAML/JSON DSL
-// +kubebuilder:validation:Type=string
 type Flow struct {
-	json.RawMessage `json:",inline"`
+	RawMessage `json:",inline"`
 }
 
 // RuntimeProvider --
diff --git a/pkg/apis/camel/v1/common_types_support.go b/pkg/apis/camel/v1/common_types_support.go
index cf06cb8..396b525 100644
--- a/pkg/apis/camel/v1/common_types_support.go
+++ b/pkg/apis/camel/v1/common_types_support.go
@@ -18,6 +18,8 @@ limitations under the License.
 package v1
 
 import (
+	"encoding/json"
+	"errors"
 	"fmt"
 )
 
@@ -39,3 +41,23 @@ func (in *RuntimeSpec) CapabilityDependencies(capability string) []MavenArtifact
 
 	return deps
 }
+
+// MarshalJSON returns m as the JSON encoding of m.
+func (m RawMessage) MarshalJSON() ([]byte, error) {
+	if m == nil {
+		return []byte("null"), nil
+	}
+	return m, nil
+}
+
+// UnmarshalJSON sets *m to a copy of data.
+func (m *RawMessage) UnmarshalJSON(data []byte) error {
+	if m == nil {
+		return errors.New("json.RawMessage: UnmarshalJSON on nil pointer")
+	}
+	*m = append((*m)[0:0], data...)
+	return nil
+}
+
+var _ json.Marshaler = (*RawMessage)(nil)
+var _ json.Unmarshaler = (*RawMessage)(nil)
diff --git a/pkg/apis/camel/v1/zz_generated.deepcopy.go b/pkg/apis/camel/v1/zz_generated.deepcopy.go
index 6a830ab..7974c53 100644
--- a/pkg/apis/camel/v1/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/zz_generated.deepcopy.go
@@ -5,7 +5,6 @@
 package v1
 
 import (
-	"encoding/json"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
@@ -600,7 +599,7 @@ func (in *Flow) DeepCopyInto(out *Flow) {
 	*out = *in
 	if in.RawMessage != nil {
 		in, out := &in.RawMessage, &out.RawMessage
-		*out = make(json.RawMessage, len(*in))
+		*out = make(RawMessage, len(*in))
 		copy(*out, *in)
 	}
 }
@@ -1245,6 +1244,25 @@ func (in *MavenSpec) DeepCopy() *MavenSpec {
 }
 
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in RawMessage) DeepCopyInto(out *RawMessage) {
+	{
+		in := &in
+		*out = make(RawMessage, len(*in))
+		copy(*out, *in)
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawMessage.
+func (in RawMessage) DeepCopy() RawMessage {
+	if in == nil {
+		return nil
+	}
+	out := new(RawMessage)
+	in.DeepCopyInto(out)
+	return *out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *ResourceSpec) DeepCopyInto(out *ResourceSpec) {
 	*out = *in
 	out.DataSpec = in.DataSpec
@@ -1350,7 +1368,7 @@ func (in *TraitConfiguration) DeepCopyInto(out *TraitConfiguration) {
 	*out = *in
 	if in.RawMessage != nil {
 		in, out := &in.RawMessage, &out.RawMessage
-		*out = make(json.RawMessage, len(*in))
+		*out = make(RawMessage, len(*in))
 		copy(*out, *in)
 	}
 }
diff --git a/pkg/apis/camel/v1alpha1/kamelet_binding_types.go b/pkg/apis/camel/v1alpha1/kamelet_binding_types.go
index 124c3ab..c39c34d 100644
--- a/pkg/apis/camel/v1alpha1/kamelet_binding_types.go
+++ b/pkg/apis/camel/v1alpha1/kamelet_binding_types.go
@@ -18,11 +18,10 @@ limitations under the License.
 package v1alpha1
 
 import (
-	"encoding/json"
-
-	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 )
 
 // KameletBindingSpec --
@@ -53,9 +52,8 @@ const (
 )
 
 // EndpointProperties is a key/value struct represented as JSON raw to allow numeric/boolean values
-// +kubebuilder:validation:Type=string
 type EndpointProperties struct {
-	json.RawMessage `json:",inline"`
+	v1.RawMessage `json:",inline"`
 }
 
 // KameletBindingStatus --
diff --git a/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go
index 5b971c5..d64ff02 100644
--- a/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go
@@ -57,7 +57,7 @@ func (in *EndpointProperties) DeepCopyInto(out *EndpointProperties) {
 	*out = *in
 	if in.RawMessage != nil {
 		in, out := &in.RawMessage, &out.RawMessage
-		*out = make(json.RawMessage, len(*in))
+		*out = make(v1.RawMessage, len(*in))
 		copy(*out, *in)
 	}
 }
diff --git a/pkg/client/camel/go.sum b/pkg/client/camel/go.sum
index 7a21809..4b2440b 100644
--- a/pkg/client/camel/go.sum
+++ b/pkg/client/camel/go.sum
@@ -12,6 +12,7 @@ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbt
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 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=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
@@ -29,8 +30,10 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
 github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
 github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
+github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
 github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
@@ -40,13 +43,16 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
+github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
 github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
 github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
@@ -71,6 +77,7 @@ github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0
 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -125,6 +132,7 @@ github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
 github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -157,8 +165,10 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
@@ -211,6 +221,7 @@ github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8m
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
+github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
 github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -231,26 +242,35 @@ github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
 github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
 github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
 github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
 github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
 github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
+github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
 github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
@@ -258,6 +278,7 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
+github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
@@ -267,11 +288,15 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
 github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
 github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
@@ -279,6 +304,7 @@ go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL
 go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -289,6 +315,7 @@ golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACk
 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 h1:1wopBVtVdWnn03fZelqdXTqk7U7zPQCb+T4rbU9ZEoU=
 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo=
 golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -300,6 +327,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx
 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
+golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
+golang.org/x/mod v0.2.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-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -312,6 +341,7 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
@@ -320,6 +350,8 @@ golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI=
 golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
@@ -376,7 +408,13 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw
 golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 h1:bw9doJza/SFBEweII/rHQh338oozWyiFsBRHtrflcws=
 golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200616195046-dc31b401abb5 h1:UaoXseXAWUJUcuJ2E2oczJdLxAJXL0lOmVaBl7kuk+I=
+golang.org/x/tools v0.0.0-20200616195046-dc31b401abb5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
@@ -390,6 +428,7 @@ google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRn
 google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -482,6 +521,7 @@ modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
 sigs.k8s.io/controller-tools v0.0.0-20200528125929-5c0c6ae3b64b/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
 sigs.k8s.io/controller-tools v0.3.0/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI=
+sigs.k8s.io/controller-tools v0.4.1/go.mod h1:G9rHdZMVlBDocIxGkK3jHLWqcTMNvveypYJwrvYKjWU=
 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE=