You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2020/09/28 09:37:47 UTC

[camel-k] branch api-0.18.8 created (now a76a0ce)

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

nferraro pushed a change to branch api-0.18.8
in repository https://gitbox.apache.org/repos/asf/camel-k.git.


      at a76a0ce  Update client to 0.18.8

This branch includes the following new commits:

     new a76a0ce  Update client to 0.18.8

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel-k] 01/01: Update client to 0.18.8

Posted by nf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a76a0cec8b2daa85238ce146605163464ca571ad
Author: nicolaferraro <ni...@gmail.com>
AuthorDate: Mon Sep 28 11:35:49 2020 +0200

    Update client to 0.18.8
---
 go.mod                                             |  4 +-
 pkg/apis/camel/go.mod                              |  7 +--
 pkg/apis/camel/go.sum                              |  7 +++
 pkg/client/camel/clientset/versioned/clientset.go  |  2 +-
 .../clientset/versioned/typed/camel/v1/build.go    | 72 ++++++++++++----------
 .../versioned/typed/camel/v1/camelcatalog.go       | 72 ++++++++++++----------
 .../versioned/typed/camel/v1/fake/fake_build.go    | 22 ++++---
 .../typed/camel/v1/fake/fake_camelcatalog.go       | 22 ++++---
 .../typed/camel/v1/fake/fake_integration.go        | 22 ++++---
 .../typed/camel/v1/fake/fake_integrationkit.go     | 22 ++++---
 .../camel/v1/fake/fake_integrationplatform.go      | 22 ++++---
 .../versioned/typed/camel/v1/integration.go        | 72 ++++++++++++----------
 .../versioned/typed/camel/v1/integrationkit.go     | 72 ++++++++++++----------
 .../typed/camel/v1/integrationplatform.go          | 72 ++++++++++++----------
 pkg/client/camel/go.mod                            | 10 +--
 pkg/client/camel/go.sum                            | 58 +++++++++++++++++
 .../informers/externalversions/camel/v1/build.go   |  5 +-
 .../externalversions/camel/v1/camelcatalog.go      |  5 +-
 .../externalversions/camel/v1/integration.go       |  5 +-
 .../externalversions/camel/v1/integrationkit.go    |  5 +-
 .../camel/v1/integrationplatform.go                |  5 +-
 script/gen_client.sh                               | 23 ++++---
 22 files changed, 352 insertions(+), 254 deletions(-)

diff --git a/go.mod b/go.mod
index 7733378..1e58944 100644
--- a/go.mod
+++ b/go.mod
@@ -38,8 +38,8 @@ require (
 	go.uber.org/multierr v1.5.0
 	gopkg.in/inf.v0 v0.9.1
 	gopkg.in/yaml.v2 v2.3.0
-	k8s.io/api v0.18.2
-	k8s.io/apimachinery v0.18.2
+	k8s.io/api v0.18.8
+	k8s.io/apimachinery v0.18.8
 	k8s.io/client-go v12.0.0+incompatible
 	k8s.io/gengo v0.0.0-20200205140755-e0e292d8aa12
 	knative.dev/eventing v0.15.0
diff --git a/pkg/apis/camel/go.mod b/pkg/apis/camel/go.mod
index c7bcb9f..a94a286 100644
--- a/pkg/apis/camel/go.mod
+++ b/pkg/apis/camel/go.mod
@@ -3,9 +3,6 @@ module github.com/apache/camel-k/pkg/apis/camel
 go 1.13
 
 require (
-	k8s.io/api v0.18.2
-	k8s.io/apimachinery v0.18.2
-	// Required to get https://github.com/kubernetes-sigs/controller-tools/pull/428
-	sigs.k8s.io/controller-tools v0.0.0-20200528125929-5c0c6ae3b64b // indirect
-	sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e // indirect
+	k8s.io/api v0.18.8
+	k8s.io/apimachinery v0.18.8
 )
diff --git a/pkg/apis/camel/go.sum b/pkg/apis/camel/go.sum
index 60acd80..dcba8ca 100644
--- a/pkg/apis/camel/go.sum
+++ b/pkg/apis/camel/go.sum
@@ -57,6 +57,7 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb
 github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
 github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
@@ -157,6 +158,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -392,12 +394,16 @@ k8s.io/api v0.16.4 h1:O06Ed/hgLiCrzW1SHp6HAhqcTnYHtK80bP5rXoHakpM=
 k8s.io/api v0.16.4/go.mod h1:AtzMnsR45tccQss5q8RnF+W8L81DH6XwXwo/joEx9u0=
 k8s.io/api v0.18.2 h1:wG5g5ZmSVgm5B+eHMIbI9EGATS2L8Z72rda19RIEgY8=
 k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
+k8s.io/api v0.18.8 h1:aIKUzJPb96f3fKec2lxtY7acZC9gQNDLVhfSGpxBAC4=
+k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
 k8s.io/apiextensions-apiserver v0.18.2 h1:I4v3/jAuQC+89L3Z7dDgAiN4EOjN6sbm6iBqQwHTah8=
 k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY=
 k8s.io/apimachinery v0.16.4 h1:+VNiyTcctUvBBRUxfulwL2I6TGratkR1oAoULuas/HI=
 k8s.io/apimachinery v0.16.4/go.mod h1:llRdnznGEAqC3DcNm6yEj472xaFVfLM7hnYofMb12tQ=
 k8s.io/apimachinery v0.18.2 h1:44CmtbmkzVDAhCpRVSiP2R5PPrC2RtlIv/MoB8xpdRA=
 k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
+k8s.io/apimachinery v0.18.8 h1:jimPrycCqgx2QPearX3to1JePz7wSbVLq+7PdBTTwQ0=
+k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
 k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw=
 k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
 k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
@@ -412,6 +418,7 @@ k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
 k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
 k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
+k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
 k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU=
 k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
 sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
diff --git a/pkg/client/camel/clientset/versioned/clientset.go b/pkg/client/camel/clientset/versioned/clientset.go
index 146e653..1ec5a41 100644
--- a/pkg/client/camel/clientset/versioned/clientset.go
+++ b/pkg/client/camel/clientset/versioned/clientset.go
@@ -60,7 +60,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) {
 	configShallowCopy := *c
 	if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
 		if configShallowCopy.Burst <= 0 {
-			return nil, fmt.Errorf("Burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
+			return nil, fmt.Errorf("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
 		}
 		configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
 	}
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
index 335a98e..32d171e 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/build.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -38,15 +39,15 @@ type BuildsGetter interface {
 
 // BuildInterface has methods to work with Build resources.
 type BuildInterface interface {
-	Create(*v1.Build) (*v1.Build, error)
-	Update(*v1.Build) (*v1.Build, error)
-	UpdateStatus(*v1.Build) (*v1.Build, error)
-	Delete(name string, options *metav1.DeleteOptions) error
-	DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
-	Get(name string, options metav1.GetOptions) (*v1.Build, error)
-	List(opts metav1.ListOptions) (*v1.BuildList, error)
-	Watch(opts metav1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Build, err error)
+	Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (*v1.Build, error)
+	Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error)
+	UpdateStatus(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error)
+	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
+	Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Build, error)
+	List(ctx context.Context, opts metav1.ListOptions) (*v1.BuildList, error)
+	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error)
 	BuildExpansion
 }
 
@@ -65,20 +66,20 @@ func newBuilds(c *CamelV1Client, namespace string) *builds {
 }
 
 // Get takes name of the build, and returns the corresponding build object, and an error if there is any.
-func (c *builds) Get(name string, options metav1.GetOptions) (result *v1.Build, err error) {
+func (c *builds) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Build, err error) {
 	result = &v1.Build{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("builds").
 		Name(name).
 		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // List takes label and field selectors, and returns the list of Builds that match those selectors.
-func (c *builds) List(opts metav1.ListOptions) (result *v1.BuildList, err error) {
+func (c *builds) List(ctx context.Context, opts metav1.ListOptions) (result *v1.BuildList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -89,13 +90,13 @@ func (c *builds) List(opts metav1.ListOptions) (result *v1.BuildList, err error)
 		Resource("builds").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Watch returns a watch.Interface that watches the requested builds.
-func (c *builds) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+func (c *builds) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -106,87 +107,90 @@ func (c *builds) Watch(opts metav1.ListOptions) (watch.Interface, error) {
 		Resource("builds").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Watch()
+		Watch(ctx)
 }
 
 // Create takes the representation of a build and creates it.  Returns the server's representation of the build, and an error, if there is any.
-func (c *builds) Create(build *v1.Build) (result *v1.Build, err error) {
+func (c *builds) Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (result *v1.Build, err error) {
 	result = &v1.Build{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("builds").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(build).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Update takes the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any.
-func (c *builds) Update(build *v1.Build) (result *v1.Build, err error) {
+func (c *builds) Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) {
 	result = &v1.Build{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("builds").
 		Name(build.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(build).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *builds) UpdateStatus(build *v1.Build) (result *v1.Build, err error) {
+func (c *builds) UpdateStatus(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) {
 	result = &v1.Build{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("builds").
 		Name(build.Name).
 		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(build).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Delete takes name of the build and deletes it. Returns an error if one occurs.
-func (c *builds) Delete(name string, options *metav1.DeleteOptions) error {
+func (c *builds) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("builds").
 		Name(name).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *builds) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+func (c *builds) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
 	var timeout time.Duration
-	if listOptions.TimeoutSeconds != nil {
-		timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
 	}
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("builds").
-		VersionedParams(&listOptions, scheme.ParameterCodec).
+		VersionedParams(&listOpts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // Patch applies the patch and returns the patched build.
-func (c *builds) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Build, err error) {
+func (c *builds) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error) {
 	result = &v1.Build{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("builds").
-		SubResource(subresources...).
 		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(data).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
index 566155a..189f8eb 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/camelcatalog.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -38,15 +39,15 @@ type CamelCatalogsGetter interface {
 
 // CamelCatalogInterface has methods to work with CamelCatalog resources.
 type CamelCatalogInterface interface {
-	Create(*v1.CamelCatalog) (*v1.CamelCatalog, error)
-	Update(*v1.CamelCatalog) (*v1.CamelCatalog, error)
-	UpdateStatus(*v1.CamelCatalog) (*v1.CamelCatalog, error)
-	Delete(name string, options *metav1.DeleteOptions) error
-	DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
-	Get(name string, options metav1.GetOptions) (*v1.CamelCatalog, error)
-	List(opts metav1.ListOptions) (*v1.CamelCatalogList, error)
-	Watch(opts metav1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.CamelCatalog, err error)
+	Create(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.CreateOptions) (*v1.CamelCatalog, error)
+	Update(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.UpdateOptions) (*v1.CamelCatalog, error)
+	UpdateStatus(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.UpdateOptions) (*v1.CamelCatalog, error)
+	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
+	Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.CamelCatalog, error)
+	List(ctx context.Context, opts metav1.ListOptions) (*v1.CamelCatalogList, error)
+	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CamelCatalog, err error)
 	CamelCatalogExpansion
 }
 
@@ -65,20 +66,20 @@ func newCamelCatalogs(c *CamelV1Client, namespace string) *camelCatalogs {
 }
 
 // Get takes name of the camelCatalog, and returns the corresponding camelCatalog object, and an error if there is any.
-func (c *camelCatalogs) Get(name string, options metav1.GetOptions) (result *v1.CamelCatalog, err error) {
+func (c *camelCatalogs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.CamelCatalog, err error) {
 	result = &v1.CamelCatalog{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
 		Name(name).
 		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // List takes label and field selectors, and returns the list of CamelCatalogs that match those selectors.
-func (c *camelCatalogs) List(opts metav1.ListOptions) (result *v1.CamelCatalogList, err error) {
+func (c *camelCatalogs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.CamelCatalogList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -89,13 +90,13 @@ func (c *camelCatalogs) List(opts metav1.ListOptions) (result *v1.CamelCatalogLi
 		Resource("camelcatalogs").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Watch returns a watch.Interface that watches the requested camelCatalogs.
-func (c *camelCatalogs) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+func (c *camelCatalogs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -106,87 +107,90 @@ func (c *camelCatalogs) Watch(opts metav1.ListOptions) (watch.Interface, error)
 		Resource("camelcatalogs").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Watch()
+		Watch(ctx)
 }
 
 // Create takes the representation of a camelCatalog and creates it.  Returns the server's representation of the camelCatalog, and an error, if there is any.
-func (c *camelCatalogs) Create(camelCatalog *v1.CamelCatalog) (result *v1.CamelCatalog, err error) {
+func (c *camelCatalogs) Create(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.CreateOptions) (result *v1.CamelCatalog, err error) {
 	result = &v1.CamelCatalog{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(camelCatalog).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Update takes the representation of a camelCatalog and updates it. Returns the server's representation of the camelCatalog, and an error, if there is any.
-func (c *camelCatalogs) Update(camelCatalog *v1.CamelCatalog) (result *v1.CamelCatalog, err error) {
+func (c *camelCatalogs) Update(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.UpdateOptions) (result *v1.CamelCatalog, err error) {
 	result = &v1.CamelCatalog{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
 		Name(camelCatalog.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(camelCatalog).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *camelCatalogs) UpdateStatus(camelCatalog *v1.CamelCatalog) (result *v1.CamelCatalog, err error) {
+func (c *camelCatalogs) UpdateStatus(ctx context.Context, camelCatalog *v1.CamelCatalog, opts metav1.UpdateOptions) (result *v1.CamelCatalog, err error) {
 	result = &v1.CamelCatalog{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
 		Name(camelCatalog.Name).
 		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(camelCatalog).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Delete takes name of the camelCatalog and deletes it. Returns an error if one occurs.
-func (c *camelCatalogs) Delete(name string, options *metav1.DeleteOptions) error {
+func (c *camelCatalogs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
 		Name(name).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *camelCatalogs) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+func (c *camelCatalogs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
 	var timeout time.Duration
-	if listOptions.TimeoutSeconds != nil {
-		timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
 	}
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("camelcatalogs").
-		VersionedParams(&listOptions, scheme.ParameterCodec).
+		VersionedParams(&listOpts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // Patch applies the patch and returns the patched camelCatalog.
-func (c *camelCatalogs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.CamelCatalog, err error) {
+func (c *camelCatalogs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.CamelCatalog, err error) {
 	result = &v1.CamelCatalog{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("camelcatalogs").
-		SubResource(subresources...).
 		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(data).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
index f459f5c..de09524 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_build.go
@@ -20,6 +20,8 @@ limitations under the License.
 package fake
 
 import (
+	"context"
+
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -40,7 +42,7 @@ var buildsResource = schema.GroupVersionResource{Group: "camel.apache.org", Vers
 var buildsKind = schema.GroupVersionKind{Group: "camel.apache.org", Version: "v1", Kind: "Build"}
 
 // Get takes name of the build, and returns the corresponding build object, and an error if there is any.
-func (c *FakeBuilds) Get(name string, options v1.GetOptions) (result *camelv1.Build, err error) {
+func (c *FakeBuilds) Get(ctx context.Context, name string, options v1.GetOptions) (result *camelv1.Build, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewGetAction(buildsResource, c.ns, name), &camelv1.Build{})
 
@@ -51,7 +53,7 @@ func (c *FakeBuilds) Get(name string, options v1.GetOptions) (result *camelv1.Bu
 }
 
 // List takes label and field selectors, and returns the list of Builds that match those selectors.
-func (c *FakeBuilds) List(opts v1.ListOptions) (result *camelv1.BuildList, err error) {
+func (c *FakeBuilds) List(ctx context.Context, opts v1.ListOptions) (result *camelv1.BuildList, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewListAction(buildsResource, buildsKind, c.ns, opts), &camelv1.BuildList{})
 
@@ -73,14 +75,14 @@ func (c *FakeBuilds) List(opts v1.ListOptions) (result *camelv1.BuildList, err e
 }
 
 // Watch returns a watch.Interface that watches the requested builds.
-func (c *FakeBuilds) Watch(opts v1.ListOptions) (watch.Interface, error) {
+func (c *FakeBuilds) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
 	return c.Fake.
 		InvokesWatch(testing.NewWatchAction(buildsResource, c.ns, opts))
 
 }
 
 // Create takes the representation of a build and creates it.  Returns the server's representation of the build, and an error, if there is any.
-func (c *FakeBuilds) Create(build *camelv1.Build) (result *camelv1.Build, err error) {
+func (c *FakeBuilds) Create(ctx context.Context, build *camelv1.Build, opts v1.CreateOptions) (result *camelv1.Build, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewCreateAction(buildsResource, c.ns, build), &camelv1.Build{})
 
@@ -91,7 +93,7 @@ func (c *FakeBuilds) Create(build *camelv1.Build) (result *camelv1.Build, err er
 }
 
 // Update takes the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any.
-func (c *FakeBuilds) Update(build *camelv1.Build) (result *camelv1.Build, err error) {
+func (c *FakeBuilds) Update(ctx context.Context, build *camelv1.Build, opts v1.UpdateOptions) (result *camelv1.Build, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateAction(buildsResource, c.ns, build), &camelv1.Build{})
 
@@ -103,7 +105,7 @@ func (c *FakeBuilds) Update(build *camelv1.Build) (result *camelv1.Build, err er
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeBuilds) UpdateStatus(build *camelv1.Build) (*camelv1.Build, error) {
+func (c *FakeBuilds) UpdateStatus(ctx context.Context, build *camelv1.Build, opts v1.UpdateOptions) (*camelv1.Build, error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateSubresourceAction(buildsResource, "status", c.ns, build), &camelv1.Build{})
 
@@ -114,7 +116,7 @@ func (c *FakeBuilds) UpdateStatus(build *camelv1.Build) (*camelv1.Build, error)
 }
 
 // Delete takes name of the build and deletes it. Returns an error if one occurs.
-func (c *FakeBuilds) Delete(name string, options *v1.DeleteOptions) error {
+func (c *FakeBuilds) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
 		Invokes(testing.NewDeleteAction(buildsResource, c.ns, name), &camelv1.Build{})
 
@@ -122,15 +124,15 @@ func (c *FakeBuilds) Delete(name string, options *v1.DeleteOptions) error {
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *FakeBuilds) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
-	action := testing.NewDeleteCollectionAction(buildsResource, c.ns, listOptions)
+func (c *FakeBuilds) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(buildsResource, c.ns, listOpts)
 
 	_, err := c.Fake.Invokes(action, &camelv1.BuildList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched build.
-func (c *FakeBuilds) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *camelv1.Build, err error) {
+func (c *FakeBuilds) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *camelv1.Build, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewPatchSubresourceAction(buildsResource, c.ns, name, pt, data, subresources...), &camelv1.Build{})
 
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
index 1a30e41..e40b258 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_camelcatalog.go
@@ -20,6 +20,8 @@ limitations under the License.
 package fake
 
 import (
+	"context"
+
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -40,7 +42,7 @@ var camelcatalogsResource = schema.GroupVersionResource{Group: "camel.apache.org
 var camelcatalogsKind = schema.GroupVersionKind{Group: "camel.apache.org", Version: "v1", Kind: "CamelCatalog"}
 
 // Get takes name of the camelCatalog, and returns the corresponding camelCatalog object, and an error if there is any.
-func (c *FakeCamelCatalogs) Get(name string, options v1.GetOptions) (result *camelv1.CamelCatalog, err error) {
+func (c *FakeCamelCatalogs) Get(ctx context.Context, name string, options v1.GetOptions) (result *camelv1.CamelCatalog, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewGetAction(camelcatalogsResource, c.ns, name), &camelv1.CamelCatalog{})
 
@@ -51,7 +53,7 @@ func (c *FakeCamelCatalogs) Get(name string, options v1.GetOptions) (result *cam
 }
 
 // List takes label and field selectors, and returns the list of CamelCatalogs that match those selectors.
-func (c *FakeCamelCatalogs) List(opts v1.ListOptions) (result *camelv1.CamelCatalogList, err error) {
+func (c *FakeCamelCatalogs) List(ctx context.Context, opts v1.ListOptions) (result *camelv1.CamelCatalogList, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewListAction(camelcatalogsResource, camelcatalogsKind, c.ns, opts), &camelv1.CamelCatalogList{})
 
@@ -73,14 +75,14 @@ func (c *FakeCamelCatalogs) List(opts v1.ListOptions) (result *camelv1.CamelCata
 }
 
 // Watch returns a watch.Interface that watches the requested camelCatalogs.
-func (c *FakeCamelCatalogs) Watch(opts v1.ListOptions) (watch.Interface, error) {
+func (c *FakeCamelCatalogs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
 	return c.Fake.
 		InvokesWatch(testing.NewWatchAction(camelcatalogsResource, c.ns, opts))
 
 }
 
 // Create takes the representation of a camelCatalog and creates it.  Returns the server's representation of the camelCatalog, and an error, if there is any.
-func (c *FakeCamelCatalogs) Create(camelCatalog *camelv1.CamelCatalog) (result *camelv1.CamelCatalog, err error) {
+func (c *FakeCamelCatalogs) Create(ctx context.Context, camelCatalog *camelv1.CamelCatalog, opts v1.CreateOptions) (result *camelv1.CamelCatalog, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewCreateAction(camelcatalogsResource, c.ns, camelCatalog), &camelv1.CamelCatalog{})
 
@@ -91,7 +93,7 @@ func (c *FakeCamelCatalogs) Create(camelCatalog *camelv1.CamelCatalog) (result *
 }
 
 // Update takes the representation of a camelCatalog and updates it. Returns the server's representation of the camelCatalog, and an error, if there is any.
-func (c *FakeCamelCatalogs) Update(camelCatalog *camelv1.CamelCatalog) (result *camelv1.CamelCatalog, err error) {
+func (c *FakeCamelCatalogs) Update(ctx context.Context, camelCatalog *camelv1.CamelCatalog, opts v1.UpdateOptions) (result *camelv1.CamelCatalog, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateAction(camelcatalogsResource, c.ns, camelCatalog), &camelv1.CamelCatalog{})
 
@@ -103,7 +105,7 @@ func (c *FakeCamelCatalogs) Update(camelCatalog *camelv1.CamelCatalog) (result *
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeCamelCatalogs) UpdateStatus(camelCatalog *camelv1.CamelCatalog) (*camelv1.CamelCatalog, error) {
+func (c *FakeCamelCatalogs) UpdateStatus(ctx context.Context, camelCatalog *camelv1.CamelCatalog, opts v1.UpdateOptions) (*camelv1.CamelCatalog, error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateSubresourceAction(camelcatalogsResource, "status", c.ns, camelCatalog), &camelv1.CamelCatalog{})
 
@@ -114,7 +116,7 @@ func (c *FakeCamelCatalogs) UpdateStatus(camelCatalog *camelv1.CamelCatalog) (*c
 }
 
 // Delete takes name of the camelCatalog and deletes it. Returns an error if one occurs.
-func (c *FakeCamelCatalogs) Delete(name string, options *v1.DeleteOptions) error {
+func (c *FakeCamelCatalogs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
 		Invokes(testing.NewDeleteAction(camelcatalogsResource, c.ns, name), &camelv1.CamelCatalog{})
 
@@ -122,15 +124,15 @@ func (c *FakeCamelCatalogs) Delete(name string, options *v1.DeleteOptions) error
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *FakeCamelCatalogs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
-	action := testing.NewDeleteCollectionAction(camelcatalogsResource, c.ns, listOptions)
+func (c *FakeCamelCatalogs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(camelcatalogsResource, c.ns, listOpts)
 
 	_, err := c.Fake.Invokes(action, &camelv1.CamelCatalogList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched camelCatalog.
-func (c *FakeCamelCatalogs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *camelv1.CamelCatalog, err error) {
+func (c *FakeCamelCatalogs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *camelv1.CamelCatalog, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewPatchSubresourceAction(camelcatalogsResource, c.ns, name, pt, data, subresources...), &camelv1.CamelCatalog{})
 
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
index 327576b..d059544 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integration.go
@@ -20,6 +20,8 @@ limitations under the License.
 package fake
 
 import (
+	"context"
+
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -40,7 +42,7 @@ var integrationsResource = schema.GroupVersionResource{Group: "camel.apache.org"
 var integrationsKind = schema.GroupVersionKind{Group: "camel.apache.org", Version: "v1", Kind: "Integration"}
 
 // Get takes name of the integration, and returns the corresponding integration object, and an error if there is any.
-func (c *FakeIntegrations) Get(name string, options v1.GetOptions) (result *camelv1.Integration, err error) {
+func (c *FakeIntegrations) Get(ctx context.Context, name string, options v1.GetOptions) (result *camelv1.Integration, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewGetAction(integrationsResource, c.ns, name), &camelv1.Integration{})
 
@@ -51,7 +53,7 @@ func (c *FakeIntegrations) Get(name string, options v1.GetOptions) (result *came
 }
 
 // List takes label and field selectors, and returns the list of Integrations that match those selectors.
-func (c *FakeIntegrations) List(opts v1.ListOptions) (result *camelv1.IntegrationList, err error) {
+func (c *FakeIntegrations) List(ctx context.Context, opts v1.ListOptions) (result *camelv1.IntegrationList, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewListAction(integrationsResource, integrationsKind, c.ns, opts), &camelv1.IntegrationList{})
 
@@ -73,14 +75,14 @@ func (c *FakeIntegrations) List(opts v1.ListOptions) (result *camelv1.Integratio
 }
 
 // Watch returns a watch.Interface that watches the requested integrations.
-func (c *FakeIntegrations) Watch(opts v1.ListOptions) (watch.Interface, error) {
+func (c *FakeIntegrations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
 	return c.Fake.
 		InvokesWatch(testing.NewWatchAction(integrationsResource, c.ns, opts))
 
 }
 
 // Create takes the representation of a integration and creates it.  Returns the server's representation of the integration, and an error, if there is any.
-func (c *FakeIntegrations) Create(integration *camelv1.Integration) (result *camelv1.Integration, err error) {
+func (c *FakeIntegrations) Create(ctx context.Context, integration *camelv1.Integration, opts v1.CreateOptions) (result *camelv1.Integration, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewCreateAction(integrationsResource, c.ns, integration), &camelv1.Integration{})
 
@@ -91,7 +93,7 @@ func (c *FakeIntegrations) Create(integration *camelv1.Integration) (result *cam
 }
 
 // Update takes the representation of a integration and updates it. Returns the server's representation of the integration, and an error, if there is any.
-func (c *FakeIntegrations) Update(integration *camelv1.Integration) (result *camelv1.Integration, err error) {
+func (c *FakeIntegrations) Update(ctx context.Context, integration *camelv1.Integration, opts v1.UpdateOptions) (result *camelv1.Integration, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateAction(integrationsResource, c.ns, integration), &camelv1.Integration{})
 
@@ -103,7 +105,7 @@ func (c *FakeIntegrations) Update(integration *camelv1.Integration) (result *cam
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeIntegrations) UpdateStatus(integration *camelv1.Integration) (*camelv1.Integration, error) {
+func (c *FakeIntegrations) UpdateStatus(ctx context.Context, integration *camelv1.Integration, opts v1.UpdateOptions) (*camelv1.Integration, error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateSubresourceAction(integrationsResource, "status", c.ns, integration), &camelv1.Integration{})
 
@@ -114,7 +116,7 @@ func (c *FakeIntegrations) UpdateStatus(integration *camelv1.Integration) (*came
 }
 
 // Delete takes name of the integration and deletes it. Returns an error if one occurs.
-func (c *FakeIntegrations) Delete(name string, options *v1.DeleteOptions) error {
+func (c *FakeIntegrations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
 		Invokes(testing.NewDeleteAction(integrationsResource, c.ns, name), &camelv1.Integration{})
 
@@ -122,15 +124,15 @@ func (c *FakeIntegrations) Delete(name string, options *v1.DeleteOptions) error
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *FakeIntegrations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
-	action := testing.NewDeleteCollectionAction(integrationsResource, c.ns, listOptions)
+func (c *FakeIntegrations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(integrationsResource, c.ns, listOpts)
 
 	_, err := c.Fake.Invokes(action, &camelv1.IntegrationList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched integration.
-func (c *FakeIntegrations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *camelv1.Integration, err error) {
+func (c *FakeIntegrations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *camelv1.Integration, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewPatchSubresourceAction(integrationsResource, c.ns, name, pt, data, subresources...), &camelv1.Integration{})
 
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
index 094da07..8aa86b7 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationkit.go
@@ -20,6 +20,8 @@ limitations under the License.
 package fake
 
 import (
+	"context"
+
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -40,7 +42,7 @@ var integrationkitsResource = schema.GroupVersionResource{Group: "camel.apache.o
 var integrationkitsKind = schema.GroupVersionKind{Group: "camel.apache.org", Version: "v1", Kind: "IntegrationKit"}
 
 // Get takes name of the integrationKit, and returns the corresponding integrationKit object, and an error if there is any.
-func (c *FakeIntegrationKits) Get(name string, options v1.GetOptions) (result *camelv1.IntegrationKit, err error) {
+func (c *FakeIntegrationKits) Get(ctx context.Context, name string, options v1.GetOptions) (result *camelv1.IntegrationKit, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewGetAction(integrationkitsResource, c.ns, name), &camelv1.IntegrationKit{})
 
@@ -51,7 +53,7 @@ func (c *FakeIntegrationKits) Get(name string, options v1.GetOptions) (result *c
 }
 
 // List takes label and field selectors, and returns the list of IntegrationKits that match those selectors.
-func (c *FakeIntegrationKits) List(opts v1.ListOptions) (result *camelv1.IntegrationKitList, err error) {
+func (c *FakeIntegrationKits) List(ctx context.Context, opts v1.ListOptions) (result *camelv1.IntegrationKitList, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewListAction(integrationkitsResource, integrationkitsKind, c.ns, opts), &camelv1.IntegrationKitList{})
 
@@ -73,14 +75,14 @@ func (c *FakeIntegrationKits) List(opts v1.ListOptions) (result *camelv1.Integra
 }
 
 // Watch returns a watch.Interface that watches the requested integrationKits.
-func (c *FakeIntegrationKits) Watch(opts v1.ListOptions) (watch.Interface, error) {
+func (c *FakeIntegrationKits) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
 	return c.Fake.
 		InvokesWatch(testing.NewWatchAction(integrationkitsResource, c.ns, opts))
 
 }
 
 // Create takes the representation of a integrationKit and creates it.  Returns the server's representation of the integrationKit, and an error, if there is any.
-func (c *FakeIntegrationKits) Create(integrationKit *camelv1.IntegrationKit) (result *camelv1.IntegrationKit, err error) {
+func (c *FakeIntegrationKits) Create(ctx context.Context, integrationKit *camelv1.IntegrationKit, opts v1.CreateOptions) (result *camelv1.IntegrationKit, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewCreateAction(integrationkitsResource, c.ns, integrationKit), &camelv1.IntegrationKit{})
 
@@ -91,7 +93,7 @@ func (c *FakeIntegrationKits) Create(integrationKit *camelv1.IntegrationKit) (re
 }
 
 // Update takes the representation of a integrationKit and updates it. Returns the server's representation of the integrationKit, and an error, if there is any.
-func (c *FakeIntegrationKits) Update(integrationKit *camelv1.IntegrationKit) (result *camelv1.IntegrationKit, err error) {
+func (c *FakeIntegrationKits) Update(ctx context.Context, integrationKit *camelv1.IntegrationKit, opts v1.UpdateOptions) (result *camelv1.IntegrationKit, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateAction(integrationkitsResource, c.ns, integrationKit), &camelv1.IntegrationKit{})
 
@@ -103,7 +105,7 @@ func (c *FakeIntegrationKits) Update(integrationKit *camelv1.IntegrationKit) (re
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeIntegrationKits) UpdateStatus(integrationKit *camelv1.IntegrationKit) (*camelv1.IntegrationKit, error) {
+func (c *FakeIntegrationKits) UpdateStatus(ctx context.Context, integrationKit *camelv1.IntegrationKit, opts v1.UpdateOptions) (*camelv1.IntegrationKit, error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateSubresourceAction(integrationkitsResource, "status", c.ns, integrationKit), &camelv1.IntegrationKit{})
 
@@ -114,7 +116,7 @@ func (c *FakeIntegrationKits) UpdateStatus(integrationKit *camelv1.IntegrationKi
 }
 
 // Delete takes name of the integrationKit and deletes it. Returns an error if one occurs.
-func (c *FakeIntegrationKits) Delete(name string, options *v1.DeleteOptions) error {
+func (c *FakeIntegrationKits) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
 		Invokes(testing.NewDeleteAction(integrationkitsResource, c.ns, name), &camelv1.IntegrationKit{})
 
@@ -122,15 +124,15 @@ func (c *FakeIntegrationKits) Delete(name string, options *v1.DeleteOptions) err
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *FakeIntegrationKits) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
-	action := testing.NewDeleteCollectionAction(integrationkitsResource, c.ns, listOptions)
+func (c *FakeIntegrationKits) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(integrationkitsResource, c.ns, listOpts)
 
 	_, err := c.Fake.Invokes(action, &camelv1.IntegrationKitList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched integrationKit.
-func (c *FakeIntegrationKits) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *camelv1.IntegrationKit, err error) {
+func (c *FakeIntegrationKits) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *camelv1.IntegrationKit, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewPatchSubresourceAction(integrationkitsResource, c.ns, name, pt, data, subresources...), &camelv1.IntegrationKit{})
 
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
index 4847b9e..88eea38 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/fake/fake_integrationplatform.go
@@ -20,6 +20,8 @@ limitations under the License.
 package fake
 
 import (
+	"context"
+
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	labels "k8s.io/apimachinery/pkg/labels"
@@ -40,7 +42,7 @@ var integrationplatformsResource = schema.GroupVersionResource{Group: "camel.apa
 var integrationplatformsKind = schema.GroupVersionKind{Group: "camel.apache.org", Version: "v1", Kind: "IntegrationPlatform"}
 
 // Get takes name of the integrationPlatform, and returns the corresponding integrationPlatform object, and an error if there is any.
-func (c *FakeIntegrationPlatforms) Get(name string, options v1.GetOptions) (result *camelv1.IntegrationPlatform, err error) {
+func (c *FakeIntegrationPlatforms) Get(ctx context.Context, name string, options v1.GetOptions) (result *camelv1.IntegrationPlatform, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewGetAction(integrationplatformsResource, c.ns, name), &camelv1.IntegrationPlatform{})
 
@@ -51,7 +53,7 @@ func (c *FakeIntegrationPlatforms) Get(name string, options v1.GetOptions) (resu
 }
 
 // List takes label and field selectors, and returns the list of IntegrationPlatforms that match those selectors.
-func (c *FakeIntegrationPlatforms) List(opts v1.ListOptions) (result *camelv1.IntegrationPlatformList, err error) {
+func (c *FakeIntegrationPlatforms) List(ctx context.Context, opts v1.ListOptions) (result *camelv1.IntegrationPlatformList, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewListAction(integrationplatformsResource, integrationplatformsKind, c.ns, opts), &camelv1.IntegrationPlatformList{})
 
@@ -73,14 +75,14 @@ func (c *FakeIntegrationPlatforms) List(opts v1.ListOptions) (result *camelv1.In
 }
 
 // Watch returns a watch.Interface that watches the requested integrationPlatforms.
-func (c *FakeIntegrationPlatforms) Watch(opts v1.ListOptions) (watch.Interface, error) {
+func (c *FakeIntegrationPlatforms) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
 	return c.Fake.
 		InvokesWatch(testing.NewWatchAction(integrationplatformsResource, c.ns, opts))
 
 }
 
 // Create takes the representation of a integrationPlatform and creates it.  Returns the server's representation of the integrationPlatform, and an error, if there is any.
-func (c *FakeIntegrationPlatforms) Create(integrationPlatform *camelv1.IntegrationPlatform) (result *camelv1.IntegrationPlatform, err error) {
+func (c *FakeIntegrationPlatforms) Create(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatform, opts v1.CreateOptions) (result *camelv1.IntegrationPlatform, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewCreateAction(integrationplatformsResource, c.ns, integrationPlatform), &camelv1.IntegrationPlatform{})
 
@@ -91,7 +93,7 @@ func (c *FakeIntegrationPlatforms) Create(integrationPlatform *camelv1.Integrati
 }
 
 // Update takes the representation of a integrationPlatform and updates it. Returns the server's representation of the integrationPlatform, and an error, if there is any.
-func (c *FakeIntegrationPlatforms) Update(integrationPlatform *camelv1.IntegrationPlatform) (result *camelv1.IntegrationPlatform, err error) {
+func (c *FakeIntegrationPlatforms) Update(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatform, opts v1.UpdateOptions) (result *camelv1.IntegrationPlatform, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateAction(integrationplatformsResource, c.ns, integrationPlatform), &camelv1.IntegrationPlatform{})
 
@@ -103,7 +105,7 @@ func (c *FakeIntegrationPlatforms) Update(integrationPlatform *camelv1.Integrati
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeIntegrationPlatforms) UpdateStatus(integrationPlatform *camelv1.IntegrationPlatform) (*camelv1.IntegrationPlatform, error) {
+func (c *FakeIntegrationPlatforms) UpdateStatus(ctx context.Context, integrationPlatform *camelv1.IntegrationPlatform, opts v1.UpdateOptions) (*camelv1.IntegrationPlatform, error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewUpdateSubresourceAction(integrationplatformsResource, "status", c.ns, integrationPlatform), &camelv1.IntegrationPlatform{})
 
@@ -114,7 +116,7 @@ func (c *FakeIntegrationPlatforms) UpdateStatus(integrationPlatform *camelv1.Int
 }
 
 // Delete takes name of the integrationPlatform and deletes it. Returns an error if one occurs.
-func (c *FakeIntegrationPlatforms) Delete(name string, options *v1.DeleteOptions) error {
+func (c *FakeIntegrationPlatforms) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
 	_, err := c.Fake.
 		Invokes(testing.NewDeleteAction(integrationplatformsResource, c.ns, name), &camelv1.IntegrationPlatform{})
 
@@ -122,15 +124,15 @@ func (c *FakeIntegrationPlatforms) Delete(name string, options *v1.DeleteOptions
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *FakeIntegrationPlatforms) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
-	action := testing.NewDeleteCollectionAction(integrationplatformsResource, c.ns, listOptions)
+func (c *FakeIntegrationPlatforms) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
+	action := testing.NewDeleteCollectionAction(integrationplatformsResource, c.ns, listOpts)
 
 	_, err := c.Fake.Invokes(action, &camelv1.IntegrationPlatformList{})
 	return err
 }
 
 // Patch applies the patch and returns the patched integrationPlatform.
-func (c *FakeIntegrationPlatforms) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *camelv1.IntegrationPlatform, err error) {
+func (c *FakeIntegrationPlatforms) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *camelv1.IntegrationPlatform, err error) {
 	obj, err := c.Fake.
 		Invokes(testing.NewPatchSubresourceAction(integrationplatformsResource, c.ns, name, pt, data, subresources...), &camelv1.IntegrationPlatform{})
 
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
index 8e788a7..01e6a9d 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integration.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -38,15 +39,15 @@ type IntegrationsGetter interface {
 
 // IntegrationInterface has methods to work with Integration resources.
 type IntegrationInterface interface {
-	Create(*v1.Integration) (*v1.Integration, error)
-	Update(*v1.Integration) (*v1.Integration, error)
-	UpdateStatus(*v1.Integration) (*v1.Integration, error)
-	Delete(name string, options *metav1.DeleteOptions) error
-	DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
-	Get(name string, options metav1.GetOptions) (*v1.Integration, error)
-	List(opts metav1.ListOptions) (*v1.IntegrationList, error)
-	Watch(opts metav1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Integration, err error)
+	Create(ctx context.Context, integration *v1.Integration, opts metav1.CreateOptions) (*v1.Integration, error)
+	Update(ctx context.Context, integration *v1.Integration, opts metav1.UpdateOptions) (*v1.Integration, error)
+	UpdateStatus(ctx context.Context, integration *v1.Integration, opts metav1.UpdateOptions) (*v1.Integration, error)
+	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
+	Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Integration, error)
+	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationList, error)
+	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Integration, err error)
 	IntegrationExpansion
 }
 
@@ -65,20 +66,20 @@ func newIntegrations(c *CamelV1Client, namespace string) *integrations {
 }
 
 // Get takes name of the integration, and returns the corresponding integration object, and an error if there is any.
-func (c *integrations) Get(name string, options metav1.GetOptions) (result *v1.Integration, err error) {
+func (c *integrations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Integration, err error) {
 	result = &v1.Integration{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("integrations").
 		Name(name).
 		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // List takes label and field selectors, and returns the list of Integrations that match those selectors.
-func (c *integrations) List(opts metav1.ListOptions) (result *v1.IntegrationList, err error) {
+func (c *integrations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IntegrationList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -89,13 +90,13 @@ func (c *integrations) List(opts metav1.ListOptions) (result *v1.IntegrationList
 		Resource("integrations").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Watch returns a watch.Interface that watches the requested integrations.
-func (c *integrations) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+func (c *integrations) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -106,87 +107,90 @@ func (c *integrations) Watch(opts metav1.ListOptions) (watch.Interface, error) {
 		Resource("integrations").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Watch()
+		Watch(ctx)
 }
 
 // Create takes the representation of a integration and creates it.  Returns the server's representation of the integration, and an error, if there is any.
-func (c *integrations) Create(integration *v1.Integration) (result *v1.Integration, err error) {
+func (c *integrations) Create(ctx context.Context, integration *v1.Integration, opts metav1.CreateOptions) (result *v1.Integration, err error) {
 	result = &v1.Integration{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("integrations").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integration).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Update takes the representation of a integration and updates it. Returns the server's representation of the integration, and an error, if there is any.
-func (c *integrations) Update(integration *v1.Integration) (result *v1.Integration, err error) {
+func (c *integrations) Update(ctx context.Context, integration *v1.Integration, opts metav1.UpdateOptions) (result *v1.Integration, err error) {
 	result = &v1.Integration{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrations").
 		Name(integration.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integration).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *integrations) UpdateStatus(integration *v1.Integration) (result *v1.Integration, err error) {
+func (c *integrations) UpdateStatus(ctx context.Context, integration *v1.Integration, opts metav1.UpdateOptions) (result *v1.Integration, err error) {
 	result = &v1.Integration{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrations").
 		Name(integration.Name).
 		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integration).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Delete takes name of the integration and deletes it. Returns an error if one occurs.
-func (c *integrations) Delete(name string, options *metav1.DeleteOptions) error {
+func (c *integrations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrations").
 		Name(name).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *integrations) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+func (c *integrations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
 	var timeout time.Duration
-	if listOptions.TimeoutSeconds != nil {
-		timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
 	}
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrations").
-		VersionedParams(&listOptions, scheme.ParameterCodec).
+		VersionedParams(&listOpts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // Patch applies the patch and returns the patched integration.
-func (c *integrations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Integration, err error) {
+func (c *integrations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Integration, err error) {
 	result = &v1.Integration{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("integrations").
-		SubResource(subresources...).
 		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(data).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
index a75affd..774a5ba 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationkit.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -38,15 +39,15 @@ type IntegrationKitsGetter interface {
 
 // IntegrationKitInterface has methods to work with IntegrationKit resources.
 type IntegrationKitInterface interface {
-	Create(*v1.IntegrationKit) (*v1.IntegrationKit, error)
-	Update(*v1.IntegrationKit) (*v1.IntegrationKit, error)
-	UpdateStatus(*v1.IntegrationKit) (*v1.IntegrationKit, error)
-	Delete(name string, options *metav1.DeleteOptions) error
-	DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
-	Get(name string, options metav1.GetOptions) (*v1.IntegrationKit, error)
-	List(opts metav1.ListOptions) (*v1.IntegrationKitList, error)
-	Watch(opts metav1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.IntegrationKit, err error)
+	Create(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.CreateOptions) (*v1.IntegrationKit, error)
+	Update(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.UpdateOptions) (*v1.IntegrationKit, error)
+	UpdateStatus(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.UpdateOptions) (*v1.IntegrationKit, error)
+	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
+	Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.IntegrationKit, error)
+	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationKitList, error)
+	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationKit, err error)
 	IntegrationKitExpansion
 }
 
@@ -65,20 +66,20 @@ func newIntegrationKits(c *CamelV1Client, namespace string) *integrationKits {
 }
 
 // Get takes name of the integrationKit, and returns the corresponding integrationKit object, and an error if there is any.
-func (c *integrationKits) Get(name string, options metav1.GetOptions) (result *v1.IntegrationKit, err error) {
+func (c *integrationKits) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.IntegrationKit, err error) {
 	result = &v1.IntegrationKit{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("integrationkits").
 		Name(name).
 		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // List takes label and field selectors, and returns the list of IntegrationKits that match those selectors.
-func (c *integrationKits) List(opts metav1.ListOptions) (result *v1.IntegrationKitList, err error) {
+func (c *integrationKits) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IntegrationKitList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -89,13 +90,13 @@ func (c *integrationKits) List(opts metav1.ListOptions) (result *v1.IntegrationK
 		Resource("integrationkits").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Watch returns a watch.Interface that watches the requested integrationKits.
-func (c *integrationKits) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+func (c *integrationKits) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -106,87 +107,90 @@ func (c *integrationKits) Watch(opts metav1.ListOptions) (watch.Interface, error
 		Resource("integrationkits").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Watch()
+		Watch(ctx)
 }
 
 // Create takes the representation of a integrationKit and creates it.  Returns the server's representation of the integrationKit, and an error, if there is any.
-func (c *integrationKits) Create(integrationKit *v1.IntegrationKit) (result *v1.IntegrationKit, err error) {
+func (c *integrationKits) Create(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.CreateOptions) (result *v1.IntegrationKit, err error) {
 	result = &v1.IntegrationKit{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("integrationkits").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationKit).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Update takes the representation of a integrationKit and updates it. Returns the server's representation of the integrationKit, and an error, if there is any.
-func (c *integrationKits) Update(integrationKit *v1.IntegrationKit) (result *v1.IntegrationKit, err error) {
+func (c *integrationKits) Update(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.UpdateOptions) (result *v1.IntegrationKit, err error) {
 	result = &v1.IntegrationKit{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrationkits").
 		Name(integrationKit.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationKit).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *integrationKits) UpdateStatus(integrationKit *v1.IntegrationKit) (result *v1.IntegrationKit, err error) {
+func (c *integrationKits) UpdateStatus(ctx context.Context, integrationKit *v1.IntegrationKit, opts metav1.UpdateOptions) (result *v1.IntegrationKit, err error) {
 	result = &v1.IntegrationKit{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrationkits").
 		Name(integrationKit.Name).
 		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationKit).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Delete takes name of the integrationKit and deletes it. Returns an error if one occurs.
-func (c *integrationKits) Delete(name string, options *metav1.DeleteOptions) error {
+func (c *integrationKits) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrationkits").
 		Name(name).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *integrationKits) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+func (c *integrationKits) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
 	var timeout time.Duration
-	if listOptions.TimeoutSeconds != nil {
-		timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
 	}
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrationkits").
-		VersionedParams(&listOptions, scheme.ParameterCodec).
+		VersionedParams(&listOpts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // Patch applies the patch and returns the patched integrationKit.
-func (c *integrationKits) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.IntegrationKit, err error) {
+func (c *integrationKits) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationKit, err error) {
 	result = &v1.IntegrationKit{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("integrationkits").
-		SubResource(subresources...).
 		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(data).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
index 1da0e2b..535b578 100644
--- a/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
+++ b/pkg/client/camel/clientset/versioned/typed/camel/v1/integrationplatform.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	"time"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -38,15 +39,15 @@ type IntegrationPlatformsGetter interface {
 
 // IntegrationPlatformInterface has methods to work with IntegrationPlatform resources.
 type IntegrationPlatformInterface interface {
-	Create(*v1.IntegrationPlatform) (*v1.IntegrationPlatform, error)
-	Update(*v1.IntegrationPlatform) (*v1.IntegrationPlatform, error)
-	UpdateStatus(*v1.IntegrationPlatform) (*v1.IntegrationPlatform, error)
-	Delete(name string, options *metav1.DeleteOptions) error
-	DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
-	Get(name string, options metav1.GetOptions) (*v1.IntegrationPlatform, error)
-	List(opts metav1.ListOptions) (*v1.IntegrationPlatformList, error)
-	Watch(opts metav1.ListOptions) (watch.Interface, error)
-	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.IntegrationPlatform, err error)
+	Create(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.CreateOptions) (*v1.IntegrationPlatform, error)
+	Update(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.UpdateOptions) (*v1.IntegrationPlatform, error)
+	UpdateStatus(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.UpdateOptions) (*v1.IntegrationPlatform, error)
+	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
+	DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
+	Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.IntegrationPlatform, error)
+	List(ctx context.Context, opts metav1.ListOptions) (*v1.IntegrationPlatformList, error)
+	Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
+	Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationPlatform, err error)
 	IntegrationPlatformExpansion
 }
 
@@ -65,20 +66,20 @@ func newIntegrationPlatforms(c *CamelV1Client, namespace string) *integrationPla
 }
 
 // Get takes name of the integrationPlatform, and returns the corresponding integrationPlatform object, and an error if there is any.
-func (c *integrationPlatforms) Get(name string, options metav1.GetOptions) (result *v1.IntegrationPlatform, err error) {
+func (c *integrationPlatforms) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.IntegrationPlatform, err error) {
 	result = &v1.IntegrationPlatform{}
 	err = c.client.Get().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
 		Name(name).
 		VersionedParams(&options, scheme.ParameterCodec).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // List takes label and field selectors, and returns the list of IntegrationPlatforms that match those selectors.
-func (c *integrationPlatforms) List(opts metav1.ListOptions) (result *v1.IntegrationPlatformList, err error) {
+func (c *integrationPlatforms) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IntegrationPlatformList, err error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -89,13 +90,13 @@ func (c *integrationPlatforms) List(opts metav1.ListOptions) (result *v1.Integra
 		Resource("integrationplatforms").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Watch returns a watch.Interface that watches the requested integrationPlatforms.
-func (c *integrationPlatforms) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+func (c *integrationPlatforms) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
 	var timeout time.Duration
 	if opts.TimeoutSeconds != nil {
 		timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
@@ -106,87 +107,90 @@ func (c *integrationPlatforms) Watch(opts metav1.ListOptions) (watch.Interface,
 		Resource("integrationplatforms").
 		VersionedParams(&opts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Watch()
+		Watch(ctx)
 }
 
 // Create takes the representation of a integrationPlatform and creates it.  Returns the server's representation of the integrationPlatform, and an error, if there is any.
-func (c *integrationPlatforms) Create(integrationPlatform *v1.IntegrationPlatform) (result *v1.IntegrationPlatform, err error) {
+func (c *integrationPlatforms) Create(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.CreateOptions) (result *v1.IntegrationPlatform, err error) {
 	result = &v1.IntegrationPlatform{}
 	err = c.client.Post().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationPlatform).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Update takes the representation of a integrationPlatform and updates it. Returns the server's representation of the integrationPlatform, and an error, if there is any.
-func (c *integrationPlatforms) Update(integrationPlatform *v1.IntegrationPlatform) (result *v1.IntegrationPlatform, err error) {
+func (c *integrationPlatforms) Update(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.UpdateOptions) (result *v1.IntegrationPlatform, err error) {
 	result = &v1.IntegrationPlatform{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
 		Name(integrationPlatform.Name).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationPlatform).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // UpdateStatus was generated because the type contains a Status member.
 // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-
-func (c *integrationPlatforms) UpdateStatus(integrationPlatform *v1.IntegrationPlatform) (result *v1.IntegrationPlatform, err error) {
+func (c *integrationPlatforms) UpdateStatus(ctx context.Context, integrationPlatform *v1.IntegrationPlatform, opts metav1.UpdateOptions) (result *v1.IntegrationPlatform, err error) {
 	result = &v1.IntegrationPlatform{}
 	err = c.client.Put().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
 		Name(integrationPlatform.Name).
 		SubResource("status").
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(integrationPlatform).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
 
 // Delete takes name of the integrationPlatform and deletes it. Returns an error if one occurs.
-func (c *integrationPlatforms) Delete(name string, options *metav1.DeleteOptions) error {
+func (c *integrationPlatforms) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
 		Name(name).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // DeleteCollection deletes a collection of objects.
-func (c *integrationPlatforms) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+func (c *integrationPlatforms) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
 	var timeout time.Duration
-	if listOptions.TimeoutSeconds != nil {
-		timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+	if listOpts.TimeoutSeconds != nil {
+		timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
 	}
 	return c.client.Delete().
 		Namespace(c.ns).
 		Resource("integrationplatforms").
-		VersionedParams(&listOptions, scheme.ParameterCodec).
+		VersionedParams(&listOpts, scheme.ParameterCodec).
 		Timeout(timeout).
-		Body(options).
-		Do().
+		Body(&opts).
+		Do(ctx).
 		Error()
 }
 
 // Patch applies the patch and returns the patched integrationPlatform.
-func (c *integrationPlatforms) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.IntegrationPlatform, err error) {
+func (c *integrationPlatforms) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.IntegrationPlatform, err error) {
 	result = &v1.IntegrationPlatform{}
 	err = c.client.Patch(pt).
 		Namespace(c.ns).
 		Resource("integrationplatforms").
-		SubResource(subresources...).
 		Name(name).
+		SubResource(subresources...).
+		VersionedParams(&opts, scheme.ParameterCodec).
 		Body(data).
-		Do().
+		Do(ctx).
 		Into(result)
 	return
 }
diff --git a/pkg/client/camel/go.mod b/pkg/client/camel/go.mod
index f02023e..d8995fd 100644
--- a/pkg/client/camel/go.mod
+++ b/pkg/client/camel/go.mod
@@ -4,13 +4,9 @@ go 1.13
 
 require (
 	github.com/apache/camel-k/pkg/apis/camel v1.1.0
-	k8s.io/apimachinery v0.18.2
-	k8s.io/client-go v0.18.2
-)
-
-replace (
-	k8s.io/apimachinery => k8s.io/apimachinery v0.17.6
-	k8s.io/client-go => k8s.io/client-go v0.17.6
+	k8s.io/apimachinery v0.18.8
+	k8s.io/client-go v0.18.8
+	k8s.io/code-generator v0.18.8 // indirect
 )
 
 // Local modules
diff --git a/pkg/client/camel/go.sum b/pkg/client/camel/go.sum
index 13fbe75..a8d781d 100644
--- a/pkg/client/camel/go.sum
+++ b/pkg/client/camel/go.sum
@@ -51,6 +51,7 @@ github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r
 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=
 github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
+github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
@@ -59,6 +60,8 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb
 github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b h1:vCplRbYcTTeBVLjIU0KvipEeVBSxl6sakUBRmeLBTkw=
+github.com/evanphx/json-patch v0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc=
 github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
@@ -70,6 +73,8 @@ github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0
 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-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
+github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY=
+github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 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=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -131,11 +136,13 @@ github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
 github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -150,6 +157,7 @@ github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1
 github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.1.0 h1:rVsPeBmXbYv4If/cumu1AzZPwV58q433hvONV1UEZoI=
 github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
+github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 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=
@@ -165,6 +173,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -172,6 +181,8 @@ github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62F
 github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
 github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
+github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
@@ -180,6 +191,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 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/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
@@ -223,6 +235,7 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -252,6 +265,7 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
 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=
 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -268,6 +282,7 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb
 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.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=
@@ -285,8 +300,11 @@ 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/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -296,6 +314,9 @@ 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/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-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -316,6 +337,10 @@ 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/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
+golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 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=
@@ -346,11 +371,15 @@ golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C
 golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7 h1:HmbHVPwrPEKPGLAcHSrMe6+hqSUlvZU0rab6x5EXfGU=
 golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -370,8 +399,15 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 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-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8=
+golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/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=
@@ -391,6 +427,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
@@ -418,6 +455,8 @@ k8s.io/api v0.16.4/go.mod h1:AtzMnsR45tccQss5q8RnF+W8L81DH6XwXwo/joEx9u0=
 k8s.io/api v0.17.6/go.mod h1:1jKVwkj0UZ4huak/yRt3MFfU5wc32+B41SkNN5HhyFg=
 k8s.io/api v0.18.2 h1:wG5g5ZmSVgm5B+eHMIbI9EGATS2L8Z72rda19RIEgY8=
 k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78=
+k8s.io/api v0.18.8 h1:aIKUzJPb96f3fKec2lxtY7acZC9gQNDLVhfSGpxBAC4=
+k8s.io/api v0.18.8/go.mod h1:d/CXqwWv+Z2XEG1LgceeDmHQwpUJhROPx16SlxJgERY=
 k8s.io/apiextensions-apiserver v0.17.6/go.mod h1:Z3CHLP3Tha+Rbav7JR3S+ye427UaJkHBomK2c4XtZ3A=
 k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY=
 k8s.io/apimachinery v0.16.4 h1:+VNiyTcctUvBBRUxfulwL2I6TGratkR1oAoULuas/HI=
@@ -426,6 +465,8 @@ k8s.io/apimachinery v0.17.6 h1:P0MNfucrmKLPsOSRbhDuG0Tplrpg7hVY4fJHh5sUIUw=
 k8s.io/apimachinery v0.17.6/go.mod h1:Lg8zZ5iC/O8UjCqW6DNhcQG2m4TdjF9kwG3891OWbbA=
 k8s.io/apimachinery v0.18.2 h1:44CmtbmkzVDAhCpRVSiP2R5PPrC2RtlIv/MoB8xpdRA=
 k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
+k8s.io/apimachinery v0.18.8 h1:jimPrycCqgx2QPearX3to1JePz7wSbVLq+7PdBTTwQ0=
+k8s.io/apimachinery v0.18.8/go.mod h1:6sQd+iHEqmOtALqOFjSWp2KZ9F0wlU/nWm0ZgsYWMig=
 k8s.io/apiserver v0.17.6/go.mod h1:sAYqm8hUDNA9aj/TzqwsJoExWrxprKv0tqs/z88qym0=
 k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw=
 k8s.io/client-go v0.16.4 h1:sf+FEZXYhJNjpTZapQDLvvN+0kBeUTxCYxlXcVdhv2E=
@@ -434,25 +475,41 @@ k8s.io/client-go v0.17.6 h1:W/JkbAcIZUPb9vENRTC75ymjQQO3qEJAZyYhOIEOifM=
 k8s.io/client-go v0.17.6/go.mod h1:tX5eAbQR/Kbqv+5R93rzHQoyRnPjjW2mm9i0lXnW218=
 k8s.io/client-go v0.18.2 h1:aLB0iaD4nmwh7arT2wIn+lMnAq7OswjaejkQ8p9bBYE=
 k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU=
+k8s.io/client-go v0.18.8 h1:SdbLpIxk5j5YbFr1b7fq8S7mDgDjYmUxSbszyoesoDM=
+k8s.io/client-go v0.18.8/go.mod h1:HqFqMllQ5NnQJNwjro9k5zMyfhZlOwpuTLVrxjkYSxU=
 k8s.io/code-generator v0.17.6/go.mod h1:iiHz51+oTx+Z9D0vB3CH3O4HDDPWrvZyUgUYaIE9h9M=
 k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
+k8s.io/code-generator v0.18.8 h1:lgO1P1wjikEtzNvj7ia+x1VC4svJ28a/r0wnOLhhOTU=
+k8s.io/code-generator v0.18.8/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c=
+k8s.io/code-generator v0.19.2 h1:7uaWJll6fyCPj2j3sfNN1AiY2gZU1VFN2dFR2uoxGWI=
+k8s.io/code-generator v0.19.2/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk=
 k8s.io/component-base v0.17.6/go.mod h1:jgRLWl0B0rOzFNtxQ9E4BphPmDqoMafujdau6AdG2Xo=
 k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM=
 k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
 k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 h1:RPscN6KhmG54S33L+lr3GS+oD1jmchIU0ll519K6FA4=
 k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
+k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw=
+k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
 k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
 k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
 k8s.io/klog v0.4.0 h1:lCJCxf/LIowc2IGS9TPjWDyXY4nOmdGdfcwwDQCOURQ=
 k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
 k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
 k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
+k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
+k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
+k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf h1:EYm5AW/UUDbnmnI+gK0TJDVK9qPLhM+sRHYanNKw0EQ=
 k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
 k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c h1:/KUFqjjqAcY4Us6luF5RDNZ16KJtb49HfR3ZHB9qYXM=
 k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
+k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6 h1:Oh3Mzx5pJ+yIumsAD0MOECPVeXsVot0UkiaCGVyfGQY=
+k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
 k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29 h1:NeQXVJ2XFSkRoPzRo8AId01ZER+j8oV4SZADT4iBOXQ=
 k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU=
+k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
 k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLKgHajBU0N62BDvE=
 k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
 k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
@@ -472,6 +529,7 @@ sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7m
 sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
 sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E=
 sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
+sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
 sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
 sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
diff --git a/pkg/client/camel/informers/externalversions/camel/v1/build.go b/pkg/client/camel/informers/externalversions/camel/v1/build.go
index 0c2e451..4bd2c4d 100644
--- a/pkg/client/camel/informers/externalversions/camel/v1/build.go
+++ b/pkg/client/camel/informers/externalversions/camel/v1/build.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	time "time"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -62,13 +63,13 @@ func NewFilteredBuildInformer(client versioned.Interface, namespace string, resy
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().Builds(namespace).List(options)
+				return client.CamelV1().Builds(namespace).List(context.TODO(), options)
 			},
 			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().Builds(namespace).Watch(options)
+				return client.CamelV1().Builds(namespace).Watch(context.TODO(), options)
 			},
 		},
 		&camelv1.Build{},
diff --git a/pkg/client/camel/informers/externalversions/camel/v1/camelcatalog.go b/pkg/client/camel/informers/externalversions/camel/v1/camelcatalog.go
index 6c9faaf..d76df22 100644
--- a/pkg/client/camel/informers/externalversions/camel/v1/camelcatalog.go
+++ b/pkg/client/camel/informers/externalversions/camel/v1/camelcatalog.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	time "time"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -62,13 +63,13 @@ func NewFilteredCamelCatalogInformer(client versioned.Interface, namespace strin
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().CamelCatalogs(namespace).List(options)
+				return client.CamelV1().CamelCatalogs(namespace).List(context.TODO(), options)
 			},
 			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().CamelCatalogs(namespace).Watch(options)
+				return client.CamelV1().CamelCatalogs(namespace).Watch(context.TODO(), options)
 			},
 		},
 		&camelv1.CamelCatalog{},
diff --git a/pkg/client/camel/informers/externalversions/camel/v1/integration.go b/pkg/client/camel/informers/externalversions/camel/v1/integration.go
index 50dd08e..def058d 100644
--- a/pkg/client/camel/informers/externalversions/camel/v1/integration.go
+++ b/pkg/client/camel/informers/externalversions/camel/v1/integration.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	time "time"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -62,13 +63,13 @@ func NewFilteredIntegrationInformer(client versioned.Interface, namespace string
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().Integrations(namespace).List(options)
+				return client.CamelV1().Integrations(namespace).List(context.TODO(), options)
 			},
 			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().Integrations(namespace).Watch(options)
+				return client.CamelV1().Integrations(namespace).Watch(context.TODO(), options)
 			},
 		},
 		&camelv1.Integration{},
diff --git a/pkg/client/camel/informers/externalversions/camel/v1/integrationkit.go b/pkg/client/camel/informers/externalversions/camel/v1/integrationkit.go
index 760f29d..bcd1ca7 100644
--- a/pkg/client/camel/informers/externalversions/camel/v1/integrationkit.go
+++ b/pkg/client/camel/informers/externalversions/camel/v1/integrationkit.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	time "time"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -62,13 +63,13 @@ func NewFilteredIntegrationKitInformer(client versioned.Interface, namespace str
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().IntegrationKits(namespace).List(options)
+				return client.CamelV1().IntegrationKits(namespace).List(context.TODO(), options)
 			},
 			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().IntegrationKits(namespace).Watch(options)
+				return client.CamelV1().IntegrationKits(namespace).Watch(context.TODO(), options)
 			},
 		},
 		&camelv1.IntegrationKit{},
diff --git a/pkg/client/camel/informers/externalversions/camel/v1/integrationplatform.go b/pkg/client/camel/informers/externalversions/camel/v1/integrationplatform.go
index a23ca6d..8722884 100644
--- a/pkg/client/camel/informers/externalversions/camel/v1/integrationplatform.go
+++ b/pkg/client/camel/informers/externalversions/camel/v1/integrationplatform.go
@@ -20,6 +20,7 @@ limitations under the License.
 package v1
 
 import (
+	"context"
 	time "time"
 
 	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
@@ -62,13 +63,13 @@ func NewFilteredIntegrationPlatformInformer(client versioned.Interface, namespac
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().IntegrationPlatforms(namespace).List(options)
+				return client.CamelV1().IntegrationPlatforms(namespace).List(context.TODO(), options)
 			},
 			WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.CamelV1().IntegrationPlatforms(namespace).Watch(options)
+				return client.CamelV1().IntegrationPlatforms(namespace).Watch(context.TODO(), options)
 			},
 		},
 		&camelv1.IntegrationPlatform{},
diff --git a/script/gen_client.sh b/script/gen_client.sh
index d9968a9..2205931 100755
--- a/script/gen_client.sh
+++ b/script/gen_client.sh
@@ -16,37 +16,42 @@
 # limitations under the License.
 
 location=$(dirname $0)
-rootdir=$location/..
 
 unset GOPATH
 GO111MODULE=on
 
+# Entering the client module
+cd $location/../pkg/client/camel
+
 echo "Generating Go client code..."
 
 go run k8s.io/code-generator/cmd/client-gen \
 	--input=camel/v1 \
-	--go-header-file=$rootdir/script/headers/default.txt \
+	--go-header-file=../../../script/headers/default.txt \
 	--clientset-name "versioned"  \
 	--input-base=github.com/apache/camel-k/pkg/apis \
-	--output-base=$rootdir \
+	--output-base=. \
 	--output-package=github.com/apache/camel-k/pkg/client/camel/clientset
 
 
 go run k8s.io/code-generator/cmd/lister-gen \
 	--input-dirs=github.com/apache/camel-k/pkg/apis/camel/v1 \
-	--go-header-file=$rootdir/script/headers/default.txt \
-	--output-base=$rootdir \
+	--go-header-file=../../../script/headers/default.txt \
+	--output-base=. \
 	--output-package=github.com/apache/camel-k/pkg/client/camel/listers
 
 go run k8s.io/code-generator/cmd/informer-gen \
     --versioned-clientset-package=github.com/apache/camel-k/pkg/client/camel/clientset/versioned \
 	--listers-package=github.com/apache/camel-k/pkg/client/camel/listers \
 	--input-dirs=github.com/apache/camel-k/pkg/apis/camel/v1 \
-	--go-header-file=$rootdir/script/headers/default.txt \
-	--output-base=$rootdir \
+	--go-header-file=../../../script/headers/default.txt \
+	--output-base=. \
 	--output-package=github.com/apache/camel-k/pkg/client/camel/informers
 
 
 # hack to fix non go-module compliance
-cp -R $rootdir/github.com/apache/camel-k/pkg/ $rootdir
-rm -rf $rootdir/github.com
+rm -rf ./clientset
+rm -rf ./informers
+rm -rf ./listers
+cp -R ./github.com/apache/camel-k/pkg/client/camel/* .
+rm -rf ./github.com