camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From acosent...@apache.org
Subject [09/10] camel git commit: CAMEL-11243 Split camel-kubernates component into 13 (build-configs, builds, configmaps, namespaces, nodes, persistent-volumes, persistent-volumes-claims, pods, replication-controllers, resources-quota, secrets, service-accounts
Date Mon, 29 May 2017 07:34:51 GMT
CAMEL-11243 Split camel-kubernates component into 13 (build-configs, builds, configmaps, namespaces, nodes, persistent-volumes, persistent-volumes-claims, pods, replication-controllers, resources-quota, secrets, service-accounts, services)


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/89eee3b9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/89eee3b9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/89eee3b9

Branch: refs/heads/master
Commit: 89eee3b9f91391ae7db88d4749d50a0e2d3c335f
Parents: a2b42aa
Author: Tomohisa Igarashi <tm.igarashi@gmail.com>
Authored: Sat May 27 21:45:40 2017 +0900
Committer: Andrea Cosentino <ancosen@gmail.com>
Committed: Mon May 29 09:15:38 2017 +0200

----------------------------------------------------------------------
 .../kubernetes-build-configs-component.adoc     |  57 ++++
 .../main/docs/kubernetes-builds-component.adoc  |  58 ++++
 .../src/main/docs/kubernetes-component.adoc     |  25 +-
 .../docs/kubernetes-config-maps-component.adoc  |  57 ++++
 .../docs/kubernetes-namespaces-component.adoc   |  67 +++++
 .../main/docs/kubernetes-nodes-component.adoc   |  67 +++++
 ...tes-persistent-volumes-claims-component.adoc |  58 ++++
 ...kubernetes-persistent-volumes-component.adoc |  58 ++++
 .../main/docs/kubernetes-pods-component.adoc    |  66 +++++
 ...netes-replication-controllers-component.adoc |  67 +++++
 .../kubernetes-resources-quota-component.adoc   |  58 ++++
 .../main/docs/kubernetes-secrets-component.adoc |  58 ++++
 .../docs/kubernetes-services-component.adoc     |  67 +++++
 .../src/main/docs/kubernetes.adoc               | 149 ++++++++++
 .../kubernetes/AbstractKubernetesComponent.java |  39 +++
 .../kubernetes/AbstractKubernetesEndpoint.java  | 131 +++++++++
 .../kubernetes/KubernetesComponent.java         |  20 +-
 .../kubernetes/KubernetesConfiguration.java     |   3 +-
 .../kubernetes/KubernetesEndpoint.java          | 152 +++--------
 .../kubernetes/KubernetesOperations.java        | 104 +++++++
 .../KubernetesBuildConfigsComponent.java        |  28 ++
 .../KubernetesBuildConfigsEndpoint.java         |  51 ++++
 .../KubernetesBuildConfigsProducer.java         | 134 +++++++++
 .../builds/KubernetesBuildsComponent.java       |  29 ++
 .../builds/KubernetesBuildsEndpoint.java        |  50 ++++
 .../builds/KubernetesBuildsProducer.java        | 131 +++++++++
 .../KubernetesConfigMapsComponent.java          |  29 ++
 .../KubernetesConfigMapsEndpoint.java           |  69 +++++
 .../KubernetesConfigMapsProducer.java           | 176 ++++++++++++
 .../consumer/KubernetesNamespacesConsumer.java  | 133 ---------
 .../consumer/KubernetesNodesConsumer.java       | 137 ----------
 .../consumer/KubernetesPodsConsumer.java        | 140 ----------
 ...ubernetesReplicationControllersConsumer.java | 142 ----------
 .../consumer/KubernetesServicesConsumer.java    | 141 ----------
 .../KubernetesNamespacesComponent.java          |  28 ++
 .../KubernetesNamespacesConsumer.java           | 133 +++++++++
 .../KubernetesNamespacesEndpoint.java           |  52 ++++
 .../KubernetesNamespacesProducer.java           | 166 ++++++++++++
 .../nodes/KubernetesNodesComponent.java         |  28 ++
 .../nodes/KubernetesNodesConsumer.java          | 138 ++++++++++
 .../nodes/KubernetesNodesEndpoint.java          |  69 +++++
 .../nodes/KubernetesNodesProducer.java          | 112 ++++++++
 .../KubernetesPersistentVolumesComponent.java   |  28 ++
 .../KubernetesPersistentVolumesEndpoint.java    |  51 ++++
 .../KubernetesPersistentVolumesProducer.java    | 125 +++++++++
 ...ernetesPersistentVolumesClaimsComponent.java |  28 ++
 ...bernetesPersistentVolumesClaimsEndpoint.java |  69 +++++
 ...bernetesPersistentVolumesClaimsProducer.java | 222 +++++++++++++++
 .../pods/KubernetesPodsComponent.java           |  28 ++
 .../kubernetes/pods/KubernetesPodsConsumer.java | 140 ++++++++++
 .../kubernetes/pods/KubernetesPodsEndpoint.java |  69 +++++
 .../kubernetes/pods/KubernetesPodsProducer.java | 202 ++++++++++++++
 .../KubernetesBuildConfigsProducer.java         | 133 ---------
 .../producer/KubernetesBuildsProducer.java      | 129 ---------
 .../producer/KubernetesConfigMapsProducer.java  | 174 ------------
 .../producer/KubernetesNamespacesProducer.java  | 165 ------------
 .../producer/KubernetesNodesProducer.java       | 110 --------
 .../producer/KubernetesOperations.java          | 104 -------
 ...bernetesPersistentVolumesClaimsProducer.java | 221 ---------------
 .../KubernetesPersistentVolumesProducer.java    | 124 ---------
 .../producer/KubernetesPodsProducer.java        | 201 --------------
 ...ubernetesReplicationControllersProducer.java | 268 ------------------
 .../KubernetesResourcesQuotaProducer.java       | 217 ---------------
 .../producer/KubernetesSecretsProducer.java     | 198 --------------
 .../KubernetesServiceAccountsProducer.java      | 198 --------------
 .../producer/KubernetesServicesProducer.java    | 209 --------------
 ...bernetesReplicationControllersComponent.java |  28 ++
 ...ubernetesReplicationControllersConsumer.java | 142 ++++++++++
 ...ubernetesReplicationControllersEndpoint.java |  69 +++++
 ...ubernetesReplicationControllersProducer.java | 269 +++++++++++++++++++
 .../KubernetesResourcesQuotaComponent.java      |  28 ++
 .../KubernetesResourcesQuotaEndpoint.java       |  69 +++++
 .../KubernetesResourcesQuotaProducer.java       | 219 +++++++++++++++
 .../secrets/KubernetesSecretsComponent.java     |  28 ++
 .../secrets/KubernetesSecretsEndpoint.java      |  68 +++++
 .../secrets/KubernetesSecretsProducer.java      | 199 ++++++++++++++
 .../KubernetesServiceAccountsComponent.java     |  28 ++
 .../KubernetesServiceAccountsEndpoint.java      |  51 ++++
 .../KubernetesServiceAccountsProducer.java      | 199 ++++++++++++++
 .../services/KubernetesServicesComponent.java   |  28 ++
 .../services/KubernetesServicesConsumer.java    | 141 ++++++++++
 .../services/KubernetesServicesEndpoint.java    |  52 ++++
 .../services/KubernetesServicesProducer.java    | 210 +++++++++++++++
 .../camel/component/kubernetes-build-configs    |  18 ++
 .../apache/camel/component/kubernetes-builds    |  18 ++
 .../camel/component/kubernetes-config-maps      |  18 ++
 .../camel/component/kubernetes-namespaces       |  18 ++
 .../org/apache/camel/component/kubernetes-nodes |  18 ++
 .../component/kubernetes-persistent-volumes     |  18 ++
 .../kubernetes-persistent-volumes-claims        |  18 ++
 .../org/apache/camel/component/kubernetes-pods  |  18 ++
 .../kubernetes-replication-controllers          |  18 ++
 .../camel/component/kubernetes-resources-quota  |  18 ++
 .../apache/camel/component/kubernetes-secrets   |  18 ++
 .../camel/component/kubernetes-service-accounts |  18 ++
 .../apache/camel/component/kubernetes-services  |  18 ++
 .../KubernetesNamespacesConsumerTest.java       |  12 +-
 .../consumer/KubernetesNodesConsumerTest.java   |  12 +-
 .../consumer/KubernetesPodsConsumerTest.java    |  12 +-
 ...netesReplicationControllersConsumerTest.java |  12 +-
 .../KubernetesServicesConsumerTest.java         |  12 +-
 ...catedKubernetesBuildConfigsProducerTest.java |  39 +++
 .../DeprecatedKubernetesBuildsProducerTest.java |  39 +++
 ...recatedKubernetesConfigMapsProducerTest.java |  48 ++++
 ...recatedKubernetesNamespacesConsumerTest.java |  47 ++++
 ...recatedKubernetesNamespacesProducerTest.java |  48 ++++
 .../DeprecatedKubernetesNodesConsumerTest.java  |  46 ++++
 .../DeprecatedKubernetesNodesProducerTest.java  |  39 +++
 ...etesPersistentVolumesClaimsProducerTest.java |  46 ++++
 ...KubernetesPersistentVolumesProducerTest.java |  39 +++
 .../DeprecatedKubernetesPodsConsumerTest.java   |  46 ++++
 .../DeprecatedKubernetesPodsProducerTest.java   |  48 ++++
 ...netesReplicationControllersConsumerTest.java |  51 ++++
 ...netesReplicationControllersProducerTest.java |  52 ++++
 ...tedKubernetesResourcesQuotaProducerTest.java |  48 ++++
 ...DeprecatedKubernetesSecretsProducerTest.java |  48 ++++
 ...edKubernetesServiceAccountsProducerTest.java |  63 +++++
 ...eprecatedKubernetesServicesConsumerTest.java |  47 ++++
 ...eprecatedKubernetesServicesProducerTest.java |  48 ++++
 .../KubernetesBuildConfigsProducerTest.java     |   4 +-
 .../producer/KubernetesBuildsProducerTest.java  |   4 +-
 .../KubernetesConfigMapsProducerTest.java       |  10 +-
 .../KubernetesNamespacesProducerTest.java       |  10 +-
 .../producer/KubernetesNodesProducerTest.java   |   4 +-
 ...etesPersistentVolumesClaimsProducerTest.java |   8 +-
 ...KubernetesPersistentVolumesProducerTest.java |   4 +-
 .../producer/KubernetesPodsProducerTest.java    |  10 +-
 ...netesReplicationControllersProducerTest.java |  12 +-
 .../KubernetesResourcesQuotaProducerTest.java   |  10 +-
 .../producer/KubernetesSecretsProducerTest.java |  10 +-
 .../KubernetesServiceAccountsProducerTest.java  |  10 +-
 .../KubernetesServicesProducerTest.java         |  10 +-
 components/readme.adoc                          |  43 ++-
 docs/user-manual/en/SUMMARY.md                  |  13 +
 .../example/cdi/kubernetes/Application.java     |   2 +-
 ...sBuildConfigsComponentAutoConfiguration.java | 130 +++++++++
 ...netesBuildConfigsComponentConfiguration.java |  50 ++++
 ...ernetesBuildsComponentAutoConfiguration.java | 129 +++++++++
 .../KubernetesBuildsComponentConfiguration.java |  50 ++++
 ...tesConfigMapsComponentAutoConfiguration.java | 130 +++++++++
 ...ernetesConfigMapsComponentConfiguration.java |  50 ++++
 ...tesNamespacesComponentAutoConfiguration.java | 130 +++++++++
 ...ernetesNamespacesComponentConfiguration.java |  50 ++++
 ...bernetesNodesComponentAutoConfiguration.java | 129 +++++++++
 .../KubernetesNodesComponentConfiguration.java  |  50 ++++
 ...istentVolumesComponentAutoConfiguration.java | 132 +++++++++
 ...PersistentVolumesComponentConfiguration.java |  50 ++++
 ...VolumesClaimsComponentAutoConfiguration.java | 132 +++++++++
 ...tentVolumesClaimsComponentConfiguration.java |  50 ++++
 ...ubernetesPodsComponentAutoConfiguration.java | 129 +++++++++
 .../KubernetesPodsComponentConfiguration.java   |  50 ++++
 ...onControllersComponentAutoConfiguration.java | 132 +++++++++
 ...cationControllersComponentConfiguration.java |  51 ++++
 ...esourcesQuotaComponentAutoConfiguration.java | 132 +++++++++
 ...tesResourcesQuotaComponentConfiguration.java |  50 ++++
 ...rnetesSecretsComponentAutoConfiguration.java | 130 +++++++++
 ...KubernetesSecretsComponentConfiguration.java |  50 ++++
 ...netesServicesComponentAutoConfiguration.java | 130 +++++++++
 ...ubernetesServicesComponentConfiguration.java |  50 ++++
 .../KubernetesComponentConfiguration.java       |   2 +-
 .../cloud/KubernetesCloudAutoConfiguration.java | 107 --------
 ...dditional-spring-configuration-metadata.json |  10 -
 .../main/resources/META-INF/spring.factories    |  26 +-
 .../KubernetesServiceDiscoveryDisabledTest.java |  64 -----
 .../KubernetesServiceDiscoveryEnabledTest.java  |  65 -----
 .../src/test/resources/application.properties   |   1 -
 .../src/test/resources/logback.xml              |  41 ---
 167 files changed, 8847 insertions(+), 3653 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-build-configs-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-build-configs-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-build-configs-component.adoc
new file mode 100644
index 0000000..283adbc
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-build-configs-component.adoc
@@ -0,0 +1,57 @@
+## Kubernetes Build Config Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Build Config* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes build config operations. 
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Build Config component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Build Config endpoint is configured using URI syntax:
+
+    kubernetes-build-configs:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-builds-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-builds-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-builds-component.adoc
new file mode 100644
index 0000000..e8f97e3
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-builds-component.adoc
@@ -0,0 +1,58 @@
+## Kubernetes Builds Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Builds* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes build operations.
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Builds component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Builds endpoint is configured using URI syntax:
+
+    kubernetes-builds:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END
+

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
index 491ee09..946ed99 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
@@ -1,7 +1,28 @@
-## Kubernetes Component
+## Kubernetes Component (deprecated)
 
 *Available as of Camel version 2.17*
 
+[IMPORTANT]
+====================================================================================
+The composite kubernetes component has been deprecated. Use individual
+component splitted as following.
+
+* link:kubernetes.html[Kubernetes Components]
+  ** link:kubernetes-build-configs-component.html[Kubernetes Build Config]
+  ** link:kubernetes-builds-component.html[Kubernetes Build]
+  ** link:kubernetes-config-maps-component.html[Kubernetes ConfigMap]
+  ** link:kubernetes-namespaces-component.html[Kubernetes Namespace]
+  ** link:kubernetes-nodes-component.html[Kubernetes Node]
+  ** link:kubernetes-persistent-volumes-component.html[Kubernetes Persistent Volume]
+  ** link:kubernetes-persistent-volumes-claims-component.html[Kubernetes Persistent Volume Claim]
+  ** link:kubernetes-pods-component.html[Kubernetes Pod]
+  ** link:kubernetes-replication-controllers-component.html[Kubernetes Replication Controller]
+  ** link:kubernetes-resources-quota-component.html[Kubernetes Resource Quota]
+  ** link:kubernetes-secrets-component.html[Kubernetes Secrets]
+  ** link:kubernetes-service-accounts-component.html[Kubernetes Service Account]
+  ** link:kubernetes-services-component.html[Kubernetes Service]
+====================================================================================
+
 The *Kubernetes* component is a component for integrating your
 application with Kubernetes standalone or on top of Openshift. 
 
@@ -227,4 +248,4 @@ from("direct:createPod")
     .toF("kubernetes://%s?oauthToken=%s&category=pods&operation=deletePod", host, authToken);
 -------------------------------------------------------------
 
-By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.
+By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
new file mode 100644
index 0000000..bbf2b9b
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-config-maps-component.adoc
@@ -0,0 +1,57 @@
+## Kubernetes ConfigMap Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes ConfigMap* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes ConfigMap operations.
+
+
+### Component Options
+
+// component options: START
+The Kubernetes ConfigMap component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes ConfigMap endpoint is configured using URI syntax:
+
+    kubernetes-config-maps:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
new file mode 100644
index 0000000..a84c873
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc
@@ -0,0 +1,67 @@
+## Kubernetes Namespaces Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Namespaces* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes namespace operations and a consumer to consume
+kubernetes namespace events.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Namespaces component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Namespaces endpoint is configured using URI syntax:
+
+    kubernetes-namespaces:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (26 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (common) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (common) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (common) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **portName** (common) | The port name used for ServiceCall EIP |  | String
+| **bridgeErrorHandler** (consumer) | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN or ERROR level and ignored. | false | boolean
+| **labelKey** (consumer) | The Consumer Label key when watching at some resources |  | String
+| **labelValue** (consumer) | The Consumer Label value when watching at some resources |  | String
+| **namespace** (consumer) | The namespace |  | String
+| **poolSize** (consumer) | The Consumer pool size | 1 | int
+| **resourceName** (consumer) | The Consumer Resource Name we would like to watch |  | String
+| **exceptionHandler** (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| **exchangePattern** (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
new file mode 100644
index 0000000..dc7419e
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-nodes-component.adoc
@@ -0,0 +1,67 @@
+## Kubernetes Nodes Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Nodes* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes node operations and a consumer to consume kubernetes
+node events.
+ 
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Nodes component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Nodes endpoint is configured using URI syntax:
+
+    kubernetes-nodes:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (26 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (common) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (common) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (common) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **portName** (common) | The port name used for ServiceCall EIP |  | String
+| **bridgeErrorHandler** (consumer) | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN or ERROR level and ignored. | false | boolean
+| **labelKey** (consumer) | The Consumer Label key when watching at some resources |  | String
+| **labelValue** (consumer) | The Consumer Label value when watching at some resources |  | String
+| **namespace** (consumer) | The namespace |  | String
+| **poolSize** (consumer) | The Consumer pool size | 1 | int
+| **resourceName** (consumer) | The Consumer Resource Name we would like to watch |  | String
+| **exceptionHandler** (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| **exchangePattern** (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
new file mode 100644
index 0000000..d4af93d
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-claims-component.adoc
@@ -0,0 +1,58 @@
+## Kubernetes Persistent Volume Claim Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Persistent Volume Claim* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes persistent volume claim operations.
+ 
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Persistent Volume Claim component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Persistent Volume Claim endpoint is configured using URI syntax:
+
+    kubernetes-persistent-volumes-claims:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
new file mode 100644
index 0000000..ad77b52
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-persistent-volumes-component.adoc
@@ -0,0 +1,58 @@
+## Kubernetes Persistent Volume Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Persistent Volume* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes persistent volume operations.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Persistent Volume component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Persistent Volume endpoint is configured using URI syntax:
+
+    kubernetes-persistent-volumes:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
new file mode 100644
index 0000000..09e76fc
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-pods-component.adoc
@@ -0,0 +1,66 @@
+## Kubernetes Pods Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Pods* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes pod operations.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Pods component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Pods endpoint is configured using URI syntax:
+
+    kubernetes-pods:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (26 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (common) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (common) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (common) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **portName** (common) | The port name used for ServiceCall EIP |  | String
+| **bridgeErrorHandler** (consumer) | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN or ERROR level and ignored. | false | boolean
+| **labelKey** (consumer) | The Consumer Label key when watching at some resources |  | String
+| **labelValue** (consumer) | The Consumer Label value when watching at some resources |  | String
+| **namespace** (consumer) | The namespace |  | String
+| **poolSize** (consumer) | The Consumer pool size | 1 | int
+| **resourceName** (consumer) | The Consumer Resource Name we would like to watch |  | String
+| **exceptionHandler** (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| **exchangePattern** (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
new file mode 100644
index 0000000..0854d6b
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-replication-controllers-component.adoc
@@ -0,0 +1,67 @@
+## Kubernetes Replication Controller Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Replication Controller* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes replication controller operations and a consumer to
+consume kubernetes replication controller events.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Replication Controller component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Replication Controller endpoint is configured using URI syntax:
+
+    kubernetes-replication-controllers:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (26 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (common) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (common) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (common) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **portName** (common) | The port name used for ServiceCall EIP |  | String
+| **bridgeErrorHandler** (consumer) | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN or ERROR level and ignored. | false | boolean
+| **labelKey** (consumer) | The Consumer Label key when watching at some resources |  | String
+| **labelValue** (consumer) | The Consumer Label value when watching at some resources |  | String
+| **namespace** (consumer) | The namespace |  | String
+| **poolSize** (consumer) | The Consumer pool size | 1 | int
+| **resourceName** (consumer) | The Consumer Resource Name we would like to watch |  | String
+| **exceptionHandler** (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| **exchangePattern** (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
new file mode 100644
index 0000000..06a16e5
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-resources-quota-component.adoc
@@ -0,0 +1,58 @@
+## Kubernetes Resources Quota Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Resources Quota* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes resource quota operations.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Resources Quota component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Resources Quota endpoint is configured using URI syntax:
+
+    kubernetes-resources-quota:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
new file mode 100644
index 0000000..a1e819b
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-secrets-component.adoc
@@ -0,0 +1,58 @@
+## Kubernetes Secrets Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Secrets* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes secret operations.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Secrets component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Secrets endpoint is configured using URI syntax:
+
+    kubernetes-secrets:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (18 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (producer) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (producer) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (producer) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **portName** (producer) | The port name used for ServiceCall EIP |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
new file mode 100644
index 0000000..e77e469
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc
@@ -0,0 +1,67 @@
+## Kubernetes Services Component
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes Services* component is one of link:kubernetes.html[Kubernetes Components] which
+provides a producer to execute kubernetes service operations and a consumer to consume kubernetes
+service events.
+
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Services component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Services endpoint is configured using URI syntax:
+
+    kubernetes-services:masterUrl
+
+with the following path and query parameters:
+
+#### Path Parameters (1 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **masterUrl** | *Required* Kubernetes Master url |  | String
+|=======================================================================
+
+#### Query Parameters (26 parameters):
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|=======================================================================
+| Name | Description | Default | Type
+| **apiVersion** (common) | The Kubernetes API Version to use |  | String
+| **dnsDomain** (common) | The dns domain used for ServiceCall EIP |  | String
+| **kubernetesClient** (common) | Default KubernetesClient to use if provided |  | DefaultKubernetesClient
+| **portName** (common) | The port name used for ServiceCall EIP |  | String
+| **bridgeErrorHandler** (consumer) | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN or ERROR level and ignored. | false | boolean
+| **labelKey** (consumer) | The Consumer Label key when watching at some resources |  | String
+| **labelValue** (consumer) | The Consumer Label value when watching at some resources |  | String
+| **namespace** (consumer) | The namespace |  | String
+| **poolSize** (consumer) | The Consumer pool size | 1 | int
+| **resourceName** (consumer) | The Consumer Resource Name we would like to watch |  | String
+| **exceptionHandler** (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| **exchangePattern** (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| **operation** (producer) | Producer operation to do on Kubernetes |  | String
+| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| **caCertData** (security) | The CA Cert Data |  | String
+| **caCertFile** (security) | The CA Cert File |  | String
+| **clientCertData** (security) | The Client Cert Data |  | String
+| **clientCertFile** (security) | The Client Cert File |  | String
+| **clientKeyAlgo** (security) | The Key Algorithm used by the client |  | String
+| **clientKeyData** (security) | The Client Key data |  | String
+| **clientKeyFile** (security) | The Client Key file |  | String
+| **clientKeyPassphrase** (security) | The Client Key Passphrase |  | String
+| **oauthToken** (security) | The Auth Token |  | String
+| **password** (security) | Password to connect to Kubernetes |  | String
+| **trustCerts** (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| **username** (security) | Username to connect to Kubernetes |  | String
+|=======================================================================
+// endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/docs/kubernetes.adoc
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes.adoc b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
new file mode 100644
index 0000000..a91b07c
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
@@ -0,0 +1,149 @@
+## Kubernetes Components
+
+*Available as of Camel version 2.17*
+
+The *Kubernetes* components integrate your application with Kubernetes standalone or on top of Openshift. 
+
+The camel-kubernetes consists of 13 components:
+
+* link:kubernetes-config-maps-component.html[Kubernetes ConfigMap]
+* link:kubernetes-namespaces-component.html[Kubernetes Namespace]
+* link:kubernetes-nodes-component.html[Kubernetes Node]
+* link:kubernetes-persistent-volumes-component.html[Kubernetes Persistent Volume]
+* link:kubernetes-persistent-volumes-claims-component.html[Kubernetes Persistent Volume Claim]
+* link:kubernetes-pods-component.html[Kubernetes Pod]
+* link:kubernetes-replication-controllers-component.html[Kubernetes Replication Controller]
+* link:kubernetes-resources-quota-component.html[Kubernetes Resource Quota]
+* link:kubernetes-secrets-component.html[Kubernetes Secrets]
+* link:kubernetes-service-accounts-component.html[Kubernetes Service Account]
+* link:kubernetes-services-component.html[Kubernetes Service]
+
+In OpenShift, also:
+
+* link:kubernetes-build-configs-component.html[Kubernetes Build Config]
+* link:kubernetes-builds-component.html[Kubernetes Build]
+
+
+
+Maven users will need to add the following dependency to
+their `pom.xml` for this component:
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-kubernetes</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+
+### Headers
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Name |Type |Description
+
+|CamelKubernetesOperation |String |The Producer operation
+
+|CamelKubernetesNamespaceName |String |The Namespace name
+
+|CamelKubernetesNamespaceLabels |Map |The Namespace Labels
+
+|CamelKubernetesServiceLabels |Map |The Service labels
+
+|CamelKubernetesServiceName |String |The Service name
+
+|CamelKubernetesServiceSpec |io.fabric8.kubernetes.api.model.ServiceSpec |The Spec for a Service
+
+|CamelKubernetesReplicationControllersLabels |Map |Replication controller labels
+
+|CamelKubernetesReplicationControllerName |String |Replication controller name
+
+|CamelKubernetesReplicationControllerSpec |io.fabric8.kubernetes.api.model.ReplicationControllerSpec |The Spec for a Replication Controller
+
+|CamelKubernetesReplicationControllerReplicas |Integer |The number of replicas for a Replication Controller during the Scale operation
+
+|CamelKubernetesPodsLabels |Map |Pod labels
+
+|CamelKubernetesPodName |String |Pod name
+
+|CamelKubernetesPodSpec |io.fabric8.kubernetes.api.model.PodSpec |The Spec for a Pod
+
+|CamelKubernetesPersistentVolumesLabels |Map |Persistent Volume labels
+
+|CamelKubernetesPersistentVolumesName |String |Persistent Volume name
+
+|CamelKubernetesPersistentVolumesClaimsLabels |Map |Persistent Volume Claim labels
+
+|CamelKubernetesPersistentVolumesClaimsName |String |Persistent Volume Claim name
+
+|CamelKubernetesPersistentVolumesClaimsSpec |io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec |The Spec for a Persistent Volume claim
+
+|CamelKubernetesSecretsLabels |Map |Secret labels
+
+|CamelKubernetesSecretsName |String |Secret name
+
+|CamelKubernetesSecret |io.fabric8.kubernetes.api.model.Secret |A Secret Object
+
+|CamelKubernetesResourcesQuotaLabels |Map |Resource Quota labels
+
+|CamelKubernetesResourcesQuotaName |String |Resource Quota name
+
+|CamelKubernetesResourceQuotaSpec |io.fabric8.kubernetes.api.model.ResourceQuotaSpec |The Spec for a Resource Quota
+
+|CamelKubernetesServiceAccountsLabels |Map |Service Account labels
+
+|CamelKubernetesServiceAccountName |String |Service Account name
+
+|CamelKubernetesServiceAccount |io.fabric8.kubernetes.api.model.ServiceAccount |A Service Account object
+
+|CamelKubernetesNodesLabels |Map |Node labels
+
+|CamelKubernetesNodeName |String |Node name
+
+|CamelKubernetesBuildsLabels |Map |Openshift Build labels
+
+|CamelKubernetesBuildName |String |Openshift Build name
+
+|CamelKubernetesBuildConfigsLabels |Map |Openshift Build Config labels
+
+|CamelKubernetesBuildConfigName |String |Openshift Build Config name
+
+|CamelKubernetesEventAction |io.fabric8.kubernetes.client.Watcher.Action |Action watched by the consumer
+
+|CamelKubernetesEventTimestamp |String |Timestamp of the action watched by the consumer
+
+|CamelKubernetesConfigMapName |String |ConfigMap name
+
+|CamelKubernetesConfigMapsLabels |Map |ConfigMap labels
+
+|CamelKubernetesConfigData |Map |ConfigMap Data
+|=======================================================================
+
+
+### Usage
+
+#### Producer examples
+
+Here we show some examples of producer using camel-kubernetes.
+
+#### Create a pod
+
+[source,java]
+-------------------------------------------------------------
+from("direct:createPod")
+    .toF("kubernetes-pods://%s?oauthToken=%s&operation=createPod", host, authToken);
+-------------------------------------------------------------
+
+By using the KubernetesConstants.KUBERNETES_POD_SPEC header you can specify your PodSpec and pass it to this operation.
+
+#### Delete a pod
+
+[source,java]
+-------------------------------------------------------------
+from("direct:createPod")
+    .toF("kubernetes-pods://%s?oauthToken=%s&operation=deletePod", host, authToken);
+-------------------------------------------------------------
+
+By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesComponent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesComponent.java
new file mode 100644
index 0000000..da98c16
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesComponent.java
@@ -0,0 +1,39 @@
+/**
+ * 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.
+ */
+package org.apache.camel.component.kubernetes;
+
+import java.util.Map;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.util.ObjectHelper;
+
+public abstract class AbstractKubernetesComponent extends DefaultComponent {
+
+    protected Endpoint createEndpoint(String uri, String remaining,
+            Map<String, Object> parameters) throws Exception {
+        KubernetesConfiguration config = new KubernetesConfiguration();
+        setProperties(config, parameters);
+        config.setMasterUrl(remaining);
+        if (ObjectHelper.isEmpty(config.getMasterUrl())) {
+            throw new IllegalArgumentException("Master URL must be specified");
+        }
+        return doCreateEndpoint(uri, remaining, config);
+    }
+
+    protected abstract AbstractKubernetesEndpoint doCreateEndpoint(String uri, String remaining, KubernetesConfiguration config) throws Exception;
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java
new file mode 100644
index 0000000..f48bf6d
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/AbstractKubernetesEndpoint.java
@@ -0,0 +1,131 @@
+/**
+ * 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.
+ */
+package org.apache.camel.component.kubernetes;
+
+import java.util.concurrent.ExecutorService;
+
+import io.fabric8.kubernetes.client.Config;
+import io.fabric8.kubernetes.client.ConfigBuilder;
+import io.fabric8.kubernetes.client.DefaultKubernetesClient;
+import io.fabric8.kubernetes.client.KubernetesClient;
+
+import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The base kubernetes endpoint allows to work with Kubernetes PaaS.
+ */
+public abstract class AbstractKubernetesEndpoint extends DefaultEndpoint {
+
+    private static final Logger LOG = LoggerFactory.getLogger(AbstractKubernetesEndpoint.class);
+
+    @UriParam
+    private KubernetesConfiguration configuration;
+
+    private transient KubernetesClient client;
+
+    public AbstractKubernetesEndpoint(String uri, AbstractKubernetesComponent component, KubernetesConfiguration config) {
+        super(uri, component);
+        this.configuration = config;
+    }
+
+    @Override
+    public boolean isSingleton() {
+        return false;
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+        client = configuration.getKubernetesClient() != null ? configuration.getKubernetesClient() : createKubernetesClient();
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        super.doStop();
+        if (client != null) {
+            client.close();
+        }
+    }
+    
+    public ExecutorService createExecutor() {
+        return getCamelContext().getExecutorServiceManager().newFixedThreadPool(this, "KubernetesConsumer", configuration.getPoolSize());
+    }
+
+    public KubernetesClient getKubernetesClient() {
+        return client;
+    }
+
+    /**
+     * The kubernetes Configuration
+     */
+    public KubernetesConfiguration getKubernetesConfiguration() {
+        return configuration;
+    }
+
+    private KubernetesClient createKubernetesClient() {
+        LOG.debug("Create Kubernetes client with the following Configuration: " + configuration.toString());
+
+        ConfigBuilder builder = new ConfigBuilder();
+        builder.withMasterUrl(configuration.getMasterUrl());
+        if ((ObjectHelper.isNotEmpty(configuration.getUsername())
+                && ObjectHelper.isNotEmpty(configuration.getPassword()))
+                && ObjectHelper.isEmpty(configuration.getOauthToken())) {
+            builder.withUsername(configuration.getUsername());
+            builder.withPassword(configuration.getPassword());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getOauthToken())) {
+            builder.withOauthToken(configuration.getOauthToken());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getCaCertData())) {
+            builder.withCaCertData(configuration.getCaCertData());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getCaCertFile())) {
+            builder.withCaCertFile(configuration.getCaCertFile());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientCertData())) {
+            builder.withClientCertData(configuration.getClientCertData());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientCertFile())) {
+            builder.withClientCertFile(configuration.getClientCertFile());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getApiVersion())) {
+            builder.withApiVersion(configuration.getApiVersion());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientKeyAlgo())) {
+            builder.withClientKeyAlgo(configuration.getClientKeyAlgo());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientKeyData())) {
+            builder.withClientKeyData(configuration.getClientKeyData());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientKeyFile())) {
+            builder.withClientKeyFile(configuration.getClientKeyFile());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getClientKeyPassphrase())) {
+            builder.withClientKeyPassphrase(configuration.getClientKeyPassphrase());
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getTrustCerts())) {
+            builder.withTrustCerts(configuration.getTrustCerts());
+        }
+
+        Config conf = builder.build();
+        return new DefaultKubernetesClient(conf);
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesComponent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesComponent.java
index b402f20..1b94147 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesComponent.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesComponent.java
@@ -16,22 +16,16 @@
  */
 package org.apache.camel.component.kubernetes;
 
-import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
-import org.apache.camel.util.ObjectHelper;
+@Deprecated
+public class KubernetesComponent extends AbstractKubernetesComponent {
 
-public class KubernetesComponent extends DefaultComponent {
+    private static final Logger LOG = LoggerFactory.getLogger(KubernetesComponent.class);
 
-    protected Endpoint createEndpoint(String uri, String remaining,
-            Map<String, Object> parameters) throws Exception {
-        KubernetesConfiguration config = new KubernetesConfiguration();
-        setProperties(config, parameters);
-        config.setMasterUrl(remaining);
-        if (ObjectHelper.isEmpty(config.getMasterUrl())) {
-            throw new IllegalArgumentException("Master URL must be specified");
-        }
+    protected AbstractKubernetesEndpoint doCreateEndpoint(String uri, String remaining, KubernetesConfiguration config) throws Exception {
+        LOG.warn("The syntax 'kubernetes://{}' has been deprecated. Use 'kubernetes-{}://{}' instead.", remaining, config.getCategory(), remaining);
         KubernetesEndpoint endpoint = new KubernetesEndpoint(uri, this, config);
         return endpoint;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
index d2288f0..b31af49 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConfiguration.java
@@ -30,8 +30,7 @@ public class KubernetesConfiguration {
     @Metadata(required = "true")
     private String masterUrl;
 
-    @UriParam(enums = "namespaces,services,replicationControllers,pods,persistentVolumes,persistentVolumesClaims,secrets,resourcesQuota,serviceAccounts,nodes,configMaps,builds,buildConfigs")
-    @Metadata(required = "true")
+    @Deprecated
     private String category;
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/89eee3b9/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesEndpoint.java
index 9927cbc..80ffacc 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesEndpoint.java
@@ -16,34 +16,28 @@
  */
 package org.apache.camel.component.kubernetes;
 
-import java.util.concurrent.ExecutorService;
-
-import io.fabric8.kubernetes.client.Config;
-import io.fabric8.kubernetes.client.ConfigBuilder;
-import io.fabric8.kubernetes.client.DefaultKubernetesClient;
-import io.fabric8.kubernetes.client.KubernetesClient;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
-import org.apache.camel.component.kubernetes.consumer.KubernetesNamespacesConsumer;
-import org.apache.camel.component.kubernetes.consumer.KubernetesNodesConsumer;
-import org.apache.camel.component.kubernetes.consumer.KubernetesPodsConsumer;
-import org.apache.camel.component.kubernetes.consumer.KubernetesReplicationControllersConsumer;
-import org.apache.camel.component.kubernetes.consumer.KubernetesServicesConsumer;
-import org.apache.camel.component.kubernetes.producer.KubernetesBuildConfigsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesBuildsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesConfigMapsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesNamespacesProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesNodesProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesPersistentVolumesClaimsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesPersistentVolumesProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesPodsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesReplicationControllersProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesResourcesQuotaProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesSecretsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesServiceAccountsProducer;
-import org.apache.camel.component.kubernetes.producer.KubernetesServicesProducer;
-import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.component.kubernetes.build_configs.KubernetesBuildConfigsProducer;
+import org.apache.camel.component.kubernetes.builds.KubernetesBuildsProducer;
+import org.apache.camel.component.kubernetes.config_maps.KubernetesConfigMapsProducer;
+import org.apache.camel.component.kubernetes.namespaces.KubernetesNamespacesConsumer;
+import org.apache.camel.component.kubernetes.namespaces.KubernetesNamespacesProducer;
+import org.apache.camel.component.kubernetes.nodes.KubernetesNodesConsumer;
+import org.apache.camel.component.kubernetes.nodes.KubernetesNodesProducer;
+import org.apache.camel.component.kubernetes.persistent_volumes.KubernetesPersistentVolumesProducer;
+import org.apache.camel.component.kubernetes.persistent_volumes_claims.KubernetesPersistentVolumesClaimsProducer;
+import org.apache.camel.component.kubernetes.pods.KubernetesPodsConsumer;
+import org.apache.camel.component.kubernetes.pods.KubernetesPodsProducer;
+import org.apache.camel.component.kubernetes.replication_controllers.KubernetesReplicationControllersConsumer;
+import org.apache.camel.component.kubernetes.replication_controllers.KubernetesReplicationControllersProducer;
+import org.apache.camel.component.kubernetes.resources_quota.KubernetesResourcesQuotaProducer;
+import org.apache.camel.component.kubernetes.secrets.KubernetesSecretsProducer;
+import org.apache.camel.component.kubernetes.service_accounts.KubernetesServiceAccountsProducer;
+import org.apache.camel.component.kubernetes.services.KubernetesServicesConsumer;
+import org.apache.camel.component.kubernetes.services.KubernetesServicesProducer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
@@ -51,30 +45,29 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * The kubernetes component allows to work with Kubernetes PaaS.
+ * Use splitted kubernetes components instead of this composite component.
+ * @deprecated
  */
+@Deprecated
 @UriEndpoint(firstVersion = "2.17.0", scheme = "kubernetes", title = "Kubernetes", syntax = "kubernetes:masterUrl", label = "container,cloud,paas")
-public class KubernetesEndpoint extends DefaultEndpoint {
+public class KubernetesEndpoint extends AbstractKubernetesEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(KubernetesEndpoint.class);
 
-    @UriParam
-    private KubernetesConfiguration configuration;
-
-    private transient KubernetesClient client;
+    @UriParam(enums = "namespaces,services,replicationControllers,pods,persistentVolumes,persistentVolumesClaims,secrets,resourcesQuota,serviceAccounts,nodes,configMaps,builds,buildConfigs")
+    @Metadata(required = "true")
+    private String category;
 
     public KubernetesEndpoint(String uri, KubernetesComponent component, KubernetesConfiguration config) {
-        super(uri, component);
-        this.configuration = config;
+        super(uri, component, config);
+        category = config.getCategory();
     }
 
     @Override
     public Producer createProducer() throws Exception {
-        if (ObjectHelper.isEmpty(configuration.getCategory())) {
+        if (ObjectHelper.isEmpty(category)) {
             throw new IllegalArgumentException("A producer category must be specified");
         } else {
-            String category = configuration.getCategory();
-
             switch (category) {
 
             case KubernetesCategory.NAMESPACES:
@@ -124,11 +117,9 @@ public class KubernetesEndpoint extends DefaultEndpoint {
 
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
-        if (ObjectHelper.isEmpty(configuration.getCategory())) {
+        if (ObjectHelper.isEmpty(category)) {
             throw new IllegalArgumentException("A consumer category must be specified");
         } else {
-            String category = configuration.getCategory();
-
             switch (category) {
 
             case KubernetesCategory.PODS:
@@ -152,86 +143,15 @@ public class KubernetesEndpoint extends DefaultEndpoint {
         }
     }
 
-    @Override
-    public boolean isSingleton() {
-        return false;
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        super.doStart();
-        client = configuration.getKubernetesClient() != null ? configuration.getKubernetesClient() : createKubernetesClient();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        super.doStop();
-        if (client != null) {
-            client.close();
-        }
-    }
-    
-    public ExecutorService createExecutor() {
-        return getCamelContext().getExecutorServiceManager().newFixedThreadPool(this, "KubernetesConsumer", configuration.getPoolSize());
-    }
-
-    public KubernetesClient getKubernetesClient() {
-        return client;
-    }
-
     /**
-     * The kubernetes Configuration
+     * Kubernetes Producer and Consumer category
      */
-    public KubernetesConfiguration getKubernetesConfiguration() {
-        return configuration;
+    public String getCategory() {
+        return category;
     }
 
-    private KubernetesClient createKubernetesClient() {
-        LOG.debug("Create Kubernetes client with the following Configuration: " + configuration.toString());
-
-        ConfigBuilder builder = new ConfigBuilder();
-        builder.withMasterUrl(configuration.getMasterUrl());
-        if ((ObjectHelper.isNotEmpty(configuration.getUsername())
-                && ObjectHelper.isNotEmpty(configuration.getPassword()))
-                && ObjectHelper.isEmpty(configuration.getOauthToken())) {
-            builder.withUsername(configuration.getUsername());
-            builder.withPassword(configuration.getPassword());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getOauthToken())) {
-            builder.withOauthToken(configuration.getOauthToken());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getCaCertData())) {
-            builder.withCaCertData(configuration.getCaCertData());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getCaCertFile())) {
-            builder.withCaCertFile(configuration.getCaCertFile());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientCertData())) {
-            builder.withClientCertData(configuration.getClientCertData());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientCertFile())) {
-            builder.withClientCertFile(configuration.getClientCertFile());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getApiVersion())) {
-            builder.withApiVersion(configuration.getApiVersion());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientKeyAlgo())) {
-            builder.withClientKeyAlgo(configuration.getClientKeyAlgo());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientKeyData())) {
-            builder.withClientKeyData(configuration.getClientKeyData());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientKeyFile())) {
-            builder.withClientKeyFile(configuration.getClientKeyFile());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getClientKeyPassphrase())) {
-            builder.withClientKeyPassphrase(configuration.getClientKeyPassphrase());
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getTrustCerts())) {
-            builder.withTrustCerts(configuration.getTrustCerts());
-        }
-
-        Config conf = builder.build();
-        return new DefaultKubernetesClient(conf);
+    public void setCategory(String category) {
+        this.category = category;
     }
+
 }


Mime
View raw message