You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/02/08 12:51:37 UTC

[camel-k] branch master updated (b0b992d -> 7e6927c)

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

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


    from b0b992d  Add scaffold for Kamelet via kamel init
     new 9bb8651  chore(CRD): Remove old CRDs from the deploy directory
     new ba1ef35  chore(CRD): Generate JSON schemas out of the CRDs from the config dir
     new c86cac7  chore(e2e): Remove the KAMEL_LOCAL env var as the KAMEL_INSTALL_OLM one can be used
     new f2fc6be  chore(CRD): Rebuild embedded resources
     new e9dae8b  chore(CSV): Fix createdAt field update script on Mac OS
     new b9d39c2  chore(CRD): Bash is required to run CRD gen script
     new 4d95ad2  chore(CRD): Fix CRDs post-processing on Mac OS
     new 7e6927c  chore: Do not create backup files with inline sed commands

The 8 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.


Summary of changes:
 deploy/crd-build.yaml                | 4728 ----------------------------------
 deploy/crd-camel-catalog.yaml        |  330 ---
 deploy/crd-integration-kit.yaml      |  215 --
 deploy/crd-integration-platform.yaml |  401 ---
 deploy/crd-integration.yaml          |  395 ---
 deploy/crd-kamelet-binding.yaml      |  665 -----
 deploy/crd-kamelet.yaml              |  472 ----
 e2e/support/test_support.go          |    5 -
 pkg/resources/resources.go           |    7 -
 script/Makefile                      |    2 +-
 script/add_createdAt.sh              |    9 +-
 script/gen_crd.sh                    |   26 +-
 script/gen_json_schema.sh            |    4 +-
 13 files changed, 23 insertions(+), 7236 deletions(-)
 delete mode 100644 deploy/crd-build.yaml
 delete mode 100644 deploy/crd-camel-catalog.yaml
 delete mode 100644 deploy/crd-integration-kit.yaml
 delete mode 100644 deploy/crd-integration-platform.yaml
 delete mode 100644 deploy/crd-integration.yaml
 delete mode 100644 deploy/crd-kamelet-binding.yaml
 delete mode 100644 deploy/crd-kamelet.yaml


[camel-k] 08/08: chore: Do not create backup files with inline sed commands

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

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

commit 7e6927caf54c66c96e55a80ca08ddcac3d53f869
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 12:14:38 2021 +0100

    chore: Do not create backup files with inline sed commands
---
 script/Makefile         | 2 +-
 script/add_createdAt.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/script/Makefile b/script/Makefile
index 7c7d5e2..7a3a75a 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -346,7 +346,7 @@ bundle: generate-crd $(BUNDLE_CAMEL_APIS) kustomize
 	$(KUSTOMIZE) build config/manifests | operator-sdk generate bundle --overwrite --version $(OPERATOR_VERSION) $(BUNDLE_METADATA_OPTS)
 	@# Move the dockerfile into the bundle directory
 ifeq ($(shell uname -s 2>/dev/null || echo Unknown),Darwin)
-	mv bundle.Dockerfile bundle/Dockerfile && sed -i '.bak' 's/bundle\///g' bundle/Dockerfile
+	mv bundle.Dockerfile bundle/Dockerfile && sed -i '' 's/bundle\///g' bundle/Dockerfile
 else
 	mv bundle.Dockerfile bundle/Dockerfile && sed -i 's/bundle\///g' bundle/Dockerfile
 endif
diff --git a/script/add_createdAt.sh b/script/add_createdAt.sh
index 21c4d81..1dd1ad8 100755
--- a/script/add_createdAt.sh
+++ b/script/add_createdAt.sh
@@ -39,7 +39,7 @@ for file in `find "$dir" -type f`; do
     sed -i "s/createdAt: .*/createdAt: ${created}/" "${file}"
   elif [[ "$OSTYPE" == "darwin"* ]]; then
     # Mac OSX
-    sed -i '.bak' "s/createdAt: .*/createdAt: ${created}/" "${file}"
+    sed -i '' "s/createdAt: .*/createdAt: ${created}/" "${file}"
   fi
 done
 set -e


[camel-k] 02/08: chore(CRD): Generate JSON schemas out of the CRDs from the config dir

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

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

commit ba1ef35a8a79eb3a1adf60d264d04bd1d228b12f
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 10:20:33 2021 +0100

    chore(CRD): Generate JSON schemas out of the CRDs from the config dir
---
 script/gen_json_schema.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/script/gen_json_schema.sh b/script/gen_json_schema.sh
index fbc55a6..5ea967a 100755
--- a/script/gen_json_schema.sh
+++ b/script/gen_json_schema.sh
@@ -36,7 +36,7 @@ mkdir  tmpschema
 
 schema=./tmpschema/camel-k-loader-yaml-impl-json-schema.json
 
-go run ./cmd/util/json-schema-gen ./deploy/crd-kamelet.yaml $schema .spec.flow false ./docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json
-go run ./cmd/util/json-schema-gen ./deploy/crd-integration.yaml $schema .spec.flows true ./docs/modules/ROOT/assets/attachments/schema/integration-schema.json
+go run ./cmd/util/json-schema-gen ./config/crd/bases/camel.apache.org_kamelets.yaml $schema .spec.flow false ./docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json
+go run ./cmd/util/json-schema-gen ./config/crd/bases/camel.apache.org_integrations.yaml $schema .spec.flows true ./docs/modules/ROOT/assets/attachments/schema/integration-schema.json
 
 rm -r ./tmpschema


[camel-k] 04/08: chore(CRD): Rebuild embedded resources

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

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

commit f2fc6be2ea67cc2f13f0ac2b91a89506b6587d83
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 10:25:58 2021 +0100

    chore(CRD): Rebuild embedded resources
---
 pkg/resources/resources.go | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index f5b0e39..1f31b0c 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -533,13 +533,6 @@ var assets = func() http.FileSystem {
 		fs["/addons"].(os.FileInfo),
 		fs["/camel-catalog-1.6.0.yaml"].(os.FileInfo),
 		fs["/crd"].(os.FileInfo),
-		fs["/crd-build.yaml"].(os.FileInfo),
-		fs["/crd-camel-catalog.yaml"].(os.FileInfo),
-		fs["/crd-integration-kit.yaml"].(os.FileInfo),
-		fs["/crd-integration-platform.yaml"].(os.FileInfo),
-		fs["/crd-integration.yaml"].(os.FileInfo),
-		fs["/crd-kamelet-binding.yaml"].(os.FileInfo),
-		fs["/crd-kamelet.yaml"].(os.FileInfo),
 		fs["/default"].(os.FileInfo),
 		fs["/manager"].(os.FileInfo),
 		fs["/manifests"].(os.FileInfo),


[camel-k] 03/08: chore(e2e): Remove the KAMEL_LOCAL env var as the KAMEL_INSTALL_OLM one can be used

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

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

commit c86cac7b2795b56be06de5805d49406f2903dd2e
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 10:21:48 2021 +0100

    chore(e2e): Remove the KAMEL_LOCAL env var as the KAMEL_INSTALL_OLM one can be used
---
 e2e/support/test_support.go | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 71f30e2..0c9f1aa 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -158,11 +158,6 @@ func KamelWithContext(ctx context.Context, args ...string) *cobra.Command {
 	var c *cobra.Command
 	var err error
 
-	kamelLocal := os.Getenv("KAMEL_LOCAL")
-	if kamelLocal == "true" && len(args) > 0 && args[0] == "install" {
-		args = append(args, "--olm=false")
-	}
-
 	kamelArgs := os.Getenv("KAMEL_ARGS")
 	kamelDefaultArgs := strings.Fields(kamelArgs)
 	args = append(kamelDefaultArgs, args...)


[camel-k] 07/08: chore(CRD): Fix CRDs post-processing on Mac OS

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

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

commit 4d95ad2722545fc36cce924379f0e80fe4be76e4
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 12:10:52 2021 +0100

    chore(CRD): Fix CRDs post-processing on Mac OS
---
 script/gen_crd.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/script/gen_crd.sh b/script/gen_crd.sh
index 139a4f6..60ff12b 100755
--- a/script/gen_crd.sh
+++ b/script/gen_crd.sh
@@ -48,7 +48,7 @@ deploy_crd_file() {
     # Mac OSX
     cat "${source}.orig" | sed -n '/^---/,/^status/p;/^status/q' \
       | sed '1d;$d' \
-      | sed $'s/^  creationTimestamp:/  creationTimestamp:\\\n  labels:\\\n    app: camel-k/' >> "$source"
+      | sed -e $'/^  creationTimestamp:/a\\\n  labels:\\\n    app: camel-k' >> "$source"
   fi
 
   for dest in "${@:2}"; do


[camel-k] 06/08: chore(CRD): Bash is required to run CRD gen script

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

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

commit b9d39c20ea05021d2cba81aacbb3cd03b3436df6
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 11:07:00 2021 +0100

    chore(CRD): Bash is required to run CRD gen script
---
 script/gen_crd.sh | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/script/gen_crd.sh b/script/gen_crd.sh
index f212292..139a4f6 100755
--- a/script/gen_crd.sh
+++ b/script/gen_crd.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -17,10 +17,10 @@
 
 set -e
 
-location=$(dirname $0)
+location=$(dirname "$0")
 apidir=$location/../pkg/apis/camel
 
-cd $apidir
+cd "$apidir"
 $CONTROLLER_GEN crd paths=./... output:crd:artifacts:config=../../../config/crd/bases output:crd:dir=../../../config/crd/bases crd:crdVersions=v1
 
 # cleanup working directory in $apidir
@@ -35,24 +35,24 @@ deploy_crd_file() {
   source=$1
 
   # Make a copy to serve as the base for post-processing
-  cp $source "${source}.orig"
+  cp "$source" "${source}.orig"
 
   # Post-process source
-  cat ./script/headers/yaml.txt > $source
-  echo "" >> $source
+  cat ./script/headers/yaml.txt > "$source"
+  echo "" >> "$source"
   if [[ "$OSTYPE" == "linux-gnu"* ]]; then
     cat "${source}.orig" | sed -n '/^---/,/^status/p;/^status/q' \
       | sed '1d;$d' \
-      | sed '/creationTimestamp:/a\  labels:\n    app: camel-k' >> $source
+      | sed '/creationTimestamp:/a\  labels:\n    app: camel-k' >> "$source"
   elif [[ "$OSTYPE" == "darwin"* ]]; then
     # Mac OSX
     cat "${source}.orig" | sed -n '/^---/,/^status/p;/^status/q' \
       | sed '1d;$d' \
-      | sed $'s/^  creationTimestamp:/  creationTimestamp:\\\n  labels:\\\n    app: camel-k/' >> $source
+      | sed $'s/^  creationTimestamp:/  creationTimestamp:\\\n  labels:\\\n    app: camel-k/' >> "$source"
   fi
 
-  for dest in ${@:2}; do
-    cp $source $dest
+  for dest in "${@:2}"; do
+    cp "$source" "$dest"
   done
 
   # Remove the copy as no longer required
@@ -63,9 +63,9 @@ deploy_crd() {
   name=$1
   plural=$2
 
-  deploy_crd_file ./config/crd/bases/camel.apache.org_$plural.yaml \
-    ./helm/camel-k/crds/crd-$name.yaml \
-    ./deploy/olm-catalog/camel-k-dev/$version/camel.apache.org_$plural.yaml
+  deploy_crd_file ./config/crd/bases/camel.apache.org_"$plural".yaml \
+    ./helm/camel-k/crds/crd-"$name".yaml \
+    ./deploy/olm-catalog/camel-k-dev/"$version"/camel.apache.org_"$plural".yaml
 }
 
 deploy_crd build builds


[camel-k] 01/08: chore(CRD): Remove old CRDs from the deploy directory

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

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

commit 9bb86510428f569c63d55aa2387c40dc88107883
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 10:19:28 2021 +0100

    chore(CRD): Remove old CRDs from the deploy directory
---
 deploy/crd-build.yaml                | 4728 ----------------------------------
 deploy/crd-camel-catalog.yaml        |  330 ---
 deploy/crd-integration-kit.yaml      |  215 --
 deploy/crd-integration-platform.yaml |  401 ---
 deploy/crd-integration.yaml          |  395 ---
 deploy/crd-kamelet-binding.yaml      |  665 -----
 deploy/crd-kamelet.yaml              |  472 ----
 7 files changed, 7206 deletions(-)

diff --git a/deploy/crd-build.yaml b/deploy/crd-build.yaml
deleted file mode 100644
index 7d732ef..0000000
--- a/deploy/crd-build.yaml
+++ /dev/null
@@ -1,4728 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: builds.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: Build
-    listKind: BuildList
-    plural: builds
-    shortNames:
-    - ikb
-    singular: build
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The build phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    - description: The time at which the build was created
-      jsonPath: .metadata.creationTimestamp
-      name: Age
-      type: date
-    - description: The time at which the build was last (re-)started
-      jsonPath: .status.startedAt
-      name: Started
-      type: date
-    - description: The build last execution duration
-      jsonPath: .status.duration
-      name: Duration
-      type: string
-    - description: The number of execution attempts
-      jsonPath: .status.failure.recovery.attempt
-      name: Attempts
-      type: integer
-    name: v1
-    schema:
-      openAPIV3Schema:
-        description: Build is the Schema for the builds API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: BuildSpec defines the desired state of Build
-            properties:
-              tasks:
-                items:
-                  description: Task --
-                  properties:
-                    builder:
-                      description: BuilderTask --
-                      properties:
-                        affinity:
-                          description: Affinity is a group of affinity scheduling
-                            rules.
-                          properties:
-                            nodeAffinity:
-                              description: Describes node affinity scheduling rules
-                                for the pod.
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node matches the corresponding
-                                    matchExpressions; the node(s) with the highest
-                                    sum are the most preferred.
-                                  items:
-                                    description: An empty preferred scheduling term
-                                      matches all objects with implicit weight 0 (i.e.
-                                      it's a no-op). A null preferred scheduling term
-                                      matches no objects (i.e. is also a no-op).
-                                    properties:
-                                      preference:
-                                        description: A node selector term, associated
-                                          with the corresponding weight.
-                                        properties:
-                                          matchExpressions:
-                                            description: A list of node selector requirements
-                                              by node's labels.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchFields:
-                                            description: A list of node selector requirements
-                                              by node's fields.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                        type: object
-                                      weight:
-                                        description: Weight associated with matching
-                                          the corresponding nodeSelectorTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - preference
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the affinity requirements specified by this field
-                                    cease to be met at some point during pod execution
-                                    (e.g. due to an update), the system may or may
-                                    not try to eventually evict the pod from its node.
-                                  properties:
-                                    nodeSelectorTerms:
-                                      description: Required. A list of node selector
-                                        terms. The terms are ORed.
-                                      items:
-                                        description: A null or empty node selector
-                                          term matches no objects. The requirements
-                                          of them are ANDed. The TopologySelectorTerm
-                                          type implements a subset of the NodeSelectorTerm.
-                                        properties:
-                                          matchExpressions:
-                                            description: A list of node selector requirements
-                                              by node's labels.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchFields:
-                                            description: A list of node selector requirements
-                                              by node's fields.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                        type: object
-                                      type: array
-                                  required:
-                                  - nodeSelectorTerms
-                                  type: object
-                              type: object
-                            podAffinity:
-                              description: Describes pod affinity scheduling rules
-                                (e.g. co-locate this pod in the same node, zone, etc.
-                                as some other pod(s)).
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node has pods which
-                                    matches the corresponding podAffinityTerm; the
-                                    node(s) with the highest sum are the most preferred.
-                                  items:
-                                    description: The weights of all of the matched
-                                      WeightedPodAffinityTerm fields are added per-node
-                                      to find the most preferred node(s)
-                                    properties:
-                                      podAffinityTerm:
-                                        description: Required. A pod affinity term,
-                                          associated with the corresponding weight.
-                                        properties:
-                                          labelSelector:
-                                            description: A label query over a set
-                                              of resources, in this case pods.
-                                            properties:
-                                              matchExpressions:
-                                                description: matchExpressions is a
-                                                  list of label selector requirements.
-                                                  The requirements are ANDed.
-                                                items:
-                                                  description: A label selector requirement
-                                                    is a selector that contains values,
-                                                    a key, and an operator that relates
-                                                    the key and values.
-                                                  properties:
-                                                    key:
-                                                      description: key is the label
-                                                        key that the selector applies
-                                                        to.
-                                                      type: string
-                                                    operator:
-                                                      description: operator represents
-                                                        a key's relationship to a
-                                                        set of values. Valid operators
-                                                        are In, NotIn, Exists and
-                                                        DoesNotExist.
-                                                      type: string
-                                                    values:
-                                                      description: values is an array
-                                                        of string values. If the operator
-                                                        is In or NotIn, the values
-                                                        array must be non-empty. If
-                                                        the operator is Exists or
-                                                        DoesNotExist, the values array
-                                                        must be empty. This array
-                                                        is replaced during a strategic
-                                                        merge patch.
-                                                      items:
-                                                        type: string
-                                                      type: array
-                                                  required:
-                                                  - key
-                                                  - operator
-                                                  type: object
-                                                type: array
-                                              matchLabels:
-                                                additionalProperties:
-                                                  type: string
-                                                description: matchLabels is a map
-                                                  of {key,value} pairs. A single {key,value}
-                                                  in the matchLabels map is equivalent
-                                                  to an element of matchExpressions,
-                                                  whose key field is "key", the operator
-                                                  is "In", and the values array contains
-                                                  only "value". The requirements are
-                                                  ANDed.
-                                                type: object
-                                            type: object
-                                          namespaces:
-                                            description: namespaces specifies which
-                                              namespaces the labelSelector applies
-                                              to (matches against); null or empty
-                                              list means "this pod's namespace"
-                                            items:
-                                              type: string
-                                            type: array
-                                          topologyKey:
-                                            description: This pod should be co-located
-                                              (affinity) or not co-located (anti-affinity)
-                                              with the pods matching the labelSelector
-                                              in the specified namespaces, where co-located
-                                              is defined as running on a node whose
-                                              value of the label with key topologyKey
-                                              matches that of any node on which any
-                                              of the selected pods is running. Empty
-                                              topologyKey is not allowed.
-                                            type: string
-                                        required:
-                                        - topologyKey
-                                        type: object
-                                      weight:
-                                        description: weight associated with matching
-                                          the corresponding podAffinityTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - podAffinityTerm
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the affinity requirements specified by this field
-                                    cease to be met at some point during pod execution
-                                    (e.g. due to a pod label update), the system may
-                                    or may not try to eventually evict the pod from
-                                    its node. When there are multiple elements, the
-                                    lists of nodes corresponding to each podAffinityTerm
-                                    are intersected, i.e. all terms must be satisfied.
-                                  items:
-                                    description: Defines a set of pods (namely those
-                                      matching the labelSelector relative to the given
-                                      namespace(s)) that this pod should be co-located
-                                      (affinity) or not co-located (anti-affinity)
-                                      with, where co-located is defined as running
-                                      on a node whose value of the label with key
-                                      <topologyKey> matches that of any node on which
-                                      a pod of the set of pods is running
-                                    properties:
-                                      labelSelector:
-                                        description: A label query over a set of resources,
-                                          in this case pods.
-                                        properties:
-                                          matchExpressions:
-                                            description: matchExpressions is a list
-                                              of label selector requirements. The
-                                              requirements are ANDed.
-                                            items:
-                                              description: A label selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: key is the label key
-                                                    that the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: operator represents
-                                                    a key's relationship to a set
-                                                    of values. Valid operators are
-                                                    In, NotIn, Exists and DoesNotExist.
-                                                  type: string
-                                                values:
-                                                  description: values is an array
-                                                    of string values. If the operator
-                                                    is In or NotIn, the values array
-                                                    must be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. This
-                                                    array is replaced during a strategic
-                                                    merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchLabels:
-                                            additionalProperties:
-                                              type: string
-                                            description: matchLabels is a map of {key,value}
-                                              pairs. A single {key,value} in the matchLabels
-                                              map is equivalent to an element of matchExpressions,
-                                              whose key field is "key", the operator
-                                              is "In", and the values array contains
-                                              only "value". The requirements are ANDed.
-                                            type: object
-                                        type: object
-                                      namespaces:
-                                        description: namespaces specifies which namespaces
-                                          the labelSelector applies to (matches against);
-                                          null or empty list means "this pod's namespace"
-                                        items:
-                                          type: string
-                                        type: array
-                                      topologyKey:
-                                        description: This pod should be co-located
-                                          (affinity) or not co-located (anti-affinity)
-                                          with the pods matching the labelSelector
-                                          in the specified namespaces, where co-located
-                                          is defined as running on a node whose value
-                                          of the label with key topologyKey matches
-                                          that of any node on which any of the selected
-                                          pods is running. Empty topologyKey is not
-                                          allowed.
-                                        type: string
-                                    required:
-                                    - topologyKey
-                                    type: object
-                                  type: array
-                              type: object
-                            podAntiAffinity:
-                              description: Describes pod anti-affinity scheduling
-                                rules (e.g. avoid putting this pod in the same node,
-                                zone, etc. as some other pod(s)).
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the anti-affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling anti-affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node has pods which
-                                    matches the corresponding podAffinityTerm; the
-                                    node(s) with the highest sum are the most preferred.
-                                  items:
-                                    description: The weights of all of the matched
-                                      WeightedPodAffinityTerm fields are added per-node
-                                      to find the most preferred node(s)
-                                    properties:
-                                      podAffinityTerm:
-                                        description: Required. A pod affinity term,
-                                          associated with the corresponding weight.
-                                        properties:
-                                          labelSelector:
-                                            description: A label query over a set
-                                              of resources, in this case pods.
-                                            properties:
-                                              matchExpressions:
-                                                description: matchExpressions is a
-                                                  list of label selector requirements.
-                                                  The requirements are ANDed.
-                                                items:
-                                                  description: A label selector requirement
-                                                    is a selector that contains values,
-                                                    a key, and an operator that relates
-                                                    the key and values.
-                                                  properties:
-                                                    key:
-                                                      description: key is the label
-                                                        key that the selector applies
-                                                        to.
-                                                      type: string
-                                                    operator:
-                                                      description: operator represents
-                                                        a key's relationship to a
-                                                        set of values. Valid operators
-                                                        are In, NotIn, Exists and
-                                                        DoesNotExist.
-                                                      type: string
-                                                    values:
-                                                      description: values is an array
-                                                        of string values. If the operator
-                                                        is In or NotIn, the values
-                                                        array must be non-empty. If
-                                                        the operator is Exists or
-                                                        DoesNotExist, the values array
-                                                        must be empty. This array
-                                                        is replaced during a strategic
-                                                        merge patch.
-                                                      items:
-                                                        type: string
-                                                      type: array
-                                                  required:
-                                                  - key
-                                                  - operator
-                                                  type: object
-                                                type: array
-                                              matchLabels:
-                                                additionalProperties:
-                                                  type: string
-                                                description: matchLabels is a map
-                                                  of {key,value} pairs. A single {key,value}
-                                                  in the matchLabels map is equivalent
-                                                  to an element of matchExpressions,
-                                                  whose key field is "key", the operator
-                                                  is "In", and the values array contains
-                                                  only "value". The requirements are
-                                                  ANDed.
-                                                type: object
-                                            type: object
-                                          namespaces:
-                                            description: namespaces specifies which
-                                              namespaces the labelSelector applies
-                                              to (matches against); null or empty
-                                              list means "this pod's namespace"
-                                            items:
-                                              type: string
-                                            type: array
-                                          topologyKey:
-                                            description: This pod should be co-located
-                                              (affinity) or not co-located (anti-affinity)
-                                              with the pods matching the labelSelector
-                                              in the specified namespaces, where co-located
-                                              is defined as running on a node whose
-                                              value of the label with key topologyKey
-                                              matches that of any node on which any
-                                              of the selected pods is running. Empty
-                                              topologyKey is not allowed.
-                                            type: string
-                                        required:
-                                        - topologyKey
-                                        type: object
-                                      weight:
-                                        description: weight associated with matching
-                                          the corresponding podAffinityTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - podAffinityTerm
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the anti-affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the anti-affinity requirements specified by this
-                                    field cease to be met at some point during pod
-                                    execution (e.g. due to a pod label update), the
-                                    system may or may not try to eventually evict
-                                    the pod from its node. When there are multiple
-                                    elements, the lists of nodes corresponding to
-                                    each podAffinityTerm are intersected, i.e. all
-                                    terms must be satisfied.
-                                  items:
-                                    description: Defines a set of pods (namely those
-                                      matching the labelSelector relative to the given
-                                      namespace(s)) that this pod should be co-located
-                                      (affinity) or not co-located (anti-affinity)
-                                      with, where co-located is defined as running
-                                      on a node whose value of the label with key
-                                      <topologyKey> matches that of any node on which
-                                      a pod of the set of pods is running
-                                    properties:
-                                      labelSelector:
-                                        description: A label query over a set of resources,
-                                          in this case pods.
-                                        properties:
-                                          matchExpressions:
-                                            description: matchExpressions is a list
-                                              of label selector requirements. The
-                                              requirements are ANDed.
-                                            items:
-                                              description: A label selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: key is the label key
-                                                    that the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: operator represents
-                                                    a key's relationship to a set
-                                                    of values. Valid operators are
-                                                    In, NotIn, Exists and DoesNotExist.
-                                                  type: string
-                                                values:
-                                                  description: values is an array
-                                                    of string values. If the operator
-                                                    is In or NotIn, the values array
-                                                    must be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. This
-                                                    array is replaced during a strategic
-                                                    merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchLabels:
-                                            additionalProperties:
-                                              type: string
-                                            description: matchLabels is a map of {key,value}
-                                              pairs. A single {key,value} in the matchLabels
-                                              map is equivalent to an element of matchExpressions,
-                                              whose key field is "key", the operator
-                                              is "In", and the values array contains
-                                              only "value". The requirements are ANDed.
-                                            type: object
-                                        type: object
-                                      namespaces:
-                                        description: namespaces specifies which namespaces
-                                          the labelSelector applies to (matches against);
-                                          null or empty list means "this pod's namespace"
-                                        items:
-                                          type: string
-                                        type: array
-                                      topologyKey:
-                                        description: This pod should be co-located
-                                          (affinity) or not co-located (anti-affinity)
-                                          with the pods matching the labelSelector
-                                          in the specified namespaces, where co-located
-                                          is defined as running on a node whose value
-                                          of the label with key topologyKey matches
-                                          that of any node on which any of the selected
-                                          pods is running. Empty topologyKey is not
-                                          allowed.
-                                        type: string
-                                    required:
-                                    - topologyKey
-                                    type: object
-                                  type: array
-                              type: object
-                          type: object
-                        baseImage:
-                          type: string
-                        buildDir:
-                          type: string
-                        dependencies:
-                          items:
-                            type: string
-                          type: array
-                        image:
-                          type: string
-                        maven:
-                          description: MavenSpec --
-                          properties:
-                            localRepository:
-                              type: string
-                            settings:
-                              description: ValueSource --
-                              properties:
-                                configMapKeyRef:
-                                  description: Selects a key of a ConfigMap.
-                                  properties:
-                                    key:
-                                      description: The key to select.
-                                      type: string
-                                    name:
-                                      description: 'Name of the referent. More info:
-                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                        TODO: Add other useful fields. apiVersion,
-                                        kind, uid?'
-                                      type: string
-                                    optional:
-                                      description: Specify whether the ConfigMap or
-                                        its key must be defined
-                                      type: boolean
-                                  required:
-                                  - key
-                                  type: object
-                                secretKeyRef:
-                                  description: Selects a key of a secret.
-                                  properties:
-                                    key:
-                                      description: The key of the secret to select
-                                        from.  Must be a valid secret key.
-                                      type: string
-                                    name:
-                                      description: 'Name of the referent. More info:
-                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                        TODO: Add other useful fields. apiVersion,
-                                        kind, uid?'
-                                      type: string
-                                    optional:
-                                      description: Specify whether the Secret or its
-                                        key must be defined
-                                      type: boolean
-                                  required:
-                                  - key
-                                  type: object
-                              type: object
-                            timeout:
-                              type: string
-                          type: object
-                        meta:
-                          description: This is required until https://github.com/kubernetes-sigs/controller-tools/pull/395
-                            gets merged
-                          type: object
-                          x-kubernetes-preserve-unknown-fields: true
-                        name:
-                          type: string
-                        properties:
-                          additionalProperties:
-                            type: string
-                          type: object
-                        resources:
-                          items:
-                            description: ResourceSpec --
-                            properties:
-                              compression:
-                                type: boolean
-                              content:
-                                type: string
-                              contentKey:
-                                type: string
-                              contentRef:
-                                type: string
-                              contentType:
-                                type: string
-                              mountPath:
-                                type: string
-                              name:
-                                type: string
-                              rawContent:
-                                format: byte
-                                type: string
-                              type:
-                                description: ResourceType --
-                                type: string
-                            type: object
-                          type: array
-                        runtime:
-                          description: RuntimeSpec --
-                          properties:
-                            applicationClass:
-                              type: string
-                            capabilities:
-                              additionalProperties:
-                                description: Capability --
-                                properties:
-                                  dependencies:
-                                    items:
-                                      description: MavenArtifact --
-                                      properties:
-                                        artifactId:
-                                          type: string
-                                        groupId:
-                                          type: string
-                                        version:
-                                          type: string
-                                      required:
-                                      - artifactId
-                                      - groupId
-                                      type: object
-                                    type: array
-                                  metadata:
-                                    additionalProperties:
-                                      type: string
-                                    type: object
-                                required:
-                                - dependencies
-                                type: object
-                              type: object
-                            dependencies:
-                              items:
-                                description: MavenArtifact --
-                                properties:
-                                  artifactId:
-                                    type: string
-                                  groupId:
-                                    type: string
-                                  version:
-                                    type: string
-                                required:
-                                - artifactId
-                                - groupId
-                                type: object
-                              type: array
-                            metadata:
-                              additionalProperties:
-                                type: string
-                              type: object
-                            provider:
-                              description: RuntimeProvider --
-                              type: string
-                            version:
-                              type: string
-                          required:
-                          - applicationClass
-                          - dependencies
-                          - provider
-                          - version
-                          type: object
-                        sources:
-                          items:
-                            description: SourceSpec --
-                            properties:
-                              compression:
-                                type: boolean
-                              content:
-                                type: string
-                              contentKey:
-                                type: string
-                              contentRef:
-                                type: string
-                              contentType:
-                                type: string
-                              interceptors:
-                                description: Interceptors are optional identifiers
-                                  the org.apache.camel.k.RoutesLoader uses to pre/post
-                                  process sources
-                                items:
-                                  type: string
-                                type: array
-                              language:
-                                description: Language --
-                                type: string
-                              loader:
-                                description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
-                                  that will interpret this source at runtime
-                                type: string
-                              name:
-                                type: string
-                              property-names:
-                                description: List of property names defined in the
-                                  source (e.g. if type is "template")
-                                items:
-                                  type: string
-                                type: array
-                              rawContent:
-                                format: byte
-                                type: string
-                              type:
-                                description: Type defines the kind of source described
-                                  by this object
-                                type: string
-                            type: object
-                          type: array
-                        steps:
-                          items:
-                            type: string
-                          type: array
-                        timeout:
-                          type: string
-                        volumeMounts:
-                          items:
-                            description: VolumeMount describes a mounting of a Volume
-                              within a container.
-                            properties:
-                              mountPath:
-                                description: Path within the container at which the
-                                  volume should be mounted.  Must not contain ':'.
-                                type: string
-                              mountPropagation:
-                                description: mountPropagation determines how mounts
-                                  are propagated from the host to container and the
-                                  other way around. When not set, MountPropagationNone
-                                  is used. This field is beta in 1.10.
-                                type: string
-                              name:
-                                description: This must match the Name of a Volume.
-                                type: string
-                              readOnly:
-                                description: Mounted read-only if true, read-write
-                                  otherwise (false or unspecified). Defaults to false.
-                                type: boolean
-                              subPath:
-                                description: Path within the volume from which the
-                                  container's volume should be mounted. Defaults to
-                                  "" (volume's root).
-                                type: string
-                              subPathExpr:
-                                description: Expanded path within the volume from
-                                  which the container's volume should be mounted.
-                                  Behaves similarly to SubPath but environment variable
-                                  references $(VAR_NAME) are expanded using the container's
-                                  environment. Defaults to "" (volume's root). SubPathExpr
-                                  and SubPath are mutually exclusive.
-                                type: string
-                            required:
-                            - mountPath
-                            - name
-                            type: object
-                          type: array
-                        volumes:
-                          items:
-                            description: Volume represents a named volume in a pod
-                              that may be accessed by any container in the pod.
-                            properties:
-                              awsElasticBlockStore:
-                                description: 'AWSElasticBlockStore represents an AWS
-                                  Disk resource that is attached to a kubelet''s host
-                                  machine and then exposed to the pod. More info:
-                                  https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  partition:
-                                    description: 'The partition in the volume that
-                                      you want to mount. If omitted, the default is
-                                      to mount by volume name. Examples: For volume
-                                      /dev/sda1, you specify the partition as "1".
-                                      Similarly, the volume partition for /dev/sda
-                                      is "0" (or you can leave the property empty).'
-                                    format: int32
-                                    type: integer
-                                  readOnly:
-                                    description: 'Specify "true" to force and set
-                                      the ReadOnly property in VolumeMounts to "true".
-                                      If omitted, the default is "false". More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                    type: boolean
-                                  volumeID:
-                                    description: 'Unique ID of the persistent disk
-                                      resource in AWS (Amazon EBS volume). More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              azureDisk:
-                                description: AzureDisk represents an Azure Data Disk
-                                  mount on the host and bind mount to the pod.
-                                properties:
-                                  cachingMode:
-                                    description: 'Host Caching mode: None, Read Only,
-                                      Read Write.'
-                                    type: string
-                                  diskName:
-                                    description: The Name of the data disk in the
-                                      blob storage
-                                    type: string
-                                  diskURI:
-                                    description: The URI the data disk in the blob
-                                      storage
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  kind:
-                                    description: 'Expected values Shared: multiple
-                                      blob disks per storage account  Dedicated: single
-                                      blob disk per storage account  Managed: azure
-                                      managed data disk (only in managed availability
-                                      set). defaults to shared'
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                required:
-                                - diskName
-                                - diskURI
-                                type: object
-                              azureFile:
-                                description: AzureFile represents an Azure File Service
-                                  mount on the host and bind mount to the pod.
-                                properties:
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretName:
-                                    description: the name of secret that contains
-                                      Azure Storage Account Name and Key
-                                    type: string
-                                  shareName:
-                                    description: Share Name
-                                    type: string
-                                required:
-                                - secretName
-                                - shareName
-                                type: object
-                              cephfs:
-                                description: CephFS represents a Ceph FS mount on
-                                  the host that shares a pod's lifetime
-                                properties:
-                                  monitors:
-                                    description: 'Required: Monitors is a collection
-                                      of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    items:
-                                      type: string
-                                    type: array
-                                  path:
-                                    description: 'Optional: Used as the mounted root,
-                                      rather than the full Ceph tree, default is /'
-                                    type: string
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: boolean
-                                  secretFile:
-                                    description: 'Optional: SecretFile is the path
-                                      to key ring for User, default is /etc/ceph/user.secret
-                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: string
-                                  secretRef:
-                                    description: 'Optional: SecretRef is reference
-                                      to the authentication secret for User, default
-                                      is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  user:
-                                    description: 'Optional: User is the rados user
-                                      name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: string
-                                required:
-                                - monitors
-                                type: object
-                              cinder:
-                                description: 'Cinder represents a cinder volume attached
-                                  and mounted on kubelets host machine. More info:
-                                  https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: string
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'Optional: points to a secret object
-                                      containing parameters used to connect to OpenStack.'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  volumeID:
-                                    description: 'volume id used to identify the volume
-                                      in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              configMap:
-                                description: ConfigMap represents a configMap that
-                                  should populate this volume
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: If unspecified, each key-value pair
-                                      in the Data field of the referenced ConfigMap
-                                      will be projected into the volume as a file
-                                      whose name is the key and content is the value.
-                                      If specified, the listed keys will be projected
-                                      into the specified paths, and unlisted keys
-                                      will not be present. If a key is specified which
-                                      is not present in the ConfigMap, the volume
-                                      setup will error unless it is marked optional.
-                                      Paths must be relative and may not contain the
-                                      '..' path or start with '..'.
-                                    items:
-                                      description: Maps a string key to a path within
-                                        a volume.
-                                      properties:
-                                        key:
-                                          description: The key to project.
-                                          type: string
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: The relative path of the file
-                                            to map the key to. May not be an absolute
-                                            path. May not contain the path element
-                                            '..'. May not start with the string '..'.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      type: object
-                                    type: array
-                                  name:
-                                    description: 'Name of the referent. More info:
-                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                      TODO: Add other useful fields. apiVersion, kind,
-                                      uid?'
-                                    type: string
-                                  optional:
-                                    description: Specify whether the ConfigMap or
-                                      its keys must be defined
-                                    type: boolean
-                                type: object
-                              csi:
-                                description: CSI (Container Storage Interface) represents
-                                  storage that is handled by an external CSI driver
-                                  (Alpha feature).
-                                properties:
-                                  driver:
-                                    description: Driver is the name of the CSI driver
-                                      that handles this volume. Consult with your
-                                      admin for the correct name as registered in
-                                      the cluster.
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Ex. "ext4",
-                                      "xfs", "ntfs". If not provided, the empty value
-                                      is passed to the associated CSI driver which
-                                      will determine the default filesystem to apply.
-                                    type: string
-                                  nodePublishSecretRef:
-                                    description: NodePublishSecretRef is a reference
-                                      to the secret object containing sensitive information
-                                      to pass to the CSI driver to complete the CSI
-                                      NodePublishVolume and NodeUnpublishVolume calls.
-                                      This field is optional, and  may be empty if
-                                      no secret is required. If the secret object
-                                      contains more than one secret, all secret references
-                                      are passed.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  readOnly:
-                                    description: Specifies a read-only configuration
-                                      for the volume. Defaults to false (read/write).
-                                    type: boolean
-                                  volumeAttributes:
-                                    additionalProperties:
-                                      type: string
-                                    description: VolumeAttributes stores driver-specific
-                                      properties that are passed to the CSI driver.
-                                      Consult your driver's documentation for supported
-                                      values.
-                                    type: object
-                                required:
-                                - driver
-                                type: object
-                              downwardAPI:
-                                description: DownwardAPI represents downward API about
-                                  the pod that should populate this volume
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: Items is a list of downward API volume
-                                      file
-                                    items:
-                                      description: DownwardAPIVolumeFile represents
-                                        information to create the file containing
-                                        the pod field
-                                      properties:
-                                        fieldRef:
-                                          description: 'Required: Selects a field
-                                            of the pod: only annotations, labels,
-                                            name and namespace are supported.'
-                                          properties:
-                                            apiVersion:
-                                              description: Version of the schema the
-                                                FieldPath is written in terms of,
-                                                defaults to "v1".
-                                              type: string
-                                            fieldPath:
-                                              description: Path of the field to select
-                                                in the specified API version.
-                                              type: string
-                                          required:
-                                          - fieldPath
-                                          type: object
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: 'Required: Path is  the relative
-                                            path name of the file to be created. Must
-                                            not be absolute or contain the ''..''
-                                            path. Must be utf-8 encoded. The first
-                                            item of the relative path must not start
-                                            with ''..'''
-                                          type: string
-                                        resourceFieldRef:
-                                          description: 'Selects a resource of the
-                                            container: only resources limits and requests
-                                            (limits.cpu, limits.memory, requests.cpu
-                                            and requests.memory) are currently supported.'
-                                          properties:
-                                            containerName:
-                                              description: 'Container name: required
-                                                for volumes, optional for env vars'
-                                              type: string
-                                            divisor:
-                                              anyOf:
-                                              - type: integer
-                                              - type: string
-                                              description: Specifies the output format
-                                                of the exposed resources, defaults
-                                                to "1"
-                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                              x-kubernetes-int-or-string: true
-                                            resource:
-                                              description: 'Required: resource to
-                                                select'
-                                              type: string
-                                          required:
-                                          - resource
-                                          type: object
-                                      required:
-                                      - path
-                                      type: object
-                                    type: array
-                                type: object
-                              emptyDir:
-                                description: 'EmptyDir represents a temporary directory
-                                  that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
-                                properties:
-                                  medium:
-                                    description: 'What type of storage medium should
-                                      back this directory. The default is "" which
-                                      means to use the node''s default medium. Must
-                                      be an empty string (default) or Memory. More
-                                      info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
-                                    type: string
-                                  sizeLimit:
-                                    anyOf:
-                                    - type: integer
-                                    - type: string
-                                    description: 'Total amount of local storage required
-                                      for this EmptyDir volume. The size limit is
-                                      also applicable for memory medium. The maximum
-                                      usage on memory medium EmptyDir would be the
-                                      minimum value between the SizeLimit specified
-                                      here and the sum of memory limits of all containers
-                                      in a pod. The default is nil which means that
-                                      the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
-                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                    x-kubernetes-int-or-string: true
-                                type: object
-                              fc:
-                                description: FC represents a Fibre Channel resource
-                                  that is attached to a kubelet's host machine and
-                                  then exposed to the pod.
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. TODO:
-                                      how do we prevent errors in the filesystem from
-                                      compromising the machine'
-                                    type: string
-                                  lun:
-                                    description: 'Optional: FC target lun number'
-                                    format: int32
-                                    type: integer
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts.'
-                                    type: boolean
-                                  targetWWNs:
-                                    description: 'Optional: FC target worldwide names
-                                      (WWNs)'
-                                    items:
-                                      type: string
-                                    type: array
-                                  wwids:
-                                    description: 'Optional: FC volume world wide identifiers
-                                      (wwids) Either wwids or combination of targetWWNs
-                                      and lun must be set, but not both simultaneously.'
-                                    items:
-                                      type: string
-                                    type: array
-                                type: object
-                              flexVolume:
-                                description: FlexVolume represents a generic volume
-                                  resource that is provisioned/attached using an exec
-                                  based plugin.
-                                properties:
-                                  driver:
-                                    description: Driver is the name of the driver
-                                      to use for this volume.
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". The default
-                                      filesystem depends on FlexVolume script.
-                                    type: string
-                                  options:
-                                    additionalProperties:
-                                      type: string
-                                    description: 'Optional: Extra command options
-                                      if any.'
-                                    type: object
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts.'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'Optional: SecretRef is reference
-                                      to the secret object containing sensitive information
-                                      to pass to the plugin scripts. This may be empty
-                                      if no secret object is specified. If the secret
-                                      object contains more than one secret, all secrets
-                                      are passed to the plugin scripts.'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                required:
-                                - driver
-                                type: object
-                              flocker:
-                                description: Flocker represents a Flocker volume attached
-                                  to a kubelet's host machine. This depends on the
-                                  Flocker control service being running
-                                properties:
-                                  datasetName:
-                                    description: Name of the dataset stored as metadata
-                                      -> name on the dataset for Flocker should be
-                                      considered as deprecated
-                                    type: string
-                                  datasetUUID:
-                                    description: UUID of the dataset. This is unique
-                                      identifier of a Flocker dataset
-                                    type: string
-                                type: object
-                              gcePersistentDisk:
-                                description: 'GCEPersistentDisk represents a GCE Disk
-                                  resource that is attached to a kubelet''s host machine
-                                  and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  partition:
-                                    description: 'The partition in the volume that
-                                      you want to mount. If omitted, the default is
-                                      to mount by volume name. Examples: For volume
-                                      /dev/sda1, you specify the partition as "1".
-                                      Similarly, the volume partition for /dev/sda
-                                      is "0" (or you can leave the property empty).
-                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    format: int32
-                                    type: integer
-                                  pdName:
-                                    description: 'Unique name of the PD resource in
-                                      GCE. Used to identify the disk in GCE. More
-                                      info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    type: boolean
-                                required:
-                                - pdName
-                                type: object
-                              gitRepo:
-                                description: 'GitRepo represents a git repository
-                                  at a particular revision. DEPRECATED: GitRepo is
-                                  deprecated. To provision a container with a git
-                                  repo, mount an EmptyDir into an InitContainer that
-                                  clones the repo using git, then mount the EmptyDir
-                                  into the Pod''s container.'
-                                properties:
-                                  directory:
-                                    description: Target directory name. Must not contain
-                                      or start with '..'.  If '.' is supplied, the
-                                      volume directory will be the git repository.  Otherwise,
-                                      if specified, the volume will contain the git
-                                      repository in the subdirectory with the given
-                                      name.
-                                    type: string
-                                  repository:
-                                    description: Repository URL
-                                    type: string
-                                  revision:
-                                    description: Commit hash for the specified revision.
-                                    type: string
-                                required:
-                                - repository
-                                type: object
-                              glusterfs:
-                                description: 'Glusterfs represents a Glusterfs mount
-                                  on the host that shares a pod''s lifetime. More
-                                  info: https://examples.k8s.io/volumes/glusterfs/README.md'
-                                properties:
-                                  endpoints:
-                                    description: 'EndpointsName is the endpoint name
-                                      that details Glusterfs topology. More info:
-                                      https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: string
-                                  path:
-                                    description: 'Path is the Glusterfs volume path.
-                                      More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the Glusterfs
-                                      volume to be mounted with read-only permissions.
-                                      Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: boolean
-                                required:
-                                - endpoints
-                                - path
-                                type: object
-                              hostPath:
-                                description: 'HostPath represents a pre-existing file
-                                  or directory on the host machine that is directly
-                                  exposed to the container. This is generally used
-                                  for system agents or other privileged things that
-                                  are allowed to see the host machine. Most containers
-                                  will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
-                                  --- TODO(jonesdl) We need to restrict who can use
-                                  host directory mounts and who can/can not mount
-                                  host directories as read/write.'
-                                properties:
-                                  path:
-                                    description: 'Path of the directory on the host.
-                                      If the path is a symlink, it will follow the
-                                      link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
-                                    type: string
-                                  type:
-                                    description: 'Type for HostPath Volume Defaults
-                                      to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
-                                    type: string
-                                required:
-                                - path
-                                type: object
-                              iscsi:
-                                description: 'ISCSI represents an ISCSI Disk resource
-                                  that is attached to a kubelet''s host machine and
-                                  then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
-                                properties:
-                                  chapAuthDiscovery:
-                                    description: whether support iSCSI Discovery CHAP
-                                      authentication
-                                    type: boolean
-                                  chapAuthSession:
-                                    description: whether support iSCSI Session CHAP
-                                      authentication
-                                    type: boolean
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#iscsi
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  initiatorName:
-                                    description: Custom iSCSI Initiator Name. If initiatorName
-                                      is specified with iscsiInterface simultaneously,
-                                      new iSCSI interface <target portal>:<volume
-                                      name> will be created for the connection.
-                                    type: string
-                                  iqn:
-                                    description: Target iSCSI Qualified Name.
-                                    type: string
-                                  iscsiInterface:
-                                    description: iSCSI Interface Name that uses an
-                                      iSCSI transport. Defaults to 'default' (tcp).
-                                    type: string
-                                  lun:
-                                    description: iSCSI Target Lun number.
-                                    format: int32
-                                    type: integer
-                                  portals:
-                                    description: iSCSI Target Portal List. The portal
-                                      is either an IP or ip_addr:port if the port
-                                      is other than default (typically TCP ports 860
-                                      and 3260).
-                                    items:
-                                      type: string
-                                    type: array
-                                  readOnly:
-                                    description: ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                    type: boolean
-                                  secretRef:
-                                    description: CHAP Secret for iSCSI target and
-                                      initiator authentication
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  targetPortal:
-                                    description: iSCSI Target Portal. The Portal is
-                                      either an IP or ip_addr:port if the port is
-                                      other than default (typically TCP ports 860
-                                      and 3260).
-                                    type: string
-                                required:
-                                - iqn
-                                - lun
-                                - targetPortal
-                                type: object
-                              name:
-                                description: 'Volume''s name. Must be a DNS_LABEL
-                                  and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
-                                type: string
-                              nfs:
-                                description: 'NFS represents an NFS mount on the host
-                                  that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                properties:
-                                  path:
-                                    description: 'Path that is exported by the NFS
-                                      server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the NFS
-                                      export to be mounted with read-only permissions.
-                                      Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: boolean
-                                  server:
-                                    description: 'Server is the hostname or IP address
-                                      of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: string
-                                required:
-                                - path
-                                - server
-                                type: object
-                              persistentVolumeClaim:
-                                description: 'PersistentVolumeClaimVolumeSource represents
-                                  a reference to a PersistentVolumeClaim in the same
-                                  namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
-                                properties:
-                                  claimName:
-                                    description: 'ClaimName is the name of a PersistentVolumeClaim
-                                      in the same namespace as the pod using this
-                                      volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
-                                    type: string
-                                  readOnly:
-                                    description: Will force the ReadOnly setting in
-                                      VolumeMounts. Default false.
-                                    type: boolean
-                                required:
-                                - claimName
-                                type: object
-                              photonPersistentDisk:
-                                description: PhotonPersistentDisk represents a PhotonController
-                                  persistent disk attached and mounted on kubelets
-                                  host machine
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  pdID:
-                                    description: ID that identifies Photon Controller
-                                      persistent disk
-                                    type: string
-                                required:
-                                - pdID
-                                type: object
-                              portworxVolume:
-                                description: PortworxVolume represents a portworx
-                                  volume attached and mounted on kubelets host machine
-                                properties:
-                                  fsType:
-                                    description: FSType represents the filesystem
-                                      type to mount Must be a filesystem type supported
-                                      by the host operating system. Ex. "ext4", "xfs".
-                                      Implicitly inferred to be "ext4" if unspecified.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  volumeID:
-                                    description: VolumeID uniquely identifies a Portworx
-                                      volume
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              projected:
-                                description: Items for all in one resources secrets,
-                                  configmaps, and downward API
-                                properties:
-                                  defaultMode:
-                                    description: Mode bits to use on created files
-                                      by default. Must be a value between 0 and 0777.
-                                      Directories within the path are not affected
-                                      by this setting. This might be in conflict with
-                                      other options that affect the file mode, like
-                                      fsGroup, and the result can be other mode bits
-                                      set.
-                                    format: int32
-                                    type: integer
-                                  sources:
-                                    description: list of volume projections
-                                    items:
-                                      description: Projection that may be projected
-                                        along with other supported volume types
-                                      properties:
-                                        configMap:
-                                          description: information about the configMap
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: If unspecified, each key-value
-                                                pair in the Data field of the referenced
-                                                ConfigMap will be projected into the
-                                                volume as a file whose name is the
-                                                key and content is the value. If specified,
-                                                the listed keys will be projected
-                                                into the specified paths, and unlisted
-                                                keys will not be present. If a key
-                                                is specified which is not present
-                                                in the ConfigMap, the volume setup
-                                                will error unless it is marked optional.
-                                                Paths must be relative and may not
-                                                contain the '..' path or start with
-                                                '..'.
-                                              items:
-                                                description: Maps a string key to
-                                                  a path within a volume.
-                                                properties:
-                                                  key:
-                                                    description: The key to project.
-                                                    type: string
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: The relative path
-                                                      of the file to map the key to.
-                                                      May not be an absolute path.
-                                                      May not contain the path element
-                                                      '..'. May not start with the
-                                                      string '..'.
-                                                    type: string
-                                                required:
-                                                - key
-                                                - path
-                                                type: object
-                                              type: array
-                                            name:
-                                              description: 'Name of the referent.
-                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                                TODO: Add other useful fields. apiVersion,
-                                                kind, uid?'
-                                              type: string
-                                            optional:
-                                              description: Specify whether the ConfigMap
-                                                or its keys must be defined
-                                              type: boolean
-                                          type: object
-                                        downwardAPI:
-                                          description: information about the downwardAPI
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: Items is a list of DownwardAPIVolume
-                                                file
-                                              items:
-                                                description: DownwardAPIVolumeFile
-                                                  represents information to create
-                                                  the file containing the pod field
-                                                properties:
-                                                  fieldRef:
-                                                    description: 'Required: Selects
-                                                      a field of the pod: only annotations,
-                                                      labels, name and namespace are
-                                                      supported.'
-                                                    properties:
-                                                      apiVersion:
-                                                        description: Version of the
-                                                          schema the FieldPath is
-                                                          written in terms of, defaults
-                                                          to "v1".
-                                                        type: string
-                                                      fieldPath:
-                                                        description: Path of the field
-                                                          to select in the specified
-                                                          API version.
-                                                        type: string
-                                                    required:
-                                                    - fieldPath
-                                                    type: object
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: 'Required: Path is  the
-                                                      relative path name of the file
-                                                      to be created. Must not be absolute
-                                                      or contain the ''..'' path.
-                                                      Must be utf-8 encoded. The first
-                                                      item of the relative path must
-                                                      not start with ''..'''
-                                                    type: string
-                                                  resourceFieldRef:
-                                                    description: 'Selects a resource
-                                                      of the container: only resources
-                                                      limits and requests (limits.cpu,
-                                                      limits.memory, requests.cpu
-                                                      and requests.memory) are currently
-                                                      supported.'
-                                                    properties:
-                                                      containerName:
-                                                        description: 'Container name:
-                                                          required for volumes, optional
-                                                          for env vars'
-                                                        type: string
-                                                      divisor:
-                                                        anyOf:
-                                                        - type: integer
-                                                        - type: string
-                                                        description: Specifies the
-                                                          output format of the exposed
-                                                          resources, defaults to "1"
-                                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                                        x-kubernetes-int-or-string: true
-                                                      resource:
-                                                        description: 'Required: resource
-                                                          to select'
-                                                        type: string
-                                                    required:
-                                                    - resource
-                                                    type: object
-                                                required:
-                                                - path
-                                                type: object
-                                              type: array
-                                          type: object
-                                        secret:
-                                          description: information about the secret
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: If unspecified, each key-value
-                                                pair in the Data field of the referenced
-                                                Secret will be projected into the
-                                                volume as a file whose name is the
-                                                key and content is the value. If specified,
-                                                the listed keys will be projected
-                                                into the specified paths, and unlisted
-                                                keys will not be present. If a key
-                                                is specified which is not present
-                                                in the Secret, the volume setup will
-                                                error unless it is marked optional.
-                                                Paths must be relative and may not
-                                                contain the '..' path or start with
-                                                '..'.
-                                              items:
-                                                description: Maps a string key to
-                                                  a path within a volume.
-                                                properties:
-                                                  key:
-                                                    description: The key to project.
-                                                    type: string
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: The relative path
-                                                      of the file to map the key to.
-                                                      May not be an absolute path.
-                                                      May not contain the path element
-                                                      '..'. May not start with the
-                                                      string '..'.
-                                                    type: string
-                                                required:
-                                                - key
-                                                - path
-                                                type: object
-                                              type: array
-                                            name:
-                                              description: 'Name of the referent.
-                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                                TODO: Add other useful fields. apiVersion,
-                                                kind, uid?'
-                                              type: string
-                                            optional:
-                                              description: Specify whether the Secret
-                                                or its key must be defined
-                                              type: boolean
-                                          type: object
-                                        serviceAccountToken:
-                                          description: information about the serviceAccountToken
-                                            data to project
-                                          properties:
-                                            audience:
-                                              description: Audience is the intended
-                                                audience of the token. A recipient
-                                                of a token must identify itself with
-                                                an identifier specified in the audience
-                                                of the token, and otherwise should
-                                                reject the token. The audience defaults
-                                                to the identifier of the apiserver.
-                                              type: string
-                                            expirationSeconds:
-                                              description: ExpirationSeconds is the
-                                                requested duration of validity of
-                                                the service account token. As the
-                                                token approaches expiration, the kubelet
-                                                volume plugin will proactively rotate
-                                                the service account token. The kubelet
-                                                will start trying to rotate the token
-                                                if the token is older than 80 percent
-                                                of its time to live or if the token
-                                                is older than 24 hours.Defaults to
-                                                1 hour and must be at least 10 minutes.
-                                              format: int64
-                                              type: integer
-                                            path:
-                                              description: Path is the path relative
-                                                to the mount point of the file to
-                                                project the token into.
-                                              type: string
-                                          required:
-                                          - path
-                                          type: object
-                                      type: object
-                                    type: array
-                                required:
-                                - sources
-                                type: object
-                              quobyte:
-                                description: Quobyte represents a Quobyte mount on
-                                  the host that shares a pod's lifetime
-                                properties:
-                                  group:
-                                    description: Group to map volume access to Default
-                                      is no group
-                                    type: string
-                                  readOnly:
-                                    description: ReadOnly here will force the Quobyte
-                                      volume to be mounted with read-only permissions.
-                                      Defaults to false.
-                                    type: boolean
-                                  registry:
-                                    description: Registry represents a single or multiple
-                                      Quobyte Registry services specified as a string
-                                      as host:port pair (multiple entries are separated
-                                      with commas) which acts as the central registry
-                                      for volumes
-                                    type: string
-                                  tenant:
-                                    description: Tenant owning the given Quobyte volume
-                                      in the Backend Used with dynamically provisioned
-                                      Quobyte volumes, value is set by the plugin
-                                    type: string
-                                  user:
-                                    description: User to map volume access to Defaults
-                                      to serivceaccount user
-                                    type: string
-                                  volume:
-                                    description: Volume is a string that references
-                                      an already created Quobyte volume by name.
-                                    type: string
-                                required:
-                                - registry
-                                - volume
-                                type: object
-                              rbd:
-                                description: 'RBD represents a Rados Block Device
-                                  mount on the host that shares a pod''s lifetime.
-                                  More info: https://examples.k8s.io/volumes/rbd/README.md'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#rbd
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  image:
-                                    description: 'The rados image name. More info:
-                                      https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  keyring:
-                                    description: 'Keyring is the path to key ring
-                                      for RBDUser. Default is /etc/ceph/keyring. More
-                                      info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  monitors:
-                                    description: 'A collection of Ceph monitors. More
-                                      info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    items:
-                                      type: string
-                                    type: array
-                                  pool:
-                                    description: 'The rados pool name. Default is
-                                      rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'SecretRef is name of the authentication
-                                      secret for RBDUser. If provided overrides keyring.
-                                      Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  user:
-                                    description: 'The rados user name. Default is
-                                      admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                required:
-                                - image
-                                - monitors
-                                type: object
-                              scaleIO:
-                                description: ScaleIO represents a ScaleIO persistent
-                                  volume attached and mounted on Kubernetes nodes.
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Default is
-                                      "xfs".
-                                    type: string
-                                  gateway:
-                                    description: The host address of the ScaleIO API
-                                      Gateway.
-                                    type: string
-                                  protectionDomain:
-                                    description: The name of the ScaleIO Protection
-                                      Domain for the configured storage.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretRef:
-                                    description: SecretRef references to the secret
-                                      for ScaleIO user and other sensitive information.
-                                      If this is not provided, Login operation will
-                                      fail.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  sslEnabled:
-                                    description: Flag to enable/disable SSL communication
-                                      with Gateway, default false
-                                    type: boolean
-                                  storageMode:
-                                    description: Indicates whether the storage for
-                                      a volume should be ThickProvisioned or ThinProvisioned.
-                                      Default is ThinProvisioned.
-                                    type: string
-                                  storagePool:
-                                    description: The ScaleIO Storage Pool associated
-                                      with the protection domain.
-                                    type: string
-                                  system:
-                                    description: The name of the storage system as
-                                      configured in ScaleIO.
-                                    type: string
-                                  volumeName:
-                                    description: The name of a volume already created
-                                      in the ScaleIO system that is associated with
-                                      this volume source.
-                                    type: string
-                                required:
-                                - gateway
-                                - secretRef
-                                - system
-                                type: object
-                              secret:
-                                description: 'Secret represents a secret that should
-                                  populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: If unspecified, each key-value pair
-                                      in the Data field of the referenced Secret will
-                                      be projected into the volume as a file whose
-                                      name is the key and content is the value. If
-                                      specified, the listed keys will be projected
-                                      into the specified paths, and unlisted keys
-                                      will not be present. If a key is specified which
-                                      is not present in the Secret, the volume setup
-                                      will error unless it is marked optional. Paths
-                                      must be relative and may not contain the '..'
-                                      path or start with '..'.
-                                    items:
-                                      description: Maps a string key to a path within
-                                        a volume.
-                                      properties:
-                                        key:
-                                          description: The key to project.
-                                          type: string
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: The relative path of the file
-                                            to map the key to. May not be an absolute
-                                            path. May not contain the path element
-                                            '..'. May not start with the string '..'.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      type: object
-                                    type: array
-                                  optional:
-                                    description: Specify whether the Secret or its
-                                      keys must be defined
-                                    type: boolean
-                                  secretName:
-                                    description: 'Name of the secret in the pod''s
-                                      namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
-                                    type: string
-                                type: object
-                              storageos:
-                                description: StorageOS represents a StorageOS volume
-                                  attached and mounted on Kubernetes nodes.
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretRef:
-                                    description: SecretRef specifies the secret to
-                                      use for obtaining the StorageOS API credentials.  If
-                                      not specified, default values will be attempted.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  volumeName:
-                                    description: VolumeName is the human-readable
-                                      name of the StorageOS volume.  Volume names
-                                      are only unique within a namespace.
-                                    type: string
-                                  volumeNamespace:
-                                    description: VolumeNamespace specifies the scope
-                                      of the volume within StorageOS.  If no namespace
-                                      is specified then the Pod's namespace will be
-                                      used.  This allows the Kubernetes name scoping
-                                      to be mirrored within StorageOS for tighter
-                                      integration. Set VolumeName to any name to override
-                                      the default behaviour. Set to "default" if you
-                                      are not using namespaces within StorageOS. Namespaces
-                                      that do not pre-exist within StorageOS will
-                                      be created.
-                                    type: string
-                                type: object
-                              vsphereVolume:
-                                description: VsphereVolume represents a vSphere volume
-                                  attached and mounted on kubelets host machine
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  storagePolicyID:
-                                    description: Storage Policy Based Management (SPBM)
-                                      profile ID associated with the StoragePolicyName.
-                                    type: string
-                                  storagePolicyName:
-                                    description: Storage Policy Based Management (SPBM)
-                                      profile name.
-                                    type: string
-                                  volumePath:
-                                    description: Path that identifies vSphere volume
-                                      vmdk
-                                    type: string
-                                required:
-                                - volumePath
-                                type: object
-                            required:
-                            - name
-                            type: object
-                          type: array
-                      type: object
-                    image:
-                      description: ImageTask --
-                      properties:
-                        affinity:
-                          description: Affinity is a group of affinity scheduling
-                            rules.
-                          properties:
-                            nodeAffinity:
-                              description: Describes node affinity scheduling rules
-                                for the pod.
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node matches the corresponding
-                                    matchExpressions; the node(s) with the highest
-                                    sum are the most preferred.
-                                  items:
-                                    description: An empty preferred scheduling term
-                                      matches all objects with implicit weight 0 (i.e.
-                                      it's a no-op). A null preferred scheduling term
-                                      matches no objects (i.e. is also a no-op).
-                                    properties:
-                                      preference:
-                                        description: A node selector term, associated
-                                          with the corresponding weight.
-                                        properties:
-                                          matchExpressions:
-                                            description: A list of node selector requirements
-                                              by node's labels.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchFields:
-                                            description: A list of node selector requirements
-                                              by node's fields.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                        type: object
-                                      weight:
-                                        description: Weight associated with matching
-                                          the corresponding nodeSelectorTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - preference
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the affinity requirements specified by this field
-                                    cease to be met at some point during pod execution
-                                    (e.g. due to an update), the system may or may
-                                    not try to eventually evict the pod from its node.
-                                  properties:
-                                    nodeSelectorTerms:
-                                      description: Required. A list of node selector
-                                        terms. The terms are ORed.
-                                      items:
-                                        description: A null or empty node selector
-                                          term matches no objects. The requirements
-                                          of them are ANDed. The TopologySelectorTerm
-                                          type implements a subset of the NodeSelectorTerm.
-                                        properties:
-                                          matchExpressions:
-                                            description: A list of node selector requirements
-                                              by node's labels.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchFields:
-                                            description: A list of node selector requirements
-                                              by node's fields.
-                                            items:
-                                              description: A node selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: The label key that
-                                                    the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: Represents a key's
-                                                    relationship to a set of values.
-                                                    Valid operators are In, NotIn,
-                                                    Exists, DoesNotExist. Gt, and
-                                                    Lt.
-                                                  type: string
-                                                values:
-                                                  description: An array of string
-                                                    values. If the operator is In
-                                                    or NotIn, the values array must
-                                                    be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. If
-                                                    the operator is Gt or Lt, the
-                                                    values array must have a single
-                                                    element, which will be interpreted
-                                                    as an integer. This array is replaced
-                                                    during a strategic merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                        type: object
-                                      type: array
-                                  required:
-                                  - nodeSelectorTerms
-                                  type: object
-                              type: object
-                            podAffinity:
-                              description: Describes pod affinity scheduling rules
-                                (e.g. co-locate this pod in the same node, zone, etc.
-                                as some other pod(s)).
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node has pods which
-                                    matches the corresponding podAffinityTerm; the
-                                    node(s) with the highest sum are the most preferred.
-                                  items:
-                                    description: The weights of all of the matched
-                                      WeightedPodAffinityTerm fields are added per-node
-                                      to find the most preferred node(s)
-                                    properties:
-                                      podAffinityTerm:
-                                        description: Required. A pod affinity term,
-                                          associated with the corresponding weight.
-                                        properties:
-                                          labelSelector:
-                                            description: A label query over a set
-                                              of resources, in this case pods.
-                                            properties:
-                                              matchExpressions:
-                                                description: matchExpressions is a
-                                                  list of label selector requirements.
-                                                  The requirements are ANDed.
-                                                items:
-                                                  description: A label selector requirement
-                                                    is a selector that contains values,
-                                                    a key, and an operator that relates
-                                                    the key and values.
-                                                  properties:
-                                                    key:
-                                                      description: key is the label
-                                                        key that the selector applies
-                                                        to.
-                                                      type: string
-                                                    operator:
-                                                      description: operator represents
-                                                        a key's relationship to a
-                                                        set of values. Valid operators
-                                                        are In, NotIn, Exists and
-                                                        DoesNotExist.
-                                                      type: string
-                                                    values:
-                                                      description: values is an array
-                                                        of string values. If the operator
-                                                        is In or NotIn, the values
-                                                        array must be non-empty. If
-                                                        the operator is Exists or
-                                                        DoesNotExist, the values array
-                                                        must be empty. This array
-                                                        is replaced during a strategic
-                                                        merge patch.
-                                                      items:
-                                                        type: string
-                                                      type: array
-                                                  required:
-                                                  - key
-                                                  - operator
-                                                  type: object
-                                                type: array
-                                              matchLabels:
-                                                additionalProperties:
-                                                  type: string
-                                                description: matchLabels is a map
-                                                  of {key,value} pairs. A single {key,value}
-                                                  in the matchLabels map is equivalent
-                                                  to an element of matchExpressions,
-                                                  whose key field is "key", the operator
-                                                  is "In", and the values array contains
-                                                  only "value". The requirements are
-                                                  ANDed.
-                                                type: object
-                                            type: object
-                                          namespaces:
-                                            description: namespaces specifies which
-                                              namespaces the labelSelector applies
-                                              to (matches against); null or empty
-                                              list means "this pod's namespace"
-                                            items:
-                                              type: string
-                                            type: array
-                                          topologyKey:
-                                            description: This pod should be co-located
-                                              (affinity) or not co-located (anti-affinity)
-                                              with the pods matching the labelSelector
-                                              in the specified namespaces, where co-located
-                                              is defined as running on a node whose
-                                              value of the label with key topologyKey
-                                              matches that of any node on which any
-                                              of the selected pods is running. Empty
-                                              topologyKey is not allowed.
-                                            type: string
-                                        required:
-                                        - topologyKey
-                                        type: object
-                                      weight:
-                                        description: weight associated with matching
-                                          the corresponding podAffinityTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - podAffinityTerm
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the affinity requirements specified by this field
-                                    cease to be met at some point during pod execution
-                                    (e.g. due to a pod label update), the system may
-                                    or may not try to eventually evict the pod from
-                                    its node. When there are multiple elements, the
-                                    lists of nodes corresponding to each podAffinityTerm
-                                    are intersected, i.e. all terms must be satisfied.
-                                  items:
-                                    description: Defines a set of pods (namely those
-                                      matching the labelSelector relative to the given
-                                      namespace(s)) that this pod should be co-located
-                                      (affinity) or not co-located (anti-affinity)
-                                      with, where co-located is defined as running
-                                      on a node whose value of the label with key
-                                      <topologyKey> matches that of any node on which
-                                      a pod of the set of pods is running
-                                    properties:
-                                      labelSelector:
-                                        description: A label query over a set of resources,
-                                          in this case pods.
-                                        properties:
-                                          matchExpressions:
-                                            description: matchExpressions is a list
-                                              of label selector requirements. The
-                                              requirements are ANDed.
-                                            items:
-                                              description: A label selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: key is the label key
-                                                    that the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: operator represents
-                                                    a key's relationship to a set
-                                                    of values. Valid operators are
-                                                    In, NotIn, Exists and DoesNotExist.
-                                                  type: string
-                                                values:
-                                                  description: values is an array
-                                                    of string values. If the operator
-                                                    is In or NotIn, the values array
-                                                    must be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. This
-                                                    array is replaced during a strategic
-                                                    merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchLabels:
-                                            additionalProperties:
-                                              type: string
-                                            description: matchLabels is a map of {key,value}
-                                              pairs. A single {key,value} in the matchLabels
-                                              map is equivalent to an element of matchExpressions,
-                                              whose key field is "key", the operator
-                                              is "In", and the values array contains
-                                              only "value". The requirements are ANDed.
-                                            type: object
-                                        type: object
-                                      namespaces:
-                                        description: namespaces specifies which namespaces
-                                          the labelSelector applies to (matches against);
-                                          null or empty list means "this pod's namespace"
-                                        items:
-                                          type: string
-                                        type: array
-                                      topologyKey:
-                                        description: This pod should be co-located
-                                          (affinity) or not co-located (anti-affinity)
-                                          with the pods matching the labelSelector
-                                          in the specified namespaces, where co-located
-                                          is defined as running on a node whose value
-                                          of the label with key topologyKey matches
-                                          that of any node on which any of the selected
-                                          pods is running. Empty topologyKey is not
-                                          allowed.
-                                        type: string
-                                    required:
-                                    - topologyKey
-                                    type: object
-                                  type: array
-                              type: object
-                            podAntiAffinity:
-                              description: Describes pod anti-affinity scheduling
-                                rules (e.g. avoid putting this pod in the same node,
-                                zone, etc. as some other pod(s)).
-                              properties:
-                                preferredDuringSchedulingIgnoredDuringExecution:
-                                  description: The scheduler will prefer to schedule
-                                    pods to nodes that satisfy the anti-affinity expressions
-                                    specified by this field, but it may choose a node
-                                    that violates one or more of the expressions.
-                                    The node that is most preferred is the one with
-                                    the greatest sum of weights, i.e. for each node
-                                    that meets all of the scheduling requirements
-                                    (resource request, requiredDuringScheduling anti-affinity
-                                    expressions, etc.), compute a sum by iterating
-                                    through the elements of this field and adding
-                                    "weight" to the sum if the node has pods which
-                                    matches the corresponding podAffinityTerm; the
-                                    node(s) with the highest sum are the most preferred.
-                                  items:
-                                    description: The weights of all of the matched
-                                      WeightedPodAffinityTerm fields are added per-node
-                                      to find the most preferred node(s)
-                                    properties:
-                                      podAffinityTerm:
-                                        description: Required. A pod affinity term,
-                                          associated with the corresponding weight.
-                                        properties:
-                                          labelSelector:
-                                            description: A label query over a set
-                                              of resources, in this case pods.
-                                            properties:
-                                              matchExpressions:
-                                                description: matchExpressions is a
-                                                  list of label selector requirements.
-                                                  The requirements are ANDed.
-                                                items:
-                                                  description: A label selector requirement
-                                                    is a selector that contains values,
-                                                    a key, and an operator that relates
-                                                    the key and values.
-                                                  properties:
-                                                    key:
-                                                      description: key is the label
-                                                        key that the selector applies
-                                                        to.
-                                                      type: string
-                                                    operator:
-                                                      description: operator represents
-                                                        a key's relationship to a
-                                                        set of values. Valid operators
-                                                        are In, NotIn, Exists and
-                                                        DoesNotExist.
-                                                      type: string
-                                                    values:
-                                                      description: values is an array
-                                                        of string values. If the operator
-                                                        is In or NotIn, the values
-                                                        array must be non-empty. If
-                                                        the operator is Exists or
-                                                        DoesNotExist, the values array
-                                                        must be empty. This array
-                                                        is replaced during a strategic
-                                                        merge patch.
-                                                      items:
-                                                        type: string
-                                                      type: array
-                                                  required:
-                                                  - key
-                                                  - operator
-                                                  type: object
-                                                type: array
-                                              matchLabels:
-                                                additionalProperties:
-                                                  type: string
-                                                description: matchLabels is a map
-                                                  of {key,value} pairs. A single {key,value}
-                                                  in the matchLabels map is equivalent
-                                                  to an element of matchExpressions,
-                                                  whose key field is "key", the operator
-                                                  is "In", and the values array contains
-                                                  only "value". The requirements are
-                                                  ANDed.
-                                                type: object
-                                            type: object
-                                          namespaces:
-                                            description: namespaces specifies which
-                                              namespaces the labelSelector applies
-                                              to (matches against); null or empty
-                                              list means "this pod's namespace"
-                                            items:
-                                              type: string
-                                            type: array
-                                          topologyKey:
-                                            description: This pod should be co-located
-                                              (affinity) or not co-located (anti-affinity)
-                                              with the pods matching the labelSelector
-                                              in the specified namespaces, where co-located
-                                              is defined as running on a node whose
-                                              value of the label with key topologyKey
-                                              matches that of any node on which any
-                                              of the selected pods is running. Empty
-                                              topologyKey is not allowed.
-                                            type: string
-                                        required:
-                                        - topologyKey
-                                        type: object
-                                      weight:
-                                        description: weight associated with matching
-                                          the corresponding podAffinityTerm, in the
-                                          range 1-100.
-                                        format: int32
-                                        type: integer
-                                    required:
-                                    - podAffinityTerm
-                                    - weight
-                                    type: object
-                                  type: array
-                                requiredDuringSchedulingIgnoredDuringExecution:
-                                  description: If the anti-affinity requirements specified
-                                    by this field are not met at scheduling time,
-                                    the pod will not be scheduled onto the node. If
-                                    the anti-affinity requirements specified by this
-                                    field cease to be met at some point during pod
-                                    execution (e.g. due to a pod label update), the
-                                    system may or may not try to eventually evict
-                                    the pod from its node. When there are multiple
-                                    elements, the lists of nodes corresponding to
-                                    each podAffinityTerm are intersected, i.e. all
-                                    terms must be satisfied.
-                                  items:
-                                    description: Defines a set of pods (namely those
-                                      matching the labelSelector relative to the given
-                                      namespace(s)) that this pod should be co-located
-                                      (affinity) or not co-located (anti-affinity)
-                                      with, where co-located is defined as running
-                                      on a node whose value of the label with key
-                                      <topologyKey> matches that of any node on which
-                                      a pod of the set of pods is running
-                                    properties:
-                                      labelSelector:
-                                        description: A label query over a set of resources,
-                                          in this case pods.
-                                        properties:
-                                          matchExpressions:
-                                            description: matchExpressions is a list
-                                              of label selector requirements. The
-                                              requirements are ANDed.
-                                            items:
-                                              description: A label selector requirement
-                                                is a selector that contains values,
-                                                a key, and an operator that relates
-                                                the key and values.
-                                              properties:
-                                                key:
-                                                  description: key is the label key
-                                                    that the selector applies to.
-                                                  type: string
-                                                operator:
-                                                  description: operator represents
-                                                    a key's relationship to a set
-                                                    of values. Valid operators are
-                                                    In, NotIn, Exists and DoesNotExist.
-                                                  type: string
-                                                values:
-                                                  description: values is an array
-                                                    of string values. If the operator
-                                                    is In or NotIn, the values array
-                                                    must be non-empty. If the operator
-                                                    is Exists or DoesNotExist, the
-                                                    values array must be empty. This
-                                                    array is replaced during a strategic
-                                                    merge patch.
-                                                  items:
-                                                    type: string
-                                                  type: array
-                                              required:
-                                              - key
-                                              - operator
-                                              type: object
-                                            type: array
-                                          matchLabels:
-                                            additionalProperties:
-                                              type: string
-                                            description: matchLabels is a map of {key,value}
-                                              pairs. A single {key,value} in the matchLabels
-                                              map is equivalent to an element of matchExpressions,
-                                              whose key field is "key", the operator
-                                              is "In", and the values array contains
-                                              only "value". The requirements are ANDed.
-                                            type: object
-                                        type: object
-                                      namespaces:
-                                        description: namespaces specifies which namespaces
-                                          the labelSelector applies to (matches against);
-                                          null or empty list means "this pod's namespace"
-                                        items:
-                                          type: string
-                                        type: array
-                                      topologyKey:
-                                        description: This pod should be co-located
-                                          (affinity) or not co-located (anti-affinity)
-                                          with the pods matching the labelSelector
-                                          in the specified namespaces, where co-located
-                                          is defined as running on a node whose value
-                                          of the label with key topologyKey matches
-                                          that of any node on which any of the selected
-                                          pods is running. Empty topologyKey is not
-                                          allowed.
-                                        type: string
-                                    required:
-                                    - topologyKey
-                                    type: object
-                                  type: array
-                              type: object
-                          type: object
-                        args:
-                          items:
-                            type: string
-                          type: array
-                        builtImage:
-                          type: string
-                        command:
-                          items:
-                            type: string
-                          type: array
-                        env:
-                          items:
-                            description: EnvVar represents an environment variable
-                              present in a Container.
-                            properties:
-                              name:
-                                description: Name of the environment variable. Must
-                                  be a C_IDENTIFIER.
-                                type: string
-                              value:
-                                description: 'Variable references $(VAR_NAME) are
-                                  expanded using the previous defined environment
-                                  variables in the container and any service environment
-                                  variables. If a variable cannot be resolved, the
-                                  reference in the input string will be unchanged.
-                                  The $(VAR_NAME) syntax can be escaped with a double
-                                  $$, ie: $$(VAR_NAME). Escaped references will never
-                                  be expanded, regardless of whether the variable
-                                  exists or not. Defaults to "".'
-                                type: string
-                              valueFrom:
-                                description: Source for the environment variable's
-                                  value. Cannot be used if value is not empty.
-                                properties:
-                                  configMapKeyRef:
-                                    description: Selects a key of a ConfigMap.
-                                    properties:
-                                      key:
-                                        description: The key to select.
-                                        type: string
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                      optional:
-                                        description: Specify whether the ConfigMap
-                                          or its key must be defined
-                                        type: boolean
-                                    required:
-                                    - key
-                                    type: object
-                                  fieldRef:
-                                    description: 'Selects a field of the pod: supports
-                                      metadata.name, metadata.namespace, metadata.labels,
-                                      metadata.annotations, spec.nodeName, spec.serviceAccountName,
-                                      status.hostIP, status.podIP, status.podIPs.'
-                                    properties:
-                                      apiVersion:
-                                        description: Version of the schema the FieldPath
-                                          is written in terms of, defaults to "v1".
-                                        type: string
-                                      fieldPath:
-                                        description: Path of the field to select in
-                                          the specified API version.
-                                        type: string
-                                    required:
-                                    - fieldPath
-                                    type: object
-                                  resourceFieldRef:
-                                    description: 'Selects a resource of the container:
-                                      only resources limits and requests (limits.cpu,
-                                      limits.memory, limits.ephemeral-storage, requests.cpu,
-                                      requests.memory and requests.ephemeral-storage)
-                                      are currently supported.'
-                                    properties:
-                                      containerName:
-                                        description: 'Container name: required for
-                                          volumes, optional for env vars'
-                                        type: string
-                                      divisor:
-                                        anyOf:
-                                        - type: integer
-                                        - type: string
-                                        description: Specifies the output format of
-                                          the exposed resources, defaults to "1"
-                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                        x-kubernetes-int-or-string: true
-                                      resource:
-                                        description: 'Required: resource to select'
-                                        type: string
-                                    required:
-                                    - resource
-                                    type: object
-                                  secretKeyRef:
-                                    description: Selects a key of a secret in the
-                                      pod's namespace
-                                    properties:
-                                      key:
-                                        description: The key of the secret to select
-                                          from.  Must be a valid secret key.
-                                        type: string
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                      optional:
-                                        description: Specify whether the Secret or
-                                          its key must be defined
-                                        type: boolean
-                                    required:
-                                    - key
-                                    type: object
-                                type: object
-                            required:
-                            - name
-                            type: object
-                          type: array
-                        image:
-                          type: string
-                        name:
-                          type: string
-                        securityContext:
-                          description: SecurityContext holds security configuration
-                            that will be applied to a container. Some fields are present
-                            in both SecurityContext and PodSecurityContext.  When
-                            both are set, the values in SecurityContext take precedence.
-                          properties:
-                            allowPrivilegeEscalation:
-                              description: 'AllowPrivilegeEscalation controls whether
-                                a process can gain more privileges than its parent
-                                process. This bool directly controls if the no_new_privs
-                                flag will be set on the container process. AllowPrivilegeEscalation
-                                is true always when the container is: 1) run as Privileged
-                                2) has CAP_SYS_ADMIN'
-                              type: boolean
-                            capabilities:
-                              description: The capabilities to add/drop when running
-                                containers. Defaults to the default set of capabilities
-                                granted by the container runtime.
-                              properties:
-                                add:
-                                  description: Added capabilities
-                                  items:
-                                    description: Capability represent POSIX capabilities
-                                      type
-                                    type: string
-                                  type: array
-                                drop:
-                                  description: Removed capabilities
-                                  items:
-                                    description: Capability represent POSIX capabilities
-                                      type
-                                    type: string
-                                  type: array
-                              type: object
-                            privileged:
-                              description: Run container in privileged mode. Processes
-                                in privileged containers are essentially equivalent
-                                to root on the host. Defaults to false.
-                              type: boolean
-                            procMount:
-                              description: procMount denotes the type of proc mount
-                                to use for the containers. The default is DefaultProcMount
-                                which uses the container runtime defaults for readonly
-                                paths and masked paths. This requires the ProcMountType
-                                feature flag to be enabled.
-                              type: string
-                            readOnlyRootFilesystem:
-                              description: Whether this container has a read-only
-                                root filesystem. Default is false.
-                              type: boolean
-                            runAsGroup:
-                              description: The GID to run the entrypoint of the container
-                                process. Uses runtime default if unset. May also be
-                                set in PodSecurityContext.  If set in both SecurityContext
-                                and PodSecurityContext, the value specified in SecurityContext
-                                takes precedence.
-                              format: int64
-                              type: integer
-                            runAsNonRoot:
-                              description: Indicates that the container must run as
-                                a non-root user. If true, the Kubelet will validate
-                                the image at runtime to ensure that it does not run
-                                as UID 0 (root) and fail to start the container if
-                                it does. If unset or false, no such validation will
-                                be performed. May also be set in PodSecurityContext.  If
-                                set in both SecurityContext and PodSecurityContext,
-                                the value specified in SecurityContext takes precedence.
-                              type: boolean
-                            runAsUser:
-                              description: The UID to run the entrypoint of the container
-                                process. Defaults to user specified in image metadata
-                                if unspecified. May also be set in PodSecurityContext.  If
-                                set in both SecurityContext and PodSecurityContext,
-                                the value specified in SecurityContext takes precedence.
-                              format: int64
-                              type: integer
-                            seLinuxOptions:
-                              description: The SELinux context to be applied to the
-                                container. If unspecified, the container runtime will
-                                allocate a random SELinux context for each container.  May
-                                also be set in PodSecurityContext.  If set in both
-                                SecurityContext and PodSecurityContext, the value
-                                specified in SecurityContext takes precedence.
-                              properties:
-                                level:
-                                  description: Level is SELinux level label that applies
-                                    to the container.
-                                  type: string
-                                role:
-                                  description: Role is a SELinux role label that applies
-                                    to the container.
-                                  type: string
-                                type:
-                                  description: Type is a SELinux type label that applies
-                                    to the container.
-                                  type: string
-                                user:
-                                  description: User is a SELinux user label that applies
-                                    to the container.
-                                  type: string
-                              type: object
-                            windowsOptions:
-                              description: The Windows specific settings applied to
-                                all containers. If unspecified, the options from the
-                                PodSecurityContext will be used. If set in both SecurityContext
-                                and PodSecurityContext, the value specified in SecurityContext
-                                takes precedence.
-                              properties:
-                                gmsaCredentialSpec:
-                                  description: GMSACredentialSpec is where the GMSA
-                                    admission webhook (https://github.com/kubernetes-sigs/windows-gmsa)
-                                    inlines the contents of the GMSA credential spec
-                                    named by the GMSACredentialSpecName field.
-                                  type: string
-                                gmsaCredentialSpecName:
-                                  description: GMSACredentialSpecName is the name
-                                    of the GMSA credential spec to use.
-                                  type: string
-                                runAsUserName:
-                                  description: The UserName in Windows to run the
-                                    entrypoint of the container process. Defaults
-                                    to the user specified in image metadata if unspecified.
-                                    May also be set in PodSecurityContext. If set
-                                    in both SecurityContext and PodSecurityContext,
-                                    the value specified in SecurityContext takes precedence.
-                                  type: string
-                              type: object
-                          type: object
-                        volumeMounts:
-                          items:
-                            description: VolumeMount describes a mounting of a Volume
-                              within a container.
-                            properties:
-                              mountPath:
-                                description: Path within the container at which the
-                                  volume should be mounted.  Must not contain ':'.
-                                type: string
-                              mountPropagation:
-                                description: mountPropagation determines how mounts
-                                  are propagated from the host to container and the
-                                  other way around. When not set, MountPropagationNone
-                                  is used. This field is beta in 1.10.
-                                type: string
-                              name:
-                                description: This must match the Name of a Volume.
-                                type: string
-                              readOnly:
-                                description: Mounted read-only if true, read-write
-                                  otherwise (false or unspecified). Defaults to false.
-                                type: boolean
-                              subPath:
-                                description: Path within the volume from which the
-                                  container's volume should be mounted. Defaults to
-                                  "" (volume's root).
-                                type: string
-                              subPathExpr:
-                                description: Expanded path within the volume from
-                                  which the container's volume should be mounted.
-                                  Behaves similarly to SubPath but environment variable
-                                  references $(VAR_NAME) are expanded using the container's
-                                  environment. Defaults to "" (volume's root). SubPathExpr
-                                  and SubPath are mutually exclusive.
-                                type: string
-                            required:
-                            - mountPath
-                            - name
-                            type: object
-                          type: array
-                        volumes:
-                          items:
-                            description: Volume represents a named volume in a pod
-                              that may be accessed by any container in the pod.
-                            properties:
-                              awsElasticBlockStore:
-                                description: 'AWSElasticBlockStore represents an AWS
-                                  Disk resource that is attached to a kubelet''s host
-                                  machine and then exposed to the pod. More info:
-                                  https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  partition:
-                                    description: 'The partition in the volume that
-                                      you want to mount. If omitted, the default is
-                                      to mount by volume name. Examples: For volume
-                                      /dev/sda1, you specify the partition as "1".
-                                      Similarly, the volume partition for /dev/sda
-                                      is "0" (or you can leave the property empty).'
-                                    format: int32
-                                    type: integer
-                                  readOnly:
-                                    description: 'Specify "true" to force and set
-                                      the ReadOnly property in VolumeMounts to "true".
-                                      If omitted, the default is "false". More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                    type: boolean
-                                  volumeID:
-                                    description: 'Unique ID of the persistent disk
-                                      resource in AWS (Amazon EBS volume). More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              azureDisk:
-                                description: AzureDisk represents an Azure Data Disk
-                                  mount on the host and bind mount to the pod.
-                                properties:
-                                  cachingMode:
-                                    description: 'Host Caching mode: None, Read Only,
-                                      Read Write.'
-                                    type: string
-                                  diskName:
-                                    description: The Name of the data disk in the
-                                      blob storage
-                                    type: string
-                                  diskURI:
-                                    description: The URI the data disk in the blob
-                                      storage
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  kind:
-                                    description: 'Expected values Shared: multiple
-                                      blob disks per storage account  Dedicated: single
-                                      blob disk per storage account  Managed: azure
-                                      managed data disk (only in managed availability
-                                      set). defaults to shared'
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                required:
-                                - diskName
-                                - diskURI
-                                type: object
-                              azureFile:
-                                description: AzureFile represents an Azure File Service
-                                  mount on the host and bind mount to the pod.
-                                properties:
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretName:
-                                    description: the name of secret that contains
-                                      Azure Storage Account Name and Key
-                                    type: string
-                                  shareName:
-                                    description: Share Name
-                                    type: string
-                                required:
-                                - secretName
-                                - shareName
-                                type: object
-                              cephfs:
-                                description: CephFS represents a Ceph FS mount on
-                                  the host that shares a pod's lifetime
-                                properties:
-                                  monitors:
-                                    description: 'Required: Monitors is a collection
-                                      of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    items:
-                                      type: string
-                                    type: array
-                                  path:
-                                    description: 'Optional: Used as the mounted root,
-                                      rather than the full Ceph tree, default is /'
-                                    type: string
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: boolean
-                                  secretFile:
-                                    description: 'Optional: SecretFile is the path
-                                      to key ring for User, default is /etc/ceph/user.secret
-                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: string
-                                  secretRef:
-                                    description: 'Optional: SecretRef is reference
-                                      to the authentication secret for User, default
-                                      is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  user:
-                                    description: 'Optional: User is the rados user
-                                      name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
-                                    type: string
-                                required:
-                                - monitors
-                                type: object
-                              cinder:
-                                description: 'Cinder represents a cinder volume attached
-                                  and mounted on kubelets host machine. More info:
-                                  https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: string
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'Optional: points to a secret object
-                                      containing parameters used to connect to OpenStack.'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  volumeID:
-                                    description: 'volume id used to identify the volume
-                                      in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              configMap:
-                                description: ConfigMap represents a configMap that
-                                  should populate this volume
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: If unspecified, each key-value pair
-                                      in the Data field of the referenced ConfigMap
-                                      will be projected into the volume as a file
-                                      whose name is the key and content is the value.
-                                      If specified, the listed keys will be projected
-                                      into the specified paths, and unlisted keys
-                                      will not be present. If a key is specified which
-                                      is not present in the ConfigMap, the volume
-                                      setup will error unless it is marked optional.
-                                      Paths must be relative and may not contain the
-                                      '..' path or start with '..'.
-                                    items:
-                                      description: Maps a string key to a path within
-                                        a volume.
-                                      properties:
-                                        key:
-                                          description: The key to project.
-                                          type: string
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: The relative path of the file
-                                            to map the key to. May not be an absolute
-                                            path. May not contain the path element
-                                            '..'. May not start with the string '..'.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      type: object
-                                    type: array
-                                  name:
-                                    description: 'Name of the referent. More info:
-                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                      TODO: Add other useful fields. apiVersion, kind,
-                                      uid?'
-                                    type: string
-                                  optional:
-                                    description: Specify whether the ConfigMap or
-                                      its keys must be defined
-                                    type: boolean
-                                type: object
-                              csi:
-                                description: CSI (Container Storage Interface) represents
-                                  storage that is handled by an external CSI driver
-                                  (Alpha feature).
-                                properties:
-                                  driver:
-                                    description: Driver is the name of the CSI driver
-                                      that handles this volume. Consult with your
-                                      admin for the correct name as registered in
-                                      the cluster.
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Ex. "ext4",
-                                      "xfs", "ntfs". If not provided, the empty value
-                                      is passed to the associated CSI driver which
-                                      will determine the default filesystem to apply.
-                                    type: string
-                                  nodePublishSecretRef:
-                                    description: NodePublishSecretRef is a reference
-                                      to the secret object containing sensitive information
-                                      to pass to the CSI driver to complete the CSI
-                                      NodePublishVolume and NodeUnpublishVolume calls.
-                                      This field is optional, and  may be empty if
-                                      no secret is required. If the secret object
-                                      contains more than one secret, all secret references
-                                      are passed.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  readOnly:
-                                    description: Specifies a read-only configuration
-                                      for the volume. Defaults to false (read/write).
-                                    type: boolean
-                                  volumeAttributes:
-                                    additionalProperties:
-                                      type: string
-                                    description: VolumeAttributes stores driver-specific
-                                      properties that are passed to the CSI driver.
-                                      Consult your driver's documentation for supported
-                                      values.
-                                    type: object
-                                required:
-                                - driver
-                                type: object
-                              downwardAPI:
-                                description: DownwardAPI represents downward API about
-                                  the pod that should populate this volume
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: Items is a list of downward API volume
-                                      file
-                                    items:
-                                      description: DownwardAPIVolumeFile represents
-                                        information to create the file containing
-                                        the pod field
-                                      properties:
-                                        fieldRef:
-                                          description: 'Required: Selects a field
-                                            of the pod: only annotations, labels,
-                                            name and namespace are supported.'
-                                          properties:
-                                            apiVersion:
-                                              description: Version of the schema the
-                                                FieldPath is written in terms of,
-                                                defaults to "v1".
-                                              type: string
-                                            fieldPath:
-                                              description: Path of the field to select
-                                                in the specified API version.
-                                              type: string
-                                          required:
-                                          - fieldPath
-                                          type: object
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: 'Required: Path is  the relative
-                                            path name of the file to be created. Must
-                                            not be absolute or contain the ''..''
-                                            path. Must be utf-8 encoded. The first
-                                            item of the relative path must not start
-                                            with ''..'''
-                                          type: string
-                                        resourceFieldRef:
-                                          description: 'Selects a resource of the
-                                            container: only resources limits and requests
-                                            (limits.cpu, limits.memory, requests.cpu
-                                            and requests.memory) are currently supported.'
-                                          properties:
-                                            containerName:
-                                              description: 'Container name: required
-                                                for volumes, optional for env vars'
-                                              type: string
-                                            divisor:
-                                              anyOf:
-                                              - type: integer
-                                              - type: string
-                                              description: Specifies the output format
-                                                of the exposed resources, defaults
-                                                to "1"
-                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                              x-kubernetes-int-or-string: true
-                                            resource:
-                                              description: 'Required: resource to
-                                                select'
-                                              type: string
-                                          required:
-                                          - resource
-                                          type: object
-                                      required:
-                                      - path
-                                      type: object
-                                    type: array
-                                type: object
-                              emptyDir:
-                                description: 'EmptyDir represents a temporary directory
-                                  that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
-                                properties:
-                                  medium:
-                                    description: 'What type of storage medium should
-                                      back this directory. The default is "" which
-                                      means to use the node''s default medium. Must
-                                      be an empty string (default) or Memory. More
-                                      info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
-                                    type: string
-                                  sizeLimit:
-                                    anyOf:
-                                    - type: integer
-                                    - type: string
-                                    description: 'Total amount of local storage required
-                                      for this EmptyDir volume. The size limit is
-                                      also applicable for memory medium. The maximum
-                                      usage on memory medium EmptyDir would be the
-                                      minimum value between the SizeLimit specified
-                                      here and the sum of memory limits of all containers
-                                      in a pod. The default is nil which means that
-                                      the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
-                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                    x-kubernetes-int-or-string: true
-                                type: object
-                              fc:
-                                description: FC represents a Fibre Channel resource
-                                  that is attached to a kubelet's host machine and
-                                  then exposed to the pod.
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. TODO:
-                                      how do we prevent errors in the filesystem from
-                                      compromising the machine'
-                                    type: string
-                                  lun:
-                                    description: 'Optional: FC target lun number'
-                                    format: int32
-                                    type: integer
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts.'
-                                    type: boolean
-                                  targetWWNs:
-                                    description: 'Optional: FC target worldwide names
-                                      (WWNs)'
-                                    items:
-                                      type: string
-                                    type: array
-                                  wwids:
-                                    description: 'Optional: FC volume world wide identifiers
-                                      (wwids) Either wwids or combination of targetWWNs
-                                      and lun must be set, but not both simultaneously.'
-                                    items:
-                                      type: string
-                                    type: array
-                                type: object
-                              flexVolume:
-                                description: FlexVolume represents a generic volume
-                                  resource that is provisioned/attached using an exec
-                                  based plugin.
-                                properties:
-                                  driver:
-                                    description: Driver is the name of the driver
-                                      to use for this volume.
-                                    type: string
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". The default
-                                      filesystem depends on FlexVolume script.
-                                    type: string
-                                  options:
-                                    additionalProperties:
-                                      type: string
-                                    description: 'Optional: Extra command options
-                                      if any.'
-                                    type: object
-                                  readOnly:
-                                    description: 'Optional: Defaults to false (read/write).
-                                      ReadOnly here will force the ReadOnly setting
-                                      in VolumeMounts.'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'Optional: SecretRef is reference
-                                      to the secret object containing sensitive information
-                                      to pass to the plugin scripts. This may be empty
-                                      if no secret object is specified. If the secret
-                                      object contains more than one secret, all secrets
-                                      are passed to the plugin scripts.'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                required:
-                                - driver
-                                type: object
-                              flocker:
-                                description: Flocker represents a Flocker volume attached
-                                  to a kubelet's host machine. This depends on the
-                                  Flocker control service being running
-                                properties:
-                                  datasetName:
-                                    description: Name of the dataset stored as metadata
-                                      -> name on the dataset for Flocker should be
-                                      considered as deprecated
-                                    type: string
-                                  datasetUUID:
-                                    description: UUID of the dataset. This is unique
-                                      identifier of a Flocker dataset
-                                    type: string
-                                type: object
-                              gcePersistentDisk:
-                                description: 'GCEPersistentDisk represents a GCE Disk
-                                  resource that is attached to a kubelet''s host machine
-                                  and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  partition:
-                                    description: 'The partition in the volume that
-                                      you want to mount. If omitted, the default is
-                                      to mount by volume name. Examples: For volume
-                                      /dev/sda1, you specify the partition as "1".
-                                      Similarly, the volume partition for /dev/sda
-                                      is "0" (or you can leave the property empty).
-                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    format: int32
-                                    type: integer
-                                  pdName:
-                                    description: 'Unique name of the PD resource in
-                                      GCE. Used to identify the disk in GCE. More
-                                      info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
-                                    type: boolean
-                                required:
-                                - pdName
-                                type: object
-                              gitRepo:
-                                description: 'GitRepo represents a git repository
-                                  at a particular revision. DEPRECATED: GitRepo is
-                                  deprecated. To provision a container with a git
-                                  repo, mount an EmptyDir into an InitContainer that
-                                  clones the repo using git, then mount the EmptyDir
-                                  into the Pod''s container.'
-                                properties:
-                                  directory:
-                                    description: Target directory name. Must not contain
-                                      or start with '..'.  If '.' is supplied, the
-                                      volume directory will be the git repository.  Otherwise,
-                                      if specified, the volume will contain the git
-                                      repository in the subdirectory with the given
-                                      name.
-                                    type: string
-                                  repository:
-                                    description: Repository URL
-                                    type: string
-                                  revision:
-                                    description: Commit hash for the specified revision.
-                                    type: string
-                                required:
-                                - repository
-                                type: object
-                              glusterfs:
-                                description: 'Glusterfs represents a Glusterfs mount
-                                  on the host that shares a pod''s lifetime. More
-                                  info: https://examples.k8s.io/volumes/glusterfs/README.md'
-                                properties:
-                                  endpoints:
-                                    description: 'EndpointsName is the endpoint name
-                                      that details Glusterfs topology. More info:
-                                      https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: string
-                                  path:
-                                    description: 'Path is the Glusterfs volume path.
-                                      More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the Glusterfs
-                                      volume to be mounted with read-only permissions.
-                                      Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
-                                    type: boolean
-                                required:
-                                - endpoints
-                                - path
-                                type: object
-                              hostPath:
-                                description: 'HostPath represents a pre-existing file
-                                  or directory on the host machine that is directly
-                                  exposed to the container. This is generally used
-                                  for system agents or other privileged things that
-                                  are allowed to see the host machine. Most containers
-                                  will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
-                                  --- TODO(jonesdl) We need to restrict who can use
-                                  host directory mounts and who can/can not mount
-                                  host directories as read/write.'
-                                properties:
-                                  path:
-                                    description: 'Path of the directory on the host.
-                                      If the path is a symlink, it will follow the
-                                      link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
-                                    type: string
-                                  type:
-                                    description: 'Type for HostPath Volume Defaults
-                                      to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
-                                    type: string
-                                required:
-                                - path
-                                type: object
-                              iscsi:
-                                description: 'ISCSI represents an ISCSI Disk resource
-                                  that is attached to a kubelet''s host machine and
-                                  then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
-                                properties:
-                                  chapAuthDiscovery:
-                                    description: whether support iSCSI Discovery CHAP
-                                      authentication
-                                    type: boolean
-                                  chapAuthSession:
-                                    description: whether support iSCSI Session CHAP
-                                      authentication
-                                    type: boolean
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#iscsi
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  initiatorName:
-                                    description: Custom iSCSI Initiator Name. If initiatorName
-                                      is specified with iscsiInterface simultaneously,
-                                      new iSCSI interface <target portal>:<volume
-                                      name> will be created for the connection.
-                                    type: string
-                                  iqn:
-                                    description: Target iSCSI Qualified Name.
-                                    type: string
-                                  iscsiInterface:
-                                    description: iSCSI Interface Name that uses an
-                                      iSCSI transport. Defaults to 'default' (tcp).
-                                    type: string
-                                  lun:
-                                    description: iSCSI Target Lun number.
-                                    format: int32
-                                    type: integer
-                                  portals:
-                                    description: iSCSI Target Portal List. The portal
-                                      is either an IP or ip_addr:port if the port
-                                      is other than default (typically TCP ports 860
-                                      and 3260).
-                                    items:
-                                      type: string
-                                    type: array
-                                  readOnly:
-                                    description: ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                    type: boolean
-                                  secretRef:
-                                    description: CHAP Secret for iSCSI target and
-                                      initiator authentication
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  targetPortal:
-                                    description: iSCSI Target Portal. The Portal is
-                                      either an IP or ip_addr:port if the port is
-                                      other than default (typically TCP ports 860
-                                      and 3260).
-                                    type: string
-                                required:
-                                - iqn
-                                - lun
-                                - targetPortal
-                                type: object
-                              name:
-                                description: 'Volume''s name. Must be a DNS_LABEL
-                                  and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
-                                type: string
-                              nfs:
-                                description: 'NFS represents an NFS mount on the host
-                                  that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                properties:
-                                  path:
-                                    description: 'Path that is exported by the NFS
-                                      server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the NFS
-                                      export to be mounted with read-only permissions.
-                                      Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: boolean
-                                  server:
-                                    description: 'Server is the hostname or IP address
-                                      of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
-                                    type: string
-                                required:
-                                - path
-                                - server
-                                type: object
-                              persistentVolumeClaim:
-                                description: 'PersistentVolumeClaimVolumeSource represents
-                                  a reference to a PersistentVolumeClaim in the same
-                                  namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
-                                properties:
-                                  claimName:
-                                    description: 'ClaimName is the name of a PersistentVolumeClaim
-                                      in the same namespace as the pod using this
-                                      volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
-                                    type: string
-                                  readOnly:
-                                    description: Will force the ReadOnly setting in
-                                      VolumeMounts. Default false.
-                                    type: boolean
-                                required:
-                                - claimName
-                                type: object
-                              photonPersistentDisk:
-                                description: PhotonPersistentDisk represents a PhotonController
-                                  persistent disk attached and mounted on kubelets
-                                  host machine
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  pdID:
-                                    description: ID that identifies Photon Controller
-                                      persistent disk
-                                    type: string
-                                required:
-                                - pdID
-                                type: object
-                              portworxVolume:
-                                description: PortworxVolume represents a portworx
-                                  volume attached and mounted on kubelets host machine
-                                properties:
-                                  fsType:
-                                    description: FSType represents the filesystem
-                                      type to mount Must be a filesystem type supported
-                                      by the host operating system. Ex. "ext4", "xfs".
-                                      Implicitly inferred to be "ext4" if unspecified.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  volumeID:
-                                    description: VolumeID uniquely identifies a Portworx
-                                      volume
-                                    type: string
-                                required:
-                                - volumeID
-                                type: object
-                              projected:
-                                description: Items for all in one resources secrets,
-                                  configmaps, and downward API
-                                properties:
-                                  defaultMode:
-                                    description: Mode bits to use on created files
-                                      by default. Must be a value between 0 and 0777.
-                                      Directories within the path are not affected
-                                      by this setting. This might be in conflict with
-                                      other options that affect the file mode, like
-                                      fsGroup, and the result can be other mode bits
-                                      set.
-                                    format: int32
-                                    type: integer
-                                  sources:
-                                    description: list of volume projections
-                                    items:
-                                      description: Projection that may be projected
-                                        along with other supported volume types
-                                      properties:
-                                        configMap:
-                                          description: information about the configMap
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: If unspecified, each key-value
-                                                pair in the Data field of the referenced
-                                                ConfigMap will be projected into the
-                                                volume as a file whose name is the
-                                                key and content is the value. If specified,
-                                                the listed keys will be projected
-                                                into the specified paths, and unlisted
-                                                keys will not be present. If a key
-                                                is specified which is not present
-                                                in the ConfigMap, the volume setup
-                                                will error unless it is marked optional.
-                                                Paths must be relative and may not
-                                                contain the '..' path or start with
-                                                '..'.
-                                              items:
-                                                description: Maps a string key to
-                                                  a path within a volume.
-                                                properties:
-                                                  key:
-                                                    description: The key to project.
-                                                    type: string
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: The relative path
-                                                      of the file to map the key to.
-                                                      May not be an absolute path.
-                                                      May not contain the path element
-                                                      '..'. May not start with the
-                                                      string '..'.
-                                                    type: string
-                                                required:
-                                                - key
-                                                - path
-                                                type: object
-                                              type: array
-                                            name:
-                                              description: 'Name of the referent.
-                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                                TODO: Add other useful fields. apiVersion,
-                                                kind, uid?'
-                                              type: string
-                                            optional:
-                                              description: Specify whether the ConfigMap
-                                                or its keys must be defined
-                                              type: boolean
-                                          type: object
-                                        downwardAPI:
-                                          description: information about the downwardAPI
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: Items is a list of DownwardAPIVolume
-                                                file
-                                              items:
-                                                description: DownwardAPIVolumeFile
-                                                  represents information to create
-                                                  the file containing the pod field
-                                                properties:
-                                                  fieldRef:
-                                                    description: 'Required: Selects
-                                                      a field of the pod: only annotations,
-                                                      labels, name and namespace are
-                                                      supported.'
-                                                    properties:
-                                                      apiVersion:
-                                                        description: Version of the
-                                                          schema the FieldPath is
-                                                          written in terms of, defaults
-                                                          to "v1".
-                                                        type: string
-                                                      fieldPath:
-                                                        description: Path of the field
-                                                          to select in the specified
-                                                          API version.
-                                                        type: string
-                                                    required:
-                                                    - fieldPath
-                                                    type: object
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: 'Required: Path is  the
-                                                      relative path name of the file
-                                                      to be created. Must not be absolute
-                                                      or contain the ''..'' path.
-                                                      Must be utf-8 encoded. The first
-                                                      item of the relative path must
-                                                      not start with ''..'''
-                                                    type: string
-                                                  resourceFieldRef:
-                                                    description: 'Selects a resource
-                                                      of the container: only resources
-                                                      limits and requests (limits.cpu,
-                                                      limits.memory, requests.cpu
-                                                      and requests.memory) are currently
-                                                      supported.'
-                                                    properties:
-                                                      containerName:
-                                                        description: 'Container name:
-                                                          required for volumes, optional
-                                                          for env vars'
-                                                        type: string
-                                                      divisor:
-                                                        anyOf:
-                                                        - type: integer
-                                                        - type: string
-                                                        description: Specifies the
-                                                          output format of the exposed
-                                                          resources, defaults to "1"
-                                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-                                                        x-kubernetes-int-or-string: true
-                                                      resource:
-                                                        description: 'Required: resource
-                                                          to select'
-                                                        type: string
-                                                    required:
-                                                    - resource
-                                                    type: object
-                                                required:
-                                                - path
-                                                type: object
-                                              type: array
-                                          type: object
-                                        secret:
-                                          description: information about the secret
-                                            data to project
-                                          properties:
-                                            items:
-                                              description: If unspecified, each key-value
-                                                pair in the Data field of the referenced
-                                                Secret will be projected into the
-                                                volume as a file whose name is the
-                                                key and content is the value. If specified,
-                                                the listed keys will be projected
-                                                into the specified paths, and unlisted
-                                                keys will not be present. If a key
-                                                is specified which is not present
-                                                in the Secret, the volume setup will
-                                                error unless it is marked optional.
-                                                Paths must be relative and may not
-                                                contain the '..' path or start with
-                                                '..'.
-                                              items:
-                                                description: Maps a string key to
-                                                  a path within a volume.
-                                                properties:
-                                                  key:
-                                                    description: The key to project.
-                                                    type: string
-                                                  mode:
-                                                    description: 'Optional: mode bits
-                                                      to use on this file, must be
-                                                      a value between 0 and 0777.
-                                                      If not specified, the volume
-                                                      defaultMode will be used. This
-                                                      might be in conflict with other
-                                                      options that affect the file
-                                                      mode, like fsGroup, and the
-                                                      result can be other mode bits
-                                                      set.'
-                                                    format: int32
-                                                    type: integer
-                                                  path:
-                                                    description: The relative path
-                                                      of the file to map the key to.
-                                                      May not be an absolute path.
-                                                      May not contain the path element
-                                                      '..'. May not start with the
-                                                      string '..'.
-                                                    type: string
-                                                required:
-                                                - key
-                                                - path
-                                                type: object
-                                              type: array
-                                            name:
-                                              description: 'Name of the referent.
-                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                                TODO: Add other useful fields. apiVersion,
-                                                kind, uid?'
-                                              type: string
-                                            optional:
-                                              description: Specify whether the Secret
-                                                or its key must be defined
-                                              type: boolean
-                                          type: object
-                                        serviceAccountToken:
-                                          description: information about the serviceAccountToken
-                                            data to project
-                                          properties:
-                                            audience:
-                                              description: Audience is the intended
-                                                audience of the token. A recipient
-                                                of a token must identify itself with
-                                                an identifier specified in the audience
-                                                of the token, and otherwise should
-                                                reject the token. The audience defaults
-                                                to the identifier of the apiserver.
-                                              type: string
-                                            expirationSeconds:
-                                              description: ExpirationSeconds is the
-                                                requested duration of validity of
-                                                the service account token. As the
-                                                token approaches expiration, the kubelet
-                                                volume plugin will proactively rotate
-                                                the service account token. The kubelet
-                                                will start trying to rotate the token
-                                                if the token is older than 80 percent
-                                                of its time to live or if the token
-                                                is older than 24 hours.Defaults to
-                                                1 hour and must be at least 10 minutes.
-                                              format: int64
-                                              type: integer
-                                            path:
-                                              description: Path is the path relative
-                                                to the mount point of the file to
-                                                project the token into.
-                                              type: string
-                                          required:
-                                          - path
-                                          type: object
-                                      type: object
-                                    type: array
-                                required:
-                                - sources
-                                type: object
-                              quobyte:
-                                description: Quobyte represents a Quobyte mount on
-                                  the host that shares a pod's lifetime
-                                properties:
-                                  group:
-                                    description: Group to map volume access to Default
-                                      is no group
-                                    type: string
-                                  readOnly:
-                                    description: ReadOnly here will force the Quobyte
-                                      volume to be mounted with read-only permissions.
-                                      Defaults to false.
-                                    type: boolean
-                                  registry:
-                                    description: Registry represents a single or multiple
-                                      Quobyte Registry services specified as a string
-                                      as host:port pair (multiple entries are separated
-                                      with commas) which acts as the central registry
-                                      for volumes
-                                    type: string
-                                  tenant:
-                                    description: Tenant owning the given Quobyte volume
-                                      in the Backend Used with dynamically provisioned
-                                      Quobyte volumes, value is set by the plugin
-                                    type: string
-                                  user:
-                                    description: User to map volume access to Defaults
-                                      to serivceaccount user
-                                    type: string
-                                  volume:
-                                    description: Volume is a string that references
-                                      an already created Quobyte volume by name.
-                                    type: string
-                                required:
-                                - registry
-                                - volume
-                                type: object
-                              rbd:
-                                description: 'RBD represents a Rados Block Device
-                                  mount on the host that shares a pod''s lifetime.
-                                  More info: https://examples.k8s.io/volumes/rbd/README.md'
-                                properties:
-                                  fsType:
-                                    description: 'Filesystem type of the volume that
-                                      you want to mount. Tip: Ensure that the filesystem
-                                      type is supported by the host operating system.
-                                      Examples: "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified. More info:
-                                      https://kubernetes.io/docs/concepts/storage/volumes#rbd
-                                      TODO: how do we prevent errors in the filesystem
-                                      from compromising the machine'
-                                    type: string
-                                  image:
-                                    description: 'The rados image name. More info:
-                                      https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  keyring:
-                                    description: 'Keyring is the path to key ring
-                                      for RBDUser. Default is /etc/ceph/keyring. More
-                                      info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  monitors:
-                                    description: 'A collection of Ceph monitors. More
-                                      info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    items:
-                                      type: string
-                                    type: array
-                                  pool:
-                                    description: 'The rados pool name. Default is
-                                      rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                  readOnly:
-                                    description: 'ReadOnly here will force the ReadOnly
-                                      setting in VolumeMounts. Defaults to false.
-                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: boolean
-                                  secretRef:
-                                    description: 'SecretRef is name of the authentication
-                                      secret for RBDUser. If provided overrides keyring.
-                                      Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  user:
-                                    description: 'The rados user name. Default is
-                                      admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
-                                    type: string
-                                required:
-                                - image
-                                - monitors
-                                type: object
-                              scaleIO:
-                                description: ScaleIO represents a ScaleIO persistent
-                                  volume attached and mounted on Kubernetes nodes.
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Default is
-                                      "xfs".
-                                    type: string
-                                  gateway:
-                                    description: The host address of the ScaleIO API
-                                      Gateway.
-                                    type: string
-                                  protectionDomain:
-                                    description: The name of the ScaleIO Protection
-                                      Domain for the configured storage.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretRef:
-                                    description: SecretRef references to the secret
-                                      for ScaleIO user and other sensitive information.
-                                      If this is not provided, Login operation will
-                                      fail.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  sslEnabled:
-                                    description: Flag to enable/disable SSL communication
-                                      with Gateway, default false
-                                    type: boolean
-                                  storageMode:
-                                    description: Indicates whether the storage for
-                                      a volume should be ThickProvisioned or ThinProvisioned.
-                                      Default is ThinProvisioned.
-                                    type: string
-                                  storagePool:
-                                    description: The ScaleIO Storage Pool associated
-                                      with the protection domain.
-                                    type: string
-                                  system:
-                                    description: The name of the storage system as
-                                      configured in ScaleIO.
-                                    type: string
-                                  volumeName:
-                                    description: The name of a volume already created
-                                      in the ScaleIO system that is associated with
-                                      this volume source.
-                                    type: string
-                                required:
-                                - gateway
-                                - secretRef
-                                - system
-                                type: object
-                              secret:
-                                description: 'Secret represents a secret that should
-                                  populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
-                                properties:
-                                  defaultMode:
-                                    description: 'Optional: mode bits to use on created
-                                      files by default. Must be a value between 0
-                                      and 0777. Defaults to 0644. Directories within
-                                      the path are not affected by this setting. This
-                                      might be in conflict with other options that
-                                      affect the file mode, like fsGroup, and the
-                                      result can be other mode bits set.'
-                                    format: int32
-                                    type: integer
-                                  items:
-                                    description: If unspecified, each key-value pair
-                                      in the Data field of the referenced Secret will
-                                      be projected into the volume as a file whose
-                                      name is the key and content is the value. If
-                                      specified, the listed keys will be projected
-                                      into the specified paths, and unlisted keys
-                                      will not be present. If a key is specified which
-                                      is not present in the Secret, the volume setup
-                                      will error unless it is marked optional. Paths
-                                      must be relative and may not contain the '..'
-                                      path or start with '..'.
-                                    items:
-                                      description: Maps a string key to a path within
-                                        a volume.
-                                      properties:
-                                        key:
-                                          description: The key to project.
-                                          type: string
-                                        mode:
-                                          description: 'Optional: mode bits to use
-                                            on this file, must be a value between
-                                            0 and 0777. If not specified, the volume
-                                            defaultMode will be used. This might be
-                                            in conflict with other options that affect
-                                            the file mode, like fsGroup, and the result
-                                            can be other mode bits set.'
-                                          format: int32
-                                          type: integer
-                                        path:
-                                          description: The relative path of the file
-                                            to map the key to. May not be an absolute
-                                            path. May not contain the path element
-                                            '..'. May not start with the string '..'.
-                                          type: string
-                                      required:
-                                      - key
-                                      - path
-                                      type: object
-                                    type: array
-                                  optional:
-                                    description: Specify whether the Secret or its
-                                      keys must be defined
-                                    type: boolean
-                                  secretName:
-                                    description: 'Name of the secret in the pod''s
-                                      namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
-                                    type: string
-                                type: object
-                              storageos:
-                                description: StorageOS represents a StorageOS volume
-                                  attached and mounted on Kubernetes nodes.
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  readOnly:
-                                    description: Defaults to false (read/write). ReadOnly
-                                      here will force the ReadOnly setting in VolumeMounts.
-                                    type: boolean
-                                  secretRef:
-                                    description: SecretRef specifies the secret to
-                                      use for obtaining the StorageOS API credentials.  If
-                                      not specified, default values will be attempted.
-                                    properties:
-                                      name:
-                                        description: 'Name of the referent. More info:
-                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                          TODO: Add other useful fields. apiVersion,
-                                          kind, uid?'
-                                        type: string
-                                    type: object
-                                  volumeName:
-                                    description: VolumeName is the human-readable
-                                      name of the StorageOS volume.  Volume names
-                                      are only unique within a namespace.
-                                    type: string
-                                  volumeNamespace:
-                                    description: VolumeNamespace specifies the scope
-                                      of the volume within StorageOS.  If no namespace
-                                      is specified then the Pod's namespace will be
-                                      used.  This allows the Kubernetes name scoping
-                                      to be mirrored within StorageOS for tighter
-                                      integration. Set VolumeName to any name to override
-                                      the default behaviour. Set to "default" if you
-                                      are not using namespaces within StorageOS. Namespaces
-                                      that do not pre-exist within StorageOS will
-                                      be created.
-                                    type: string
-                                type: object
-                              vsphereVolume:
-                                description: VsphereVolume represents a vSphere volume
-                                  attached and mounted on kubelets host machine
-                                properties:
-                                  fsType:
-                                    description: Filesystem type to mount. Must be
-                                      a filesystem type supported by the host operating
-                                      system. Ex. "ext4", "xfs", "ntfs". Implicitly
-                                      inferred to be "ext4" if unspecified.
-                                    type: string
-                                  storagePolicyID:
-                                    description: Storage Policy Based Management (SPBM)
-                                      profile ID associated with the StoragePolicyName.
-                                    type: string
-                                  storagePolicyName:
-                                    description: Storage Policy Based Management (SPBM)
-                                      profile name.
-                                    type: string
-                                  volumePath:
-                                    description: Path that identifies vSphere volume
-                                      vmdk
-                                    type: string
-                                required:
-                                - volumePath
-                                type: object
-                            required:
-                            - name
-                            type: object
-                          type: array
-                        workingDir:
-                          type: string
-                      type: object
-                  type: object
-                type: array
-            type: object
-          status:
-            description: BuildStatus defines the observed state of Build
-            properties:
-              artifacts:
-                items:
-                  description: Artifact --
-                  properties:
-                    checksum:
-                      type: string
-                    id:
-                      type: string
-                    location:
-                      type: string
-                    target:
-                      type: string
-                  required:
-                  - id
-                  type: object
-                type: array
-              baseImage:
-                type: string
-              conditions:
-                items:
-                  description: BuildCondition describes the state of a resource at
-                    a certain point.
-                  properties:
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of integration condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              digest:
-                type: string
-              duration:
-                description: Change to Duration / ISO 8601 when CRD uses OpenAPI spec
-                  v3 https://github.com/OAI/OpenAPI-Specification/issues/845
-                type: string
-              error:
-                type: string
-              failure:
-                description: Failure --
-                properties:
-                  reason:
-                    type: string
-                  recovery:
-                    description: FailureRecovery --
-                    properties:
-                      attempt:
-                        type: integer
-                      attemptMax:
-                        type: integer
-                      attemptTime:
-                        format: date-time
-                        type: string
-                    required:
-                    - attempt
-                    - attemptMax
-                    type: object
-                  time:
-                    format: date-time
-                    type: string
-                required:
-                - reason
-                - recovery
-                - time
-                type: object
-              image:
-                type: string
-              phase:
-                description: BuildPhase --
-                type: string
-              platform:
-                type: string
-              startedAt:
-                format: date-time
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
diff --git a/deploy/crd-camel-catalog.yaml b/deploy/crd-camel-catalog.yaml
deleted file mode 100644
index a18d657..0000000
--- a/deploy/crd-camel-catalog.yaml
+++ /dev/null
@@ -1,330 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: camelcatalogs.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: CamelCatalog
-    listKind: CamelCatalogList
-    plural: camelcatalogs
-    shortNames:
-    - cc
-    singular: camelcatalog
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The Camel K Runtime version
-      jsonPath: .spec.runtime.version
-      name: Runtime Version
-      type: string
-    - description: The Camel K Runtime provider
-      jsonPath: .spec.runtime.provider
-      name: Runtime Provider
-      type: string
-    name: v1
-    schema:
-      openAPIV3Schema:
-        description: CamelCatalog is the Schema for the camelcatalogs API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: CamelCatalogSpec defines the desired state of CamelCatalog
-            properties:
-              artifacts:
-                additionalProperties:
-                  description: CamelArtifact --
-                  properties:
-                    artifactId:
-                      type: string
-                    dataformats:
-                      items:
-                        type: string
-                      type: array
-                    dependencies:
-                      items:
-                        description: CamelArtifactDependency represent a maven's dependency
-                        properties:
-                          artifactId:
-                            type: string
-                          exclusions:
-                            items:
-                              description: CamelArtifactExclusion --
-                              properties:
-                                artifactId:
-                                  type: string
-                                groupId:
-                                  type: string
-                              required:
-                              - artifactId
-                              - groupId
-                              type: object
-                            type: array
-                          groupId:
-                            type: string
-                          version:
-                            type: string
-                        required:
-                        - artifactId
-                        - groupId
-                        type: object
-                      type: array
-                    exclusions:
-                      items:
-                        description: CamelArtifactExclusion --
-                        properties:
-                          artifactId:
-                            type: string
-                          groupId:
-                            type: string
-                        required:
-                        - artifactId
-                        - groupId
-                        type: object
-                      type: array
-                    groupId:
-                      type: string
-                    javaTypes:
-                      items:
-                        type: string
-                      type: array
-                    languages:
-                      items:
-                        type: string
-                      type: array
-                    schemes:
-                      items:
-                        description: CamelScheme --
-                        properties:
-                          consumer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
-                            properties:
-                              dependencies:
-                                items:
-                                  description: CamelArtifactDependency represent a
-                                    maven's dependency
-                                  properties:
-                                    artifactId:
-                                      type: string
-                                    exclusions:
-                                      items:
-                                        description: CamelArtifactExclusion --
-                                        properties:
-                                          artifactId:
-                                            type: string
-                                          groupId:
-                                            type: string
-                                        required:
-                                        - artifactId
-                                        - groupId
-                                        type: object
-                                      type: array
-                                    groupId:
-                                      type: string
-                                    version:
-                                      type: string
-                                  required:
-                                  - artifactId
-                                  - groupId
-                                  type: object
-                                type: array
-                            type: object
-                          http:
-                            type: boolean
-                          id:
-                            type: string
-                          passive:
-                            type: boolean
-                          producer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
-                            properties:
-                              dependencies:
-                                items:
-                                  description: CamelArtifactDependency represent a
-                                    maven's dependency
-                                  properties:
-                                    artifactId:
-                                      type: string
-                                    exclusions:
-                                      items:
-                                        description: CamelArtifactExclusion --
-                                        properties:
-                                          artifactId:
-                                            type: string
-                                          groupId:
-                                            type: string
-                                        required:
-                                        - artifactId
-                                        - groupId
-                                        type: object
-                                      type: array
-                                    groupId:
-                                      type: string
-                                    version:
-                                      type: string
-                                  required:
-                                  - artifactId
-                                  - groupId
-                                  type: object
-                                type: array
-                            type: object
-                        required:
-                        - http
-                        - id
-                        - passive
-                        type: object
-                      type: array
-                    version:
-                      type: string
-                  required:
-                  - artifactId
-                  - groupId
-                  type: object
-                type: object
-              loaders:
-                additionalProperties:
-                  description: CamelLoader --
-                  properties:
-                    artifactId:
-                      type: string
-                    dependencies:
-                      items:
-                        description: MavenArtifact --
-                        properties:
-                          artifactId:
-                            type: string
-                          groupId:
-                            type: string
-                          version:
-                            type: string
-                        required:
-                        - artifactId
-                        - groupId
-                        type: object
-                      type: array
-                    groupId:
-                      type: string
-                    languages:
-                      items:
-                        type: string
-                      type: array
-                    version:
-                      type: string
-                  required:
-                  - artifactId
-                  - groupId
-                  type: object
-                type: object
-              runtime:
-                description: RuntimeSpec --
-                properties:
-                  applicationClass:
-                    type: string
-                  capabilities:
-                    additionalProperties:
-                      description: Capability --
-                      properties:
-                        dependencies:
-                          items:
-                            description: MavenArtifact --
-                            properties:
-                              artifactId:
-                                type: string
-                              groupId:
-                                type: string
-                              version:
-                                type: string
-                            required:
-                            - artifactId
-                            - groupId
-                            type: object
-                          type: array
-                        metadata:
-                          additionalProperties:
-                            type: string
-                          type: object
-                      required:
-                      - dependencies
-                      type: object
-                    type: object
-                  dependencies:
-                    items:
-                      description: MavenArtifact --
-                      properties:
-                        artifactId:
-                          type: string
-                        groupId:
-                          type: string
-                        version:
-                          type: string
-                      required:
-                      - artifactId
-                      - groupId
-                      type: object
-                    type: array
-                  metadata:
-                    additionalProperties:
-                      type: string
-                    type: object
-                  provider:
-                    description: RuntimeProvider --
-                    type: string
-                  version:
-                    type: string
-                required:
-                - applicationClass
-                - dependencies
-                - provider
-                - version
-                type: object
-            required:
-            - artifacts
-            - loaders
-            - runtime
-            type: object
-          status:
-            description: CamelCatalogStatus defines the observed state of CamelCatalog
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
diff --git a/deploy/crd-integration-kit.yaml b/deploy/crd-integration-kit.yaml
deleted file mode 100644
index beec770..0000000
--- a/deploy/crd-integration-kit.yaml
+++ /dev/null
@@ -1,215 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: integrationkits.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: IntegrationKit
-    listKind: IntegrationKitList
-    plural: integrationkits
-    shortNames:
-    - ik
-    singular: integrationkit
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The integration kit phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    - description: The integration kit type
-      jsonPath: .metadata.labels.camel\.apache\.org\/kit\.type
-      name: Type
-      type: string
-    - description: The integration kit image
-      jsonPath: .status.image
-      name: Image
-      type: string
-    name: v1
-    schema:
-      openAPIV3Schema:
-        description: IntegrationKit is the Schema for the integrationkits API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: IntegrationKitSpec defines the desired state of IntegrationKit
-            properties:
-              configuration:
-                items:
-                  description: ConfigurationSpec --
-                  properties:
-                    type:
-                      type: string
-                    value:
-                      type: string
-                  required:
-                  - type
-                  - value
-                  type: object
-                type: array
-              dependencies:
-                items:
-                  type: string
-                type: array
-              image:
-                type: string
-              profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
-                type: string
-              repositories:
-                items:
-                  type: string
-                type: array
-              traits:
-                additionalProperties:
-                  description: A TraitSpec contains the configuration of a trait
-                  properties:
-                    configuration:
-                      description: TraitConfiguration --
-                      type: object
-                      x-kubernetes-preserve-unknown-fields: true
-                  required:
-                  - configuration
-                  type: object
-                type: object
-            type: object
-          status:
-            description: IntegrationKitStatus defines the observed state of IntegrationKit
-            properties:
-              artifacts:
-                items:
-                  description: Artifact --
-                  properties:
-                    checksum:
-                      type: string
-                    id:
-                      type: string
-                    location:
-                      type: string
-                    target:
-                      type: string
-                  required:
-                  - id
-                  type: object
-                type: array
-              baseImage:
-                type: string
-              conditions:
-                items:
-                  description: IntegrationKitCondition describes the state of a resource
-                    at a certain point.
-                  properties:
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of integration condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              digest:
-                type: string
-              failure:
-                description: Failure --
-                properties:
-                  reason:
-                    type: string
-                  recovery:
-                    description: FailureRecovery --
-                    properties:
-                      attempt:
-                        type: integer
-                      attemptMax:
-                        type: integer
-                      attemptTime:
-                        format: date-time
-                        type: string
-                    required:
-                    - attempt
-                    - attemptMax
-                    type: object
-                  time:
-                    format: date-time
-                    type: string
-                required:
-                - reason
-                - recovery
-                - time
-                type: object
-              image:
-                type: string
-              phase:
-                description: IntegrationKitPhase --
-                type: string
-              platform:
-                type: string
-              runtimeProvider:
-                description: RuntimeProvider --
-                type: string
-              runtimeVersion:
-                type: string
-              version:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
diff --git a/deploy/crd-integration-platform.yaml b/deploy/crd-integration-platform.yaml
deleted file mode 100644
index 9cd1afd..0000000
--- a/deploy/crd-integration-platform.yaml
+++ /dev/null
@@ -1,401 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: integrationplatforms.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: IntegrationPlatform
-    listKind: IntegrationPlatformList
-    plural: integrationplatforms
-    shortNames:
-    - ip
-    singular: integrationplatform
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The integration platform phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    name: v1
-    schema:
-      openAPIV3Schema:
-        description: IntegrationPlatform is the Schema for the integrationplatforms
-          API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: IntegrationPlatformSpec defines the desired state of IntegrationPlatform
-            properties:
-              build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
-                properties:
-                  baseImage:
-                    type: string
-                  buildStrategy:
-                    description: IntegrationPlatformBuildStrategy enumerates all implemented
-                      build strategies
-                    type: string
-                  httpProxySecret:
-                    type: string
-                  kanikoBuildCache:
-                    type: boolean
-                  maven:
-                    description: MavenSpec --
-                    properties:
-                      localRepository:
-                        type: string
-                      settings:
-                        description: ValueSource --
-                        properties:
-                          configMapKeyRef:
-                            description: Selects a key of a ConfigMap.
-                            properties:
-                              key:
-                                description: The key to select.
-                                type: string
-                              name:
-                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                  TODO: Add other useful fields. apiVersion, kind,
-                                  uid?'
-                                type: string
-                              optional:
-                                description: Specify whether the ConfigMap or its
-                                  key must be defined
-                                type: boolean
-                            required:
-                            - key
-                            type: object
-                          secretKeyRef:
-                            description: Selects a key of a secret.
-                            properties:
-                              key:
-                                description: The key of the secret to select from.  Must
-                                  be a valid secret key.
-                                type: string
-                              name:
-                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                  TODO: Add other useful fields. apiVersion, kind,
-                                  uid?'
-                                type: string
-                              optional:
-                                description: Specify whether the Secret or its key
-                                  must be defined
-                                type: boolean
-                            required:
-                            - key
-                            type: object
-                        type: object
-                      timeout:
-                        type: string
-                    type: object
-                  persistentVolumeClaim:
-                    type: string
-                  properties:
-                    additionalProperties:
-                      type: string
-                    type: object
-                  publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
-                    type: string
-                  registry:
-                    description: IntegrationPlatformRegistrySpec --
-                    properties:
-                      address:
-                        type: string
-                      ca:
-                        type: string
-                      insecure:
-                        type: boolean
-                      organization:
-                        type: string
-                      secret:
-                        type: string
-                    type: object
-                  runtimeProvider:
-                    description: RuntimeProvider --
-                    type: string
-                  runtimeVersion:
-                    type: string
-                  timeout:
-                    type: string
-                type: object
-              cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
-                type: string
-              configuration:
-                items:
-                  description: ConfigurationSpec --
-                  properties:
-                    type:
-                      type: string
-                    value:
-                      type: string
-                  required:
-                  - type
-                  - value
-                  type: object
-                type: array
-              kamelet:
-                description: IntegrationPlatformKameletSpec --
-                properties:
-                  repositories:
-                    items:
-                      description: IntegrationPlatformKameletRepositorySpec --
-                      properties:
-                        uri:
-                          type: string
-                      type: object
-                    type: array
-                type: object
-              profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
-                type: string
-              resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
-                type: object
-              traits:
-                additionalProperties:
-                  description: A TraitSpec contains the configuration of a trait
-                  properties:
-                    configuration:
-                      description: TraitConfiguration --
-                      type: object
-                      x-kubernetes-preserve-unknown-fields: true
-                  required:
-                  - configuration
-                  type: object
-                type: object
-            type: object
-          status:
-            description: IntegrationPlatformStatus defines the observed state of IntegrationPlatform
-            properties:
-              build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
-                properties:
-                  baseImage:
-                    type: string
-                  buildStrategy:
-                    description: IntegrationPlatformBuildStrategy enumerates all implemented
-                      build strategies
-                    type: string
-                  httpProxySecret:
-                    type: string
-                  kanikoBuildCache:
-                    type: boolean
-                  maven:
-                    description: MavenSpec --
-                    properties:
-                      localRepository:
-                        type: string
-                      settings:
-                        description: ValueSource --
-                        properties:
-                          configMapKeyRef:
-                            description: Selects a key of a ConfigMap.
-                            properties:
-                              key:
-                                description: The key to select.
-                                type: string
-                              name:
-                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                  TODO: Add other useful fields. apiVersion, kind,
-                                  uid?'
-                                type: string
-                              optional:
-                                description: Specify whether the ConfigMap or its
-                                  key must be defined
-                                type: boolean
-                            required:
-                            - key
-                            type: object
-                          secretKeyRef:
-                            description: Selects a key of a secret.
-                            properties:
-                              key:
-                                description: The key of the secret to select from.  Must
-                                  be a valid secret key.
-                                type: string
-                              name:
-                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-                                  TODO: Add other useful fields. apiVersion, kind,
-                                  uid?'
-                                type: string
-                              optional:
-                                description: Specify whether the Secret or its key
-                                  must be defined
-                                type: boolean
-                            required:
-                            - key
-                            type: object
-                        type: object
-                      timeout:
-                        type: string
-                    type: object
-                  persistentVolumeClaim:
-                    type: string
-                  properties:
-                    additionalProperties:
-                      type: string
-                    type: object
-                  publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
-                    type: string
-                  registry:
-                    description: IntegrationPlatformRegistrySpec --
-                    properties:
-                      address:
-                        type: string
-                      ca:
-                        type: string
-                      insecure:
-                        type: boolean
-                      organization:
-                        type: string
-                      secret:
-                        type: string
-                    type: object
-                  runtimeProvider:
-                    description: RuntimeProvider --
-                    type: string
-                  runtimeVersion:
-                    type: string
-                  timeout:
-                    type: string
-                type: object
-              cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
-                type: string
-              conditions:
-                items:
-                  description: IntegrationPlatformCondition describes the state of
-                    a resource at a certain point.
-                  properties:
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of integration condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              configuration:
-                items:
-                  description: ConfigurationSpec --
-                  properties:
-                    type:
-                      type: string
-                    value:
-                      type: string
-                  required:
-                  - type
-                  - value
-                  type: object
-                type: array
-              kamelet:
-                description: IntegrationPlatformKameletSpec --
-                properties:
-                  repositories:
-                    items:
-                      description: IntegrationPlatformKameletRepositorySpec --
-                      properties:
-                        uri:
-                          type: string
-                      type: object
-                    type: array
-                type: object
-              phase:
-                description: IntegrationPlatformPhase --
-                type: string
-              profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
-                type: string
-              resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
-                type: object
-              traits:
-                additionalProperties:
-                  description: A TraitSpec contains the configuration of a trait
-                  properties:
-                    configuration:
-                      description: TraitConfiguration --
-                      type: object
-                      x-kubernetes-preserve-unknown-fields: true
-                  required:
-                  - configuration
-                  type: object
-                type: object
-              version:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
diff --git a/deploy/crd-integration.yaml b/deploy/crd-integration.yaml
deleted file mode 100644
index 16178af..0000000
--- a/deploy/crd-integration.yaml
+++ /dev/null
@@ -1,395 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: integrations.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: Integration
-    listKind: IntegrationList
-    plural: integrations
-    shortNames:
-    - it
-    singular: integration
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The integration phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    - description: The integration kit
-      jsonPath: .status.kit
-      name: Kit
-      type: string
-    - description: The number of pods
-      jsonPath: .status.replicas
-      name: Replicas
-      type: integer
-    name: v1
-    schema:
-      openAPIV3Schema:
-        description: Integration is the Schema for the integrations API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: IntegrationSpec defines the desired state of Integration
-            properties:
-              configuration:
-                items:
-                  description: ConfigurationSpec --
-                  properties:
-                    type:
-                      type: string
-                    value:
-                      type: string
-                  required:
-                  - type
-                  - value
-                  type: object
-                type: array
-              dependencies:
-                items:
-                  type: string
-                type: array
-              flows:
-                items:
-                  description: Flow is an unstructured object representing a Camel
-                    Flow in YAML/JSON DSL
-                  type: object
-                  x-kubernetes-preserve-unknown-fields: true
-                type: array
-              kit:
-                type: string
-              profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
-                type: string
-              replicas:
-                format: int32
-                type: integer
-              repositories:
-                items:
-                  type: string
-                type: array
-              resources:
-                items:
-                  description: ResourceSpec --
-                  properties:
-                    compression:
-                      type: boolean
-                    content:
-                      type: string
-                    contentKey:
-                      type: string
-                    contentRef:
-                      type: string
-                    contentType:
-                      type: string
-                    mountPath:
-                      type: string
-                    name:
-                      type: string
-                    rawContent:
-                      format: byte
-                      type: string
-                    type:
-                      description: ResourceType --
-                      type: string
-                  type: object
-                type: array
-              serviceAccountName:
-                type: string
-              sources:
-                items:
-                  description: SourceSpec --
-                  properties:
-                    compression:
-                      type: boolean
-                    content:
-                      type: string
-                    contentKey:
-                      type: string
-                    contentRef:
-                      type: string
-                    contentType:
-                      type: string
-                    interceptors:
-                      description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
-                        uses to pre/post process sources
-                      items:
-                        type: string
-                      type: array
-                    language:
-                      description: Language --
-                      type: string
-                    loader:
-                      description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
-                        that will interpret this source at runtime
-                      type: string
-                    name:
-                      type: string
-                    property-names:
-                      description: List of property names defined in the source (e.g.
-                        if type is "template")
-                      items:
-                        type: string
-                      type: array
-                    rawContent:
-                      format: byte
-                      type: string
-                    type:
-                      description: Type defines the kind of source described by this
-                        object
-                      type: string
-                  type: object
-                type: array
-              traits:
-                additionalProperties:
-                  description: A TraitSpec contains the configuration of a trait
-                  properties:
-                    configuration:
-                      description: TraitConfiguration --
-                      type: object
-                      x-kubernetes-preserve-unknown-fields: true
-                  required:
-                  - configuration
-                  type: object
-                type: object
-            type: object
-          status:
-            description: IntegrationStatus defines the observed state of Integration
-            properties:
-              capabilities:
-                items:
-                  type: string
-                type: array
-              conditions:
-                items:
-                  description: IntegrationCondition describes the state of a resource
-                    at a certain point.
-                  properties:
-                    firstTruthyTime:
-                      description: First time the condition status transitioned to
-                        True.
-                      format: date-time
-                      type: string
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of integration condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              configuration:
-                items:
-                  description: ConfigurationSpec --
-                  properties:
-                    type:
-                      type: string
-                    value:
-                      type: string
-                  required:
-                  - type
-                  - value
-                  type: object
-                type: array
-              dependencies:
-                items:
-                  type: string
-                type: array
-              digest:
-                type: string
-              failure:
-                description: Failure --
-                properties:
-                  reason:
-                    type: string
-                  recovery:
-                    description: FailureRecovery --
-                    properties:
-                      attempt:
-                        type: integer
-                      attemptMax:
-                        type: integer
-                      attemptTime:
-                        format: date-time
-                        type: string
-                    required:
-                    - attempt
-                    - attemptMax
-                    type: object
-                  time:
-                    format: date-time
-                    type: string
-                required:
-                - reason
-                - recovery
-                - time
-                type: object
-              generatedResources:
-                items:
-                  description: ResourceSpec --
-                  properties:
-                    compression:
-                      type: boolean
-                    content:
-                      type: string
-                    contentKey:
-                      type: string
-                    contentRef:
-                      type: string
-                    contentType:
-                      type: string
-                    mountPath:
-                      type: string
-                    name:
-                      type: string
-                    rawContent:
-                      format: byte
-                      type: string
-                    type:
-                      description: ResourceType --
-                      type: string
-                  type: object
-                type: array
-              generatedSources:
-                items:
-                  description: SourceSpec --
-                  properties:
-                    compression:
-                      type: boolean
-                    content:
-                      type: string
-                    contentKey:
-                      type: string
-                    contentRef:
-                      type: string
-                    contentType:
-                      type: string
-                    interceptors:
-                      description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
-                        uses to pre/post process sources
-                      items:
-                        type: string
-                      type: array
-                    language:
-                      description: Language --
-                      type: string
-                    loader:
-                      description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
-                        that will interpret this source at runtime
-                      type: string
-                    name:
-                      type: string
-                    property-names:
-                      description: List of property names defined in the source (e.g.
-                        if type is "template")
-                      items:
-                        type: string
-                      type: array
-                    rawContent:
-                      format: byte
-                      type: string
-                    type:
-                      description: Type defines the kind of source described by this
-                        object
-                      type: string
-                  type: object
-                type: array
-              image:
-                type: string
-              kit:
-                type: string
-              lastInitTimestamp:
-                description: The timestamp representing the last time when this integration
-                  was initialized.
-                format: date-time
-                type: string
-              phase:
-                description: IntegrationPhase --
-                type: string
-              platform:
-                type: string
-              profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
-                type: string
-              replicas:
-                format: int32
-                type: integer
-              runtimeProvider:
-                description: RuntimeProvider --
-                type: string
-              runtimeVersion:
-                type: string
-              selector:
-                type: string
-              version:
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      scale:
-        labelSelectorPath: .status.selector
-        specReplicasPath: .spec.replicas
-        statusReplicasPath: .status.replicas
-      status: {}
diff --git a/deploy/crd-kamelet-binding.yaml b/deploy/crd-kamelet-binding.yaml
deleted file mode 100644
index 2c95ef4..0000000
--- a/deploy/crd-kamelet-binding.yaml
+++ /dev/null
@@ -1,665 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: kameletbindings.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: KameletBinding
-    listKind: KameletBindingList
-    plural: kameletbindings
-    shortNames:
-    - klb
-    singular: kameletbinding
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The Kamelet Binding phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    name: v1alpha1
-    schema:
-      openAPIV3Schema:
-        description: KameletBinding is the Schema for the kamelets binding API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: KameletBindingSpec --
-            properties:
-              integration:
-                description: Integration is an optional integration used to specify
-                  custom parameters
-                properties:
-                  configuration:
-                    items:
-                      description: ConfigurationSpec --
-                      properties:
-                        type:
-                          type: string
-                        value:
-                          type: string
-                      required:
-                      - type
-                      - value
-                      type: object
-                    type: array
-                  dependencies:
-                    items:
-                      type: string
-                    type: array
-                  flows:
-                    items:
-                      description: Flow is an unstructured object representing a Camel
-                        Flow in YAML/JSON DSL
-                      type: object
-                      x-kubernetes-preserve-unknown-fields: true
-                    type: array
-                  kit:
-                    type: string
-                  profile:
-                    description: TraitProfile represents lists of traits that are
-                      enabled for the specific installation/integration
-                    type: string
-                  replicas:
-                    format: int32
-                    type: integer
-                  repositories:
-                    items:
-                      type: string
-                    type: array
-                  resources:
-                    items:
-                      description: ResourceSpec --
-                      properties:
-                        compression:
-                          type: boolean
-                        content:
-                          type: string
-                        contentKey:
-                          type: string
-                        contentRef:
-                          type: string
-                        contentType:
-                          type: string
-                        mountPath:
-                          type: string
-                        name:
-                          type: string
-                        rawContent:
-                          format: byte
-                          type: string
-                        type:
-                          description: ResourceType --
-                          type: string
-                      type: object
-                    type: array
-                  serviceAccountName:
-                    type: string
-                  sources:
-                    items:
-                      description: SourceSpec --
-                      properties:
-                        compression:
-                          type: boolean
-                        content:
-                          type: string
-                        contentKey:
-                          type: string
-                        contentRef:
-                          type: string
-                        contentType:
-                          type: string
-                        interceptors:
-                          description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
-                            uses to pre/post process sources
-                          items:
-                            type: string
-                          type: array
-                        language:
-                          description: Language --
-                          type: string
-                        loader:
-                          description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
-                            that will interpret this source at runtime
-                          type: string
-                        name:
-                          type: string
-                        property-names:
-                          description: List of property names defined in the source
-                            (e.g. if type is "template")
-                          items:
-                            type: string
-                          type: array
-                        rawContent:
-                          format: byte
-                          type: string
-                        type:
-                          description: Type defines the kind of source described by
-                            this object
-                          type: string
-                      type: object
-                    type: array
-                  traits:
-                    additionalProperties:
-                      description: A TraitSpec contains the configuration of a trait
-                      properties:
-                        configuration:
-                          description: TraitConfiguration --
-                          type: object
-                          x-kubernetes-preserve-unknown-fields: true
-                      required:
-                      - configuration
-                      type: object
-                    type: object
-                type: object
-              sink:
-                description: Sink is the destination of the integration defined by
-                  this binding
-                properties:
-                  properties:
-                    description: Properties are a key value representation of endpoint
-                      properties
-                    type: object
-                    x-kubernetes-preserve-unknown-fields: true
-                  ref:
-                    description: Ref can be used to declare a Kubernetes resource
-                      as source/sink endpoint
-                    properties:
-                      apiVersion:
-                        description: API version of the referent.
-                        type: string
-                      fieldPath:
-                        description: 'If referring to a piece of an object instead
-                          of an entire object, this string should contain a valid
-                          JSON/Go field access statement, such as desiredState.manifest.containers[2].
-                          For example, if the object reference is to a container within
-                          a pod, this would take on a value like: "spec.containers{name}"
-                          (where "name" refers to the name of the container that triggered
-                          the event) or if no container name is specified "spec.containers[2]"
-                          (container with index 2 in this pod). This syntax is chosen
-                          only to have some well-defined way of referencing a part
-                          of an object. TODO: this design is not final and this field
-                          is subject to change in the future.'
-                        type: string
-                      kind:
-                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-                        type: string
-                      name:
-                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
-                        type: string
-                      namespace:
-                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
-                        type: string
-                      resourceVersion:
-                        description: 'Specific resourceVersion to which this reference
-                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
-                        type: string
-                      uid:
-                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
-                        type: string
-                    type: object
-                  types:
-                    additionalProperties:
-                      properties:
-                        mediaType:
-                          type: string
-                        schema:
-                          description: JSONSchemaProps is a JSON-Schema following
-                            Specification Draft 4 (http://json-schema.org/).
-                          properties:
-                            $schema:
-                              description: JSONSchemaURL represents a schema url.
-                              type: string
-                            description:
-                              type: string
-                            example:
-                              description: 'JSON represents any valid JSON value.
-                                These types are supported: bool, int64, float64, string,
-                                []interface{}, map[string]interface{} and nil.'
-                              x-kubernetes-preserve-unknown-fields: true
-                            externalDocs:
-                              description: ExternalDocumentation allows referencing
-                                an external resource for extended documentation.
-                              properties:
-                                description:
-                                  type: string
-                                url:
-                                  type: string
-                              type: object
-                            id:
-                              type: string
-                            properties:
-                              additionalProperties:
-                                properties:
-                                  default:
-                                    description: default is a default value for undefined
-                                      object fields.
-                                    x-kubernetes-preserve-unknown-fields: true
-                                  description:
-                                    type: string
-                                  enum:
-                                    items:
-                                      description: 'JSON represents any valid JSON
-                                        value. These types are supported: bool, int64,
-                                        float64, string, []interface{}, map[string]interface{}
-                                        and nil.'
-                                      x-kubernetes-preserve-unknown-fields: true
-                                    type: array
-                                  example:
-                                    description: 'JSON represents any valid JSON value.
-                                      These types are supported: bool, int64, float64,
-                                      string, []interface{}, map[string]interface{}
-                                      and nil.'
-                                    x-kubernetes-preserve-unknown-fields: true
-                                  exclusiveMaximum:
-                                    type: boolean
-                                  exclusiveMinimum:
-                                    type: boolean
-                                  format:
-                                    description: "format is an OpenAPI v3 format string.
-                                      Unknown formats are ignored. The following formats
-                                      are validated: \n - bsonobjectid: a bson object
-                                      ID, i.e. a 24 characters hex string - uri: an
-                                      URI as parsed by Golang net/url.ParseRequestURI
-                                      - email: an email address as parsed by Golang
-                                      net/mail.ParseAddress - hostname: a valid representation
-                                      for an Internet host name, as defined by RFC
-                                      1034, section 3.1 [RFC1034]. - ipv4: an IPv4
-                                      IP as parsed by Golang net.ParseIP - ipv6: an
-                                      IPv6 IP as parsed by Golang net.ParseIP - cidr:
-                                      a CIDR as parsed by Golang net.ParseCIDR - mac:
-                                      a MAC address as parsed by Golang net.ParseMAC
-                                      - uuid: an UUID that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                      - uuid3: an UUID3 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                      - uuid4: an UUID4 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                      - uuid5: an UUID5 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                      - isbn: an ISBN10 or ISBN13 number string like
-                                      \"0321751043\" or \"978-0321751041\" - isbn10:
-                                      an ISBN10 number string like \"0321751043\"
-                                      - isbn13: an ISBN13 number string like \"978-0321751041\"
-                                      - creditcard: a credit card number defined by
-                                      the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
-                                      with any non digit characters mixed in - ssn:
-                                      a U.S. social security number following the
-                                      regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ -
-                                      hexcolor: an hexadecimal color code like \"#FFFFFF:
-                                      following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
-                                      - rgbcolor: an RGB color code like rgb like
-                                      \"rgb(255,255,2559\" - byte: base64 encoded
-                                      binary data - password: any kind of string -
-                                      date: a date string like \"2006-01-02\" as defined
-                                      by full-date in RFC3339 - duration: a duration
-                                      string like \"22 ns\" as parsed by Golang time.ParseDuration
-                                      or compatible with Scala duration format - datetime:
-                                      a date time string like \"2014-12-15T19:30:20.000Z\"
-                                      as defined by date-time in RFC3339."
-                                    type: string
-                                  id:
-                                    type: string
-                                  maxItems:
-                                    format: int64
-                                    type: integer
-                                  maxLength:
-                                    format: int64
-                                    type: integer
-                                  maxProperties:
-                                    format: int64
-                                    type: integer
-                                  maximum:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  minItems:
-                                    format: int64
-                                    type: integer
-                                  minLength:
-                                    format: int64
-                                    type: integer
-                                  minProperties:
-                                    format: int64
-                                    type: integer
-                                  minimum:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  multipleOf:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  nullable:
-                                    type: boolean
-                                  pattern:
-                                    type: string
-                                  title:
-                                    type: string
-                                  type:
-                                    type: string
-                                  uniqueItems:
-                                    type: boolean
-                                  x-descriptors:
-                                    description: The list of descriptors that determine
-                                      which UI components to use on different views
-                                    items:
-                                      type: string
-                                    type: array
-                                type: object
-                              type: object
-                            required:
-                              items:
-                                type: string
-                              type: array
-                            title:
-                              type: string
-                            type:
-                              type: string
-                          type: object
-                      type: object
-                    description: Types defines the schema of the data produced/consumed
-                      by the endpoint
-                    type: object
-                  uri:
-                    description: URI can alternatively be used to specify the (Camel)
-                      endpoint explicitly
-                    type: string
-                type: object
-              source:
-                description: Source is the starting point of the integration defined
-                  by this binding
-                properties:
-                  properties:
-                    description: Properties are a key value representation of endpoint
-                      properties
-                    type: object
-                    x-kubernetes-preserve-unknown-fields: true
-                  ref:
-                    description: Ref can be used to declare a Kubernetes resource
-                      as source/sink endpoint
-                    properties:
-                      apiVersion:
-                        description: API version of the referent.
-                        type: string
-                      fieldPath:
-                        description: 'If referring to a piece of an object instead
-                          of an entire object, this string should contain a valid
-                          JSON/Go field access statement, such as desiredState.manifest.containers[2].
-                          For example, if the object reference is to a container within
-                          a pod, this would take on a value like: "spec.containers{name}"
-                          (where "name" refers to the name of the container that triggered
-                          the event) or if no container name is specified "spec.containers[2]"
-                          (container with index 2 in this pod). This syntax is chosen
-                          only to have some well-defined way of referencing a part
-                          of an object. TODO: this design is not final and this field
-                          is subject to change in the future.'
-                        type: string
-                      kind:
-                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-                        type: string
-                      name:
-                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
-                        type: string
-                      namespace:
-                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
-                        type: string
-                      resourceVersion:
-                        description: 'Specific resourceVersion to which this reference
-                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
-                        type: string
-                      uid:
-                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
-                        type: string
-                    type: object
-                  types:
-                    additionalProperties:
-                      properties:
-                        mediaType:
-                          type: string
-                        schema:
-                          description: JSONSchemaProps is a JSON-Schema following
-                            Specification Draft 4 (http://json-schema.org/).
-                          properties:
-                            $schema:
-                              description: JSONSchemaURL represents a schema url.
-                              type: string
-                            description:
-                              type: string
-                            example:
-                              description: 'JSON represents any valid JSON value.
-                                These types are supported: bool, int64, float64, string,
-                                []interface{}, map[string]interface{} and nil.'
-                              x-kubernetes-preserve-unknown-fields: true
-                            externalDocs:
-                              description: ExternalDocumentation allows referencing
-                                an external resource for extended documentation.
-                              properties:
-                                description:
-                                  type: string
-                                url:
-                                  type: string
-                              type: object
-                            id:
-                              type: string
-                            properties:
-                              additionalProperties:
-                                properties:
-                                  default:
-                                    description: default is a default value for undefined
-                                      object fields.
-                                    x-kubernetes-preserve-unknown-fields: true
-                                  description:
-                                    type: string
-                                  enum:
-                                    items:
-                                      description: 'JSON represents any valid JSON
-                                        value. These types are supported: bool, int64,
-                                        float64, string, []interface{}, map[string]interface{}
-                                        and nil.'
-                                      x-kubernetes-preserve-unknown-fields: true
-                                    type: array
-                                  example:
-                                    description: 'JSON represents any valid JSON value.
-                                      These types are supported: bool, int64, float64,
-                                      string, []interface{}, map[string]interface{}
-                                      and nil.'
-                                    x-kubernetes-preserve-unknown-fields: true
-                                  exclusiveMaximum:
-                                    type: boolean
-                                  exclusiveMinimum:
-                                    type: boolean
-                                  format:
-                                    description: "format is an OpenAPI v3 format string.
-                                      Unknown formats are ignored. The following formats
-                                      are validated: \n - bsonobjectid: a bson object
-                                      ID, i.e. a 24 characters hex string - uri: an
-                                      URI as parsed by Golang net/url.ParseRequestURI
-                                      - email: an email address as parsed by Golang
-                                      net/mail.ParseAddress - hostname: a valid representation
-                                      for an Internet host name, as defined by RFC
-                                      1034, section 3.1 [RFC1034]. - ipv4: an IPv4
-                                      IP as parsed by Golang net.ParseIP - ipv6: an
-                                      IPv6 IP as parsed by Golang net.ParseIP - cidr:
-                                      a CIDR as parsed by Golang net.ParseCIDR - mac:
-                                      a MAC address as parsed by Golang net.ParseMAC
-                                      - uuid: an UUID that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                      - uuid3: an UUID3 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                      - uuid4: an UUID4 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                      - uuid5: an UUID5 that allows uppercase defined
-                                      by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                      - isbn: an ISBN10 or ISBN13 number string like
-                                      \"0321751043\" or \"978-0321751041\" - isbn10:
-                                      an ISBN10 number string like \"0321751043\"
-                                      - isbn13: an ISBN13 number string like \"978-0321751041\"
-                                      - creditcard: a credit card number defined by
-                                      the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
-                                      with any non digit characters mixed in - ssn:
-                                      a U.S. social security number following the
-                                      regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ -
-                                      hexcolor: an hexadecimal color code like \"#FFFFFF:
-                                      following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
-                                      - rgbcolor: an RGB color code like rgb like
-                                      \"rgb(255,255,2559\" - byte: base64 encoded
-                                      binary data - password: any kind of string -
-                                      date: a date string like \"2006-01-02\" as defined
-                                      by full-date in RFC3339 - duration: a duration
-                                      string like \"22 ns\" as parsed by Golang time.ParseDuration
-                                      or compatible with Scala duration format - datetime:
-                                      a date time string like \"2014-12-15T19:30:20.000Z\"
-                                      as defined by date-time in RFC3339."
-                                    type: string
-                                  id:
-                                    type: string
-                                  maxItems:
-                                    format: int64
-                                    type: integer
-                                  maxLength:
-                                    format: int64
-                                    type: integer
-                                  maxProperties:
-                                    format: int64
-                                    type: integer
-                                  maximum:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  minItems:
-                                    format: int64
-                                    type: integer
-                                  minLength:
-                                    format: int64
-                                    type: integer
-                                  minProperties:
-                                    format: int64
-                                    type: integer
-                                  minimum:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  multipleOf:
-                                    description: A Number represents a JSON number
-                                      literal.
-                                    type: string
-                                  nullable:
-                                    type: boolean
-                                  pattern:
-                                    type: string
-                                  title:
-                                    type: string
-                                  type:
-                                    type: string
-                                  uniqueItems:
-                                    type: boolean
-                                  x-descriptors:
-                                    description: The list of descriptors that determine
-                                      which UI components to use on different views
-                                    items:
-                                      type: string
-                                    type: array
-                                type: object
-                              type: object
-                            required:
-                              items:
-                                type: string
-                              type: array
-                            title:
-                              type: string
-                            type:
-                              type: string
-                          type: object
-                      type: object
-                    description: Types defines the schema of the data produced/consumed
-                      by the endpoint
-                    type: object
-                  uri:
-                    description: URI can alternatively be used to specify the (Camel)
-                      endpoint explicitly
-                    type: string
-                type: object
-            type: object
-          status:
-            description: KameletBindingStatus --
-            properties:
-              conditions:
-                description: Conditions --
-                items:
-                  description: KameletBindingCondition describes the state of a resource
-                    at a certain point.
-                  properties:
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of kameletBinding condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              phase:
-                description: Phase --
-                type: string
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}
diff --git a/deploy/crd-kamelet.yaml b/deploy/crd-kamelet.yaml
deleted file mode 100644
index b79e7dc..0000000
--- a/deploy/crd-kamelet.yaml
+++ /dev/null
@@ -1,472 +0,0 @@
-# ---------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ---------------------------------------------------------------------------
-
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
-  labels:
-    app: "camel-k"
-  annotations:
-    controller-gen.kubebuilder.io/version: v0.4.1
-  creationTimestamp: null
-  name: kamelets.camel.apache.org
-spec:
-  group: camel.apache.org
-  names:
-    categories:
-    - kamel
-    - camel
-    kind: Kamelet
-    listKind: KameletList
-    plural: kamelets
-    shortNames:
-    - kl
-    singular: kamelet
-  scope: Namespaced
-  versions:
-  - additionalPrinterColumns:
-    - description: The Kamelet phase
-      jsonPath: .status.phase
-      name: Phase
-      type: string
-    name: v1alpha1
-    schema:
-      openAPIV3Schema:
-        description: Kamelet is the Schema for the kamelets API
-        properties:
-          apiVersion:
-            description: 'APIVersion defines the versioned schema of this representation
-              of an object. Servers should convert recognized schemas to the latest
-              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
-            type: string
-          kind:
-            description: 'Kind is a string value representing the REST resource this
-              object represents. Servers may infer this from the endpoint the client
-              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
-            type: string
-          metadata:
-            type: object
-          spec:
-            description: KameletSpec defines the desired state of Kamelet
-            properties:
-              authorization:
-                description: AuthorizationSpec is TODO (oauth information)
-                type: object
-              definition:
-                description: JSONSchemaProps is a JSON-Schema following Specification
-                  Draft 4 (http://json-schema.org/).
-                properties:
-                  $schema:
-                    description: JSONSchemaURL represents a schema url.
-                    type: string
-                  description:
-                    type: string
-                  example:
-                    description: 'JSON represents any valid JSON value. These types
-                      are supported: bool, int64, float64, string, []interface{},
-                      map[string]interface{} and nil.'
-                    x-kubernetes-preserve-unknown-fields: true
-                  externalDocs:
-                    description: ExternalDocumentation allows referencing an external
-                      resource for extended documentation.
-                    properties:
-                      description:
-                        type: string
-                      url:
-                        type: string
-                    type: object
-                  id:
-                    type: string
-                  properties:
-                    additionalProperties:
-                      properties:
-                        default:
-                          description: default is a default value for undefined object
-                            fields.
-                          x-kubernetes-preserve-unknown-fields: true
-                        description:
-                          type: string
-                        enum:
-                          items:
-                            description: 'JSON represents any valid JSON value. These
-                              types are supported: bool, int64, float64, string, []interface{},
-                              map[string]interface{} and nil.'
-                            x-kubernetes-preserve-unknown-fields: true
-                          type: array
-                        example:
-                          description: 'JSON represents any valid JSON value. These
-                            types are supported: bool, int64, float64, string, []interface{},
-                            map[string]interface{} and nil.'
-                          x-kubernetes-preserve-unknown-fields: true
-                        exclusiveMaximum:
-                          type: boolean
-                        exclusiveMinimum:
-                          type: boolean
-                        format:
-                          description: "format is an OpenAPI v3 format string. Unknown
-                            formats are ignored. The following formats are validated:
-                            \n - bsonobjectid: a bson object ID, i.e. a 24 characters
-                            hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI
-                            - email: an email address as parsed by Golang net/mail.ParseAddress
-                            - hostname: a valid representation for an Internet host
-                            name, as defined by RFC 1034, section 3.1 [RFC1034]. -
-                            ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6:
-                            an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR
-                            as parsed by Golang net.ParseCIDR - mac: a MAC address
-                            as parsed by Golang net.ParseMAC - uuid: an UUID that
-                            allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                            - uuid3: an UUID3 that allows uppercase defined by the
-                            regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                            - uuid4: an UUID4 that allows uppercase defined by the
-                            regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                            - uuid5: an UUID5 that allows uppercase defined by the
-                            regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                            - isbn: an ISBN10 or ISBN13 number string like \"0321751043\"
-                            or \"978-0321751041\" - isbn10: an ISBN10 number string
-                            like \"0321751043\" - isbn13: an ISBN13 number string
-                            like \"978-0321751041\" - creditcard: a credit card number
-                            defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
-                            with any non digit characters mixed in - ssn: a U.S. social
-                            security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[-
-                            ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like
-                            \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
-                            - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\"
-                            - byte: base64 encoded binary data - password: any kind
-                            of string - date: a date string like \"2006-01-02\" as
-                            defined by full-date in RFC3339 - duration: a duration
-                            string like \"22 ns\" as parsed by Golang time.ParseDuration
-                            or compatible with Scala duration format - datetime: a
-                            date time string like \"2014-12-15T19:30:20.000Z\" as
-                            defined by date-time in RFC3339."
-                          type: string
-                        id:
-                          type: string
-                        maxItems:
-                          format: int64
-                          type: integer
-                        maxLength:
-                          format: int64
-                          type: integer
-                        maxProperties:
-                          format: int64
-                          type: integer
-                        maximum:
-                          description: A Number represents a JSON number literal.
-                          type: string
-                        minItems:
-                          format: int64
-                          type: integer
-                        minLength:
-                          format: int64
-                          type: integer
-                        minProperties:
-                          format: int64
-                          type: integer
-                        minimum:
-                          description: A Number represents a JSON number literal.
-                          type: string
-                        multipleOf:
-                          description: A Number represents a JSON number literal.
-                          type: string
-                        nullable:
-                          type: boolean
-                        pattern:
-                          type: string
-                        title:
-                          type: string
-                        type:
-                          type: string
-                        uniqueItems:
-                          type: boolean
-                        x-descriptors:
-                          description: The list of descriptors that determine which
-                            UI components to use on different views
-                          items:
-                            type: string
-                          type: array
-                      type: object
-                    type: object
-                  required:
-                    items:
-                      type: string
-                    type: array
-                  title:
-                    type: string
-                  type:
-                    type: string
-                type: object
-              dependencies:
-                items:
-                  type: string
-                type: array
-              flow:
-                description: Flow is an unstructured object representing a Camel Flow
-                  in YAML/JSON DSL
-                type: object
-                x-kubernetes-preserve-unknown-fields: true
-              sources:
-                items:
-                  description: SourceSpec --
-                  properties:
-                    compression:
-                      type: boolean
-                    content:
-                      type: string
-                    contentKey:
-                      type: string
-                    contentRef:
-                      type: string
-                    contentType:
-                      type: string
-                    interceptors:
-                      description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
-                        uses to pre/post process sources
-                      items:
-                        type: string
-                      type: array
-                    language:
-                      description: Language --
-                      type: string
-                    loader:
-                      description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
-                        that will interpret this source at runtime
-                      type: string
-                    name:
-                      type: string
-                    property-names:
-                      description: List of property names defined in the source (e.g.
-                        if type is "template")
-                      items:
-                        type: string
-                      type: array
-                    rawContent:
-                      format: byte
-                      type: string
-                    type:
-                      description: Type defines the kind of source described by this
-                        object
-                      type: string
-                  type: object
-                type: array
-              types:
-                additionalProperties:
-                  properties:
-                    mediaType:
-                      type: string
-                    schema:
-                      description: JSONSchemaProps is a JSON-Schema following Specification
-                        Draft 4 (http://json-schema.org/).
-                      properties:
-                        $schema:
-                          description: JSONSchemaURL represents a schema url.
-                          type: string
-                        description:
-                          type: string
-                        example:
-                          description: 'JSON represents any valid JSON value. These
-                            types are supported: bool, int64, float64, string, []interface{},
-                            map[string]interface{} and nil.'
-                          x-kubernetes-preserve-unknown-fields: true
-                        externalDocs:
-                          description: ExternalDocumentation allows referencing an
-                            external resource for extended documentation.
-                          properties:
-                            description:
-                              type: string
-                            url:
-                              type: string
-                          type: object
-                        id:
-                          type: string
-                        properties:
-                          additionalProperties:
-                            properties:
-                              default:
-                                description: default is a default value for undefined
-                                  object fields.
-                                x-kubernetes-preserve-unknown-fields: true
-                              description:
-                                type: string
-                              enum:
-                                items:
-                                  description: 'JSON represents any valid JSON value.
-                                    These types are supported: bool, int64, float64,
-                                    string, []interface{}, map[string]interface{}
-                                    and nil.'
-                                  x-kubernetes-preserve-unknown-fields: true
-                                type: array
-                              example:
-                                description: 'JSON represents any valid JSON value.
-                                  These types are supported: bool, int64, float64,
-                                  string, []interface{}, map[string]interface{} and
-                                  nil.'
-                                x-kubernetes-preserve-unknown-fields: true
-                              exclusiveMaximum:
-                                type: boolean
-                              exclusiveMinimum:
-                                type: boolean
-                              format:
-                                description: "format is an OpenAPI v3 format string.
-                                  Unknown formats are ignored. The following formats
-                                  are validated: \n - bsonobjectid: a bson object
-                                  ID, i.e. a 24 characters hex string - uri: an URI
-                                  as parsed by Golang net/url.ParseRequestURI - email:
-                                  an email address as parsed by Golang net/mail.ParseAddress
-                                  - hostname: a valid representation for an Internet
-                                  host name, as defined by RFC 1034, section 3.1 [RFC1034].
-                                  - ipv4: an IPv4 IP as parsed by Golang net.ParseIP
-                                  - ipv6: an IPv6 IP as parsed by Golang net.ParseIP
-                                  - cidr: a CIDR as parsed by Golang net.ParseCIDR
-                                  - mac: a MAC address as parsed by Golang net.ParseMAC
-                                  - uuid: an UUID that allows uppercase defined by
-                                  the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                  - uuid3: an UUID3 that allows uppercase defined
-                                  by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
-                                  - uuid4: an UUID4 that allows uppercase defined
-                                  by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                  - uuid5: an UUID5 that allows uppercase defined
-                                  by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
-                                  - isbn: an ISBN10 or ISBN13 number string like \"0321751043\"
-                                  or \"978-0321751041\" - isbn10: an ISBN10 number
-                                  string like \"0321751043\" - isbn13: an ISBN13 number
-                                  string like \"978-0321751041\" - creditcard: a credit
-                                  card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
-                                  with any non digit characters mixed in - ssn: a
-                                  U.S. social security number following the regex
-                                  ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$ - hexcolor:
-                                  an hexadecimal color code like \"#FFFFFF: following
-                                  the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ -
-                                  rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\"
-                                  - byte: base64 encoded binary data - password: any
-                                  kind of string - date: a date string like \"2006-01-02\"
-                                  as defined by full-date in RFC3339 - duration: a
-                                  duration string like \"22 ns\" as parsed by Golang
-                                  time.ParseDuration or compatible with Scala duration
-                                  format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\"
-                                  as defined by date-time in RFC3339."
-                                type: string
-                              id:
-                                type: string
-                              maxItems:
-                                format: int64
-                                type: integer
-                              maxLength:
-                                format: int64
-                                type: integer
-                              maxProperties:
-                                format: int64
-                                type: integer
-                              maximum:
-                                description: A Number represents a JSON number literal.
-                                type: string
-                              minItems:
-                                format: int64
-                                type: integer
-                              minLength:
-                                format: int64
-                                type: integer
-                              minProperties:
-                                format: int64
-                                type: integer
-                              minimum:
-                                description: A Number represents a JSON number literal.
-                                type: string
-                              multipleOf:
-                                description: A Number represents a JSON number literal.
-                                type: string
-                              nullable:
-                                type: boolean
-                              pattern:
-                                type: string
-                              title:
-                                type: string
-                              type:
-                                type: string
-                              uniqueItems:
-                                type: boolean
-                              x-descriptors:
-                                description: The list of descriptors that determine
-                                  which UI components to use on different views
-                                items:
-                                  type: string
-                                type: array
-                            type: object
-                          type: object
-                        required:
-                          items:
-                            type: string
-                          type: array
-                        title:
-                          type: string
-                        type:
-                          type: string
-                      type: object
-                  type: object
-                type: object
-            type: object
-          status:
-            description: KameletStatus defines the observed state of Kamelet
-            properties:
-              conditions:
-                items:
-                  description: KameletCondition describes the state of a resource
-                    at a certain point.
-                  properties:
-                    lastTransitionTime:
-                      description: Last time the condition transitioned from one status
-                        to another.
-                      format: date-time
-                      type: string
-                    lastUpdateTime:
-                      description: The last time this condition was updated.
-                      format: date-time
-                      type: string
-                    message:
-                      description: A human readable message indicating details about
-                        the transition.
-                      type: string
-                    reason:
-                      description: The reason for the condition's last transition.
-                      type: string
-                    status:
-                      description: Status of the condition, one of True, False, Unknown.
-                      type: string
-                    type:
-                      description: Type of kamelet condition.
-                      type: string
-                  required:
-                  - status
-                  - type
-                  type: object
-                type: array
-              phase:
-                type: string
-              properties:
-                items:
-                  properties:
-                    default:
-                      type: string
-                    name:
-                      type: string
-                  type: object
-                type: array
-            type: object
-        type: object
-    served: true
-    storage: true
-    subresources:
-      status: {}


[camel-k] 05/08: chore(CSV): Fix createdAt field update script on Mac OS

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

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

commit e9dae8bc17ceabef160260f9a984866e6df705f5
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 8 11:05:34 2021 +0100

    chore(CSV): Fix createdAt field update script on Mac OS
---
 script/add_createdAt.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/script/add_createdAt.sh b/script/add_createdAt.sh
index 89324a5..21c4d81 100755
--- a/script/add_createdAt.sh
+++ b/script/add_createdAt.sh
@@ -31,10 +31,15 @@ if [ ! -d "$dir" ]; then
 	exit 1
 fi
 
-created=$(date --utc +%FT%TZ)
+created=$(date -u +%FT%TZ)
 
 set +e
 for file in `find "$dir" -type f`; do
-  sed -i "s/createdAt: .*/createdAt: ${created}/" ${file}
+  if [[ "$OSTYPE" == "linux-gnu"* ]]; then
+    sed -i "s/createdAt: .*/createdAt: ${created}/" "${file}"
+  elif [[ "$OSTYPE" == "darwin"* ]]; then
+    # Mac OSX
+    sed -i '.bak' "s/createdAt: .*/createdAt: ${created}/" "${file}"
+  fi
 done
 set -e