You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/12/05 12:09:29 UTC

(camel) branch main updated (45013eb6f8d -> c0851aff6aa)

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

acosentino pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 45013eb6f8d CAMEL-20181: camel-openapi-java - refactor tests to support both OpenAPI 3.0 and 3.1 (#12316)
     new f988910dba1 CAMEL-20185 - Kubernetes CronJob Component
     new 50afe55c57a CAMEL-20185 - Kubernetes CronJob Component - Docs
     new fb2f18d8731 CAMEL-20185 - Kubernetes CronJob Component - Added to kit
     new c0851aff6aa CAMEL-20185 - Kubernetes CronJob Component - Docs

The 4 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:
 .../org/apache/camel/catalog/components.properties |   1 +
 .../catalog/components/kubernetes-cronjob.json     |  59 +++++++
 .../KubernetesCronJobComponentConfigurer.java      |  66 ++++++++
 .../KubernetesCronJobEndpointConfigurer.java       | 157 ++++++++++++++++++
 .../KubernetesCronJobEndpointUriFactory.java       | 102 ++++++++++++
 .../services/org/apache/camel/component.properties |   2 +-
 .../org/apache/camel/component/kubernetes-cronjob  |   2 +
 .../camel/configurer/kubernetes-cronjob-component  |   2 +
 .../camel/configurer/kubernetes-cronjob-endpoint   |   2 +
 .../camel/urifactory/kubernetes-cronjob-endpoint   |   2 +
 .../kubernetes/cronjob/kubernetes-cronjob.json     |  59 +++++++
 .../main/docs/kubernetes-cronjob-component.adoc    |  46 ++++++
 .../component/kubernetes/KubernetesConstants.java  |  11 ++
 .../component/kubernetes/KubernetesOperations.java |  10 +-
 .../cronjob/KubernetesCronJobComponent.java        |  30 ++++
 .../cronjob/KubernetesCronJobEndpoint.java         |  52 ++++++
 .../cronjob/KubernetesCronJobProducer.java         | 175 +++++++++++++++++++++
 .../producer/KubernetesCronJobProducerTest.java    | 174 ++++++++++++++++++++
 .../org/apache/camel/main/components.properties    |   1 +
 .../camel-component-known-dependencies.properties  |   1 +
 20 files changed, 952 insertions(+), 2 deletions(-)
 create mode 100644 catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
 create mode 100644 components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
 create mode 100644 components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
 create mode 100644 components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
 create mode 100644 components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component/kubernetes-cronjob
 create mode 100644 components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-component
 create mode 100644 components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-endpoint
 create mode 100644 components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/urifactory/kubernetes-cronjob-endpoint
 create mode 100644 components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
 create mode 100644 components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponent.java
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
 create mode 100644 components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java


(camel) 04/04: CAMEL-20185 - Kubernetes CronJob Component - Docs

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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c0851aff6aa7ae28f1239164a43d9e1c5f1697ed
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Dec 5 12:37:24 2023 +0100

    CAMEL-20185 - Kubernetes CronJob Component - Docs
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../catalog/components/kubernetes-cronjob.json     | 65 ++++++++-----------
 .../KubernetesCronJobComponentConfigurer.java      |  6 --
 .../KubernetesCronJobEndpointConfigurer.java       | 72 ----------------------
 .../KubernetesCronJobEndpointUriFactory.java       | 14 +----
 .../kubernetes/cronjob/kubernetes-cronjob.json     | 65 ++++++++-----------
 .../main/docs/kubernetes-cronjob-component.adoc    |  4 +-
 .../cronjob/KubernetesCronJobEndpoint.java         |  2 +-
 .../cronjob/KubernetesCronJobProducer.java         |  8 ---
 8 files changed, 56 insertions(+), 180 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
index 2c2b6fb8bde..981f54529fa 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
@@ -18,14 +18,13 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": false,
+    "producerOnly": true,
     "lenientProperties": false
   },
   "componentProperties": {
-    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
-    "bridgeErrorHandler": { "index": 1, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
-    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
+    "lazyStartProducer": { "index": 1, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 2, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
   },
   "headers": {
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION" },
@@ -34,39 +33,27 @@
     "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a Job.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC" }
   },
   "properties": {
-    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
-    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
-    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
-    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
-    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
-    "portName": { "index": 5, "kind": "parameter", "displayName": "Port Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
-    "portProtocol": { "index": 6, "kind": "parameter", "displayName": "Port Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
-    "crdGroup": { "index": 7, "kind": "parameter", "displayName": "Crd Group", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Group we would like to watch" },
-    "crdName": { "index": 8, "kind": "parameter", "displayName": "Crd Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource name we would like to watch" },
-    "crdPlural": { "index": 9, "kind": "parameter", "displayName": "Crd Plural", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Plural we would like to watch" },
-    "crdScope": { "index": 10, "kind": "parameter", "displayName": "Crd Scope", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Scope we would like to watch" },
-    "crdVersion": { "index": 11, "kind": "parameter", "displayName": "Crd Version", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Version we would like to watch" },
-    "labelKey": { "index": 12, "kind": "parameter", "displayName": "Label Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label key when watching at some resources" },
-    "labelValue": { "index": 13, "kind": "parameter", "displayName": "Label Value", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label value when watching at some resources" },
-    "poolSize": { "index": 14, "kind": "parameter", "displayName": "Pool Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer pool size" },
-    "resourceName": { "index": 15, "kind": "parameter", "displayName": "Resource Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Resource Name we would like to watch" },
-    "bridgeErrorHandler": { "index": 16, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 17, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 18, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
-    "operation": { "index": 19, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
-    "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
-    "connectionTimeout": { "index": 21, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes  [...]
-    "caCertData": { "index": 22, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
-    "caCertFile": { "index": 23, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
-    "clientCertData": { "index": 24, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
-    "clientCertFile": { "index": 25, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
-    "clientKeyAlgo": { "index": 26, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
-    "clientKeyData": { "index": 27, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
-    "clientKeyFile": { "index": 28, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
-    "clientKeyPassphrase": { "index": 29, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
-    "oauthToken": { "index": 30, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
-    "password": { "index": 31, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
-    "trustCerts": { "index": 32, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
-    "username": { "index": 33, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
+    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
+    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
+    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
+    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
+    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
+    "operation": { "index": 5, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
+    "portName": { "index": 6, "kind": "parameter", "displayName": "Port Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
+    "portProtocol": { "index": 7, "kind": "parameter", "displayName": "Port Protocol", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
+    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
+    "connectionTimeout": { "index": 9, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes A [...]
+    "caCertData": { "index": 10, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
+    "caCertFile": { "index": 11, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
+    "clientCertData": { "index": 12, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
+    "clientCertFile": { "index": 13, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
+    "clientKeyAlgo": { "index": 14, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
+    "clientKeyData": { "index": 15, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
+    "clientKeyFile": { "index": 16, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
+    "clientKeyPassphrase": { "index": 17, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
+    "oauthToken": { "index": 18, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
+    "password": { "index": 19, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
+    "trustCerts": { "index": 20, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
+    "username": { "index": 21, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
   }
 }
diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
index 12cd5e1fb7e..45d9fc6cc39 100644
--- a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
@@ -23,8 +23,6 @@ public class KubernetesCronJobComponentConfigurer extends PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "kubernetesclient":
         case "kubernetesClient": target.setKubernetesClient(property(camelContext, io.fabric8.kubernetes.client.KubernetesClient.class, value)); return true;
         case "lazystartproducer":
@@ -43,8 +41,6 @@ public class KubernetesCronJobComponentConfigurer extends PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return boolean.class;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
         case "kubernetesclient":
         case "kubernetesClient": return io.fabric8.kubernetes.client.KubernetesClient.class;
         case "lazystartproducer":
@@ -59,8 +55,6 @@ public class KubernetesCronJobComponentConfigurer extends PropertyConfigurerSupp
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return target.isAutowiredEnabled();
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "kubernetesclient":
         case "kubernetesClient": return target.getKubernetesClient();
         case "lazystartproducer":
diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
index b7cde6001e2..f104ccec19a 100644
--- a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
@@ -23,8 +23,6 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "apiversion":
         case "apiVersion": target.getConfiguration().setApiVersion(property(camelContext, java.lang.String.class, value)); return true;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "cacertdata":
         case "caCertData": target.getConfiguration().setCaCertData(property(camelContext, java.lang.String.class, value)); return true;
         case "cacertfile":
@@ -43,28 +41,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "clientKeyPassphrase": target.getConfiguration().setClientKeyPassphrase(property(camelContext, java.lang.String.class, value)); return true;
         case "connectiontimeout":
         case "connectionTimeout": target.getConfiguration().setConnectionTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "crdgroup":
-        case "crdGroup": target.getConfiguration().setCrdGroup(property(camelContext, java.lang.String.class, value)); return true;
-        case "crdname":
-        case "crdName": target.getConfiguration().setCrdName(property(camelContext, java.lang.String.class, value)); return true;
-        case "crdplural":
-        case "crdPlural": target.getConfiguration().setCrdPlural(property(camelContext, java.lang.String.class, value)); return true;
-        case "crdscope":
-        case "crdScope": target.getConfiguration().setCrdScope(property(camelContext, java.lang.String.class, value)); return true;
-        case "crdversion":
-        case "crdVersion": target.getConfiguration().setCrdVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "dnsdomain":
         case "dnsDomain": target.getConfiguration().setDnsDomain(property(camelContext, java.lang.String.class, value)); return true;
-        case "exceptionhandler":
-        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
-        case "exchangepattern":
-        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
         case "kubernetesclient":
         case "kubernetesClient": target.getConfiguration().setKubernetesClient(property(camelContext, io.fabric8.kubernetes.client.KubernetesClient.class, value)); return true;
-        case "labelkey":
-        case "labelKey": target.getConfiguration().setLabelKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "labelvalue":
-        case "labelValue": target.getConfiguration().setLabelValue(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "namespace": target.getConfiguration().setNamespace(property(camelContext, java.lang.String.class, value)); return true;
@@ -72,14 +52,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "oauthToken": target.getConfiguration().setOauthToken(property(camelContext, java.lang.String.class, value)); return true;
         case "operation": target.getConfiguration().setOperation(property(camelContext, java.lang.String.class, value)); return true;
         case "password": target.getConfiguration().setPassword(property(camelContext, java.lang.String.class, value)); return true;
-        case "poolsize":
-        case "poolSize": target.getConfiguration().setPoolSize(property(camelContext, int.class, value)); return true;
         case "portname":
         case "portName": target.getConfiguration().setPortName(property(camelContext, java.lang.String.class, value)); return true;
         case "portprotocol":
         case "portProtocol": target.getConfiguration().setPortProtocol(property(camelContext, java.lang.String.class, value)); return true;
-        case "resourcename":
-        case "resourceName": target.getConfiguration().setResourceName(property(camelContext, java.lang.String.class, value)); return true;
         case "trustcerts":
         case "trustCerts": target.getConfiguration().setTrustCerts(property(camelContext, java.lang.Boolean.class, value)); return true;
         case "username": target.getConfiguration().setUsername(property(camelContext, java.lang.String.class, value)); return true;
@@ -92,8 +68,6 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "apiversion":
         case "apiVersion": return java.lang.String.class;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
         case "cacertdata":
         case "caCertData": return java.lang.String.class;
         case "cacertfile":
@@ -112,28 +86,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "clientKeyPassphrase": return java.lang.String.class;
         case "connectiontimeout":
         case "connectionTimeout": return java.lang.Integer.class;
-        case "crdgroup":
-        case "crdGroup": return java.lang.String.class;
-        case "crdname":
-        case "crdName": return java.lang.String.class;
-        case "crdplural":
-        case "crdPlural": return java.lang.String.class;
-        case "crdscope":
-        case "crdScope": return java.lang.String.class;
-        case "crdversion":
-        case "crdVersion": return java.lang.String.class;
         case "dnsdomain":
         case "dnsDomain": return java.lang.String.class;
-        case "exceptionhandler":
-        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
-        case "exchangepattern":
-        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
         case "kubernetesclient":
         case "kubernetesClient": return io.fabric8.kubernetes.client.KubernetesClient.class;
-        case "labelkey":
-        case "labelKey": return java.lang.String.class;
-        case "labelvalue":
-        case "labelValue": return java.lang.String.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "namespace": return java.lang.String.class;
@@ -141,14 +97,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "oauthToken": return java.lang.String.class;
         case "operation": return java.lang.String.class;
         case "password": return java.lang.String.class;
-        case "poolsize":
-        case "poolSize": return int.class;
         case "portname":
         case "portName": return java.lang.String.class;
         case "portprotocol":
         case "portProtocol": return java.lang.String.class;
-        case "resourcename":
-        case "resourceName": return java.lang.String.class;
         case "trustcerts":
         case "trustCerts": return java.lang.Boolean.class;
         case "username": return java.lang.String.class;
@@ -162,8 +114,6 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "apiversion":
         case "apiVersion": return target.getConfiguration().getApiVersion();
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "cacertdata":
         case "caCertData": return target.getConfiguration().getCaCertData();
         case "cacertfile":
@@ -182,28 +132,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "clientKeyPassphrase": return target.getConfiguration().getClientKeyPassphrase();
         case "connectiontimeout":
         case "connectionTimeout": return target.getConfiguration().getConnectionTimeout();
-        case "crdgroup":
-        case "crdGroup": return target.getConfiguration().getCrdGroup();
-        case "crdname":
-        case "crdName": return target.getConfiguration().getCrdName();
-        case "crdplural":
-        case "crdPlural": return target.getConfiguration().getCrdPlural();
-        case "crdscope":
-        case "crdScope": return target.getConfiguration().getCrdScope();
-        case "crdversion":
-        case "crdVersion": return target.getConfiguration().getCrdVersion();
         case "dnsdomain":
         case "dnsDomain": return target.getConfiguration().getDnsDomain();
-        case "exceptionhandler":
-        case "exceptionHandler": return target.getExceptionHandler();
-        case "exchangepattern":
-        case "exchangePattern": return target.getExchangePattern();
         case "kubernetesclient":
         case "kubernetesClient": return target.getConfiguration().getKubernetesClient();
-        case "labelkey":
-        case "labelKey": return target.getConfiguration().getLabelKey();
-        case "labelvalue":
-        case "labelValue": return target.getConfiguration().getLabelValue();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "namespace": return target.getConfiguration().getNamespace();
@@ -211,14 +143,10 @@ public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSuppo
         case "oauthToken": return target.getConfiguration().getOauthToken();
         case "operation": return target.getConfiguration().getOperation();
         case "password": return target.getConfiguration().getPassword();
-        case "poolsize":
-        case "poolSize": return target.getConfiguration().getPoolSize();
         case "portname":
         case "portName": return target.getConfiguration().getPortName();
         case "portprotocol":
         case "portProtocol": return target.getConfiguration().getPortProtocol();
-        case "resourcename":
-        case "resourceName": return target.getConfiguration().getResourceName();
         case "trustcerts":
         case "trustCerts": return target.getConfiguration().getTrustCerts();
         case "username": return target.getConfiguration().getUsername();
diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
index 197107226c3..bc643c678bb 100644
--- a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
@@ -21,9 +21,8 @@ public class KubernetesCronJobEndpointUriFactory extends org.apache.camel.suppor
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(34);
+        Set<String> props = new HashSet<>(22);
         props.add("apiVersion");
-        props.add("bridgeErrorHandler");
         props.add("caCertData");
         props.add("caCertFile");
         props.add("clientCertData");
@@ -33,27 +32,16 @@ public class KubernetesCronJobEndpointUriFactory extends org.apache.camel.suppor
         props.add("clientKeyFile");
         props.add("clientKeyPassphrase");
         props.add("connectionTimeout");
-        props.add("crdGroup");
-        props.add("crdName");
-        props.add("crdPlural");
-        props.add("crdScope");
-        props.add("crdVersion");
         props.add("dnsDomain");
-        props.add("exceptionHandler");
-        props.add("exchangePattern");
         props.add("kubernetesClient");
-        props.add("labelKey");
-        props.add("labelValue");
         props.add("lazyStartProducer");
         props.add("masterUrl");
         props.add("namespace");
         props.add("oauthToken");
         props.add("operation");
         props.add("password");
-        props.add("poolSize");
         props.add("portName");
         props.add("portProtocol");
-        props.add("resourceName");
         props.add("trustCerts");
         props.add("username");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
index 2c2b6fb8bde..981f54529fa 100644
--- a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
@@ -18,14 +18,13 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": false,
+    "producerOnly": true,
     "lenientProperties": false
   },
   "componentProperties": {
-    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
-    "bridgeErrorHandler": { "index": 1, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
-    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
+    "lazyStartProducer": { "index": 1, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 2, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
   },
   "headers": {
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION" },
@@ -34,39 +33,27 @@
     "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a Job.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC" }
   },
   "properties": {
-    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
-    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
-    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
-    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
-    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
-    "portName": { "index": 5, "kind": "parameter", "displayName": "Port Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
-    "portProtocol": { "index": 6, "kind": "parameter", "displayName": "Port Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
-    "crdGroup": { "index": 7, "kind": "parameter", "displayName": "Crd Group", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Group we would like to watch" },
-    "crdName": { "index": 8, "kind": "parameter", "displayName": "Crd Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource name we would like to watch" },
-    "crdPlural": { "index": 9, "kind": "parameter", "displayName": "Crd Plural", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Plural we would like to watch" },
-    "crdScope": { "index": 10, "kind": "parameter", "displayName": "Crd Scope", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Scope we would like to watch" },
-    "crdVersion": { "index": 11, "kind": "parameter", "displayName": "Crd Version", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Version we would like to watch" },
-    "labelKey": { "index": 12, "kind": "parameter", "displayName": "Label Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label key when watching at some resources" },
-    "labelValue": { "index": 13, "kind": "parameter", "displayName": "Label Value", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label value when watching at some resources" },
-    "poolSize": { "index": 14, "kind": "parameter", "displayName": "Pool Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer pool size" },
-    "resourceName": { "index": 15, "kind": "parameter", "displayName": "Resource Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Resource Name we would like to watch" },
-    "bridgeErrorHandler": { "index": 16, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 17, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 18, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
-    "operation": { "index": 19, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
-    "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
-    "connectionTimeout": { "index": 21, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes  [...]
-    "caCertData": { "index": 22, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
-    "caCertFile": { "index": 23, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
-    "clientCertData": { "index": 24, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
-    "clientCertFile": { "index": 25, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
-    "clientKeyAlgo": { "index": 26, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
-    "clientKeyData": { "index": 27, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
-    "clientKeyFile": { "index": 28, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
-    "clientKeyPassphrase": { "index": 29, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
-    "oauthToken": { "index": 30, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
-    "password": { "index": 31, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
-    "trustCerts": { "index": 32, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
-    "username": { "index": 33, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
+    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
+    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
+    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
+    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
+    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
+    "operation": { "index": 5, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
+    "portName": { "index": 6, "kind": "parameter", "displayName": "Port Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
+    "portProtocol": { "index": 7, "kind": "parameter", "displayName": "Port Protocol", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
+    "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
+    "connectionTimeout": { "index": 9, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes A [...]
+    "caCertData": { "index": 10, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
+    "caCertFile": { "index": 11, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
+    "clientCertData": { "index": 12, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
+    "clientCertFile": { "index": 13, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
+    "clientKeyAlgo": { "index": 14, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
+    "clientKeyData": { "index": 15, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
+    "clientKeyFile": { "index": 16, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
+    "clientKeyPassphrase": { "index": 17, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
+    "oauthToken": { "index": 18, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
+    "password": { "index": 19, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
+    "trustCerts": { "index": 20, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
+    "username": { "index": 21, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
   }
 }
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
index 2981a00b6a8..da26d3ab656 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
@@ -6,7 +6,7 @@
 :since: 4.3
 :supportlevel: Preview
 :tabs-sync-option:
-:component-header: Both producer and consumer are supported
+:component-header: Only producer is supported
 //Manually maintained attributes
 :group: Kubernetes
 :camel-spring-boot-name: kubernetes
@@ -16,7 +16,7 @@
 *{component-header}*
 
 The Kubernetes CronJob component is one of xref:kubernetes-summary.adoc[Kubernetes Components] which
-provides a producer to execute kubernetes CronJob operations and a consumer to consume events related to CronJob objects.
+provides a producer to execute kubernetes CronJob operations.
 
 
 // component-configure options: START
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
index 9d70577d89b..eec046ad2e9 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
@@ -31,7 +31,7 @@ import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_C
  * Perform operations on Kubernetes CronJob.
  */
 @UriEndpoint(firstVersion = "4.3.0", scheme = SCHEME_CRON_JOB, title = "Kubernetes Cronjob",
-             syntax = "kubernetes-cronjob:masterUrl",
+             syntax = "kubernetes-cronjob:masterUrl", producerOnly = true,
              category = { Category.CONTAINER, Category.CLOUD }, headersClass = KubernetesConstants.class)
 public class KubernetesCronJobEndpoint extends AbstractKubernetesEndpoint {
 
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
index 49c182d6b82..025c452ba8c 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
@@ -97,7 +97,6 @@ public class KubernetesCronJobProducer extends DefaultProducer {
     protected void doListCronJobByLabel(Exchange exchange) {
         Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, Map.class);
         if (ObjectHelper.isEmpty(labels)) {
-            LOG.error("List CronJob by labels require specify a labels set");
             throw new IllegalArgumentException("Cron Job by labels require specify a labels set");
         }
 
@@ -113,11 +112,9 @@ public class KubernetesCronJobProducer extends DefaultProducer {
         String cronjobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, String.class);
         String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
         if (ObjectHelper.isEmpty(cronjobName)) {
-            LOG.error("Get a specific cronjob require specify a cronjob name");
             throw new IllegalArgumentException("Get a specific cronjob require specify a cronnjob name");
         }
         if (ObjectHelper.isEmpty(namespaceName)) {
-            LOG.error("Get a specific cronjob require specify a namespace name");
             throw new IllegalArgumentException("Get a specific cronjob require specify a namespace name");
         }
         CronJob cronJob = getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespaceName)
@@ -140,17 +137,14 @@ public class KubernetesCronJobProducer extends DefaultProducer {
         String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
         CronJobSpec cronjobSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_SPEC, CronJobSpec.class);
         if (ObjectHelper.isEmpty(cronjobName)) {
-            LOG.error("{} a specific cronjob require specify a cronjob name", operationName);
             throw new IllegalArgumentException(
                     String.format("%s a specific cronjob require specify a cronjob name", operationName));
         }
         if (ObjectHelper.isEmpty(namespaceName)) {
-            LOG.error("{} a specific cronjob require specify a namespace name", operationName);
             throw new IllegalArgumentException(
                     String.format("%s a specific cronjob require specify a namespace name", operationName));
         }
         if (ObjectHelper.isEmpty(cronjobSpec)) {
-            LOG.error("{} a specific cronjob require specify a cronjob spec bean", operationName);
             throw new IllegalArgumentException(
                     String.format("%s a specific cronjob require specify a cronjob spec bean", operationName));
         }
@@ -168,11 +162,9 @@ public class KubernetesCronJobProducer extends DefaultProducer {
         String cronjobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, String.class);
         String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
         if (ObjectHelper.isEmpty(cronjobName)) {
-            LOG.error("Delete a specific cronjob require specify a cronjob name");
             throw new IllegalArgumentException("Delete a specific cronjob require specify a cronjob name");
         }
         if (ObjectHelper.isEmpty(namespaceName)) {
-            LOG.error("Delete a specific cronjob require specify a namespace name");
             throw new IllegalArgumentException("Delete a specific cronjob require specify a namespace name");
         }
 


(camel) 01/04: CAMEL-20185 - Kubernetes CronJob Component

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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f988910dba122e25150b0fd7e2cfbbf822a54937
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Dec 5 11:53:18 2023 +0100

    CAMEL-20185 - Kubernetes CronJob Component
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../KubernetesCronJobComponentConfigurer.java      |  72 +++++++
 .../KubernetesCronJobEndpointConfigurer.java       | 229 +++++++++++++++++++++
 .../KubernetesCronJobEndpointUriFactory.java       | 114 ++++++++++
 .../services/org/apache/camel/component.properties |   2 +-
 .../org/apache/camel/component/kubernetes-cronjob  |   2 +
 .../camel/configurer/kubernetes-cronjob-component  |   2 +
 .../camel/configurer/kubernetes-cronjob-endpoint   |   2 +
 .../camel/urifactory/kubernetes-cronjob-endpoint   |   2 +
 .../kubernetes/cronjob/kubernetes-cronjob.json     |  72 +++++++
 .../component/kubernetes/KubernetesConstants.java  |  11 +
 .../component/kubernetes/KubernetesOperations.java |  10 +-
 .../cronjob/KubernetesCronJobComponent.java        |  30 +++
 .../cronjob/KubernetesCronJobEndpoint.java         |  52 +++++
 .../cronjob/KubernetesCronJobProducer.java         | 183 ++++++++++++++++
 .../producer/KubernetesCronJobProducerTest.java    | 174 ++++++++++++++++
 15 files changed, 955 insertions(+), 2 deletions(-)

diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
new file mode 100644
index 00000000000..12cd5e1fb7e
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponentConfigurer.java
@@ -0,0 +1,72 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.kubernetes.cronjob;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class KubernetesCronJobComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        KubernetesCronJobComponent target = (KubernetesCronJobComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "kubernetesclient":
+        case "kubernetesClient": target.setKubernetesClient(property(camelContext, io.fabric8.kubernetes.client.KubernetesClient.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public String[] getAutowiredNames() {
+        return new String[]{"kubernetesClient"};
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return boolean.class;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return boolean.class;
+        case "kubernetesclient":
+        case "kubernetesClient": return io.fabric8.kubernetes.client.KubernetesClient.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        KubernetesCronJobComponent target = (KubernetesCronJobComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+        case "kubernetesclient":
+        case "kubernetesClient": return target.getKubernetesClient();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        default: return null;
+        }
+    }
+}
+
diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
new file mode 100644
index 00000000000..b7cde6001e2
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointConfigurer.java
@@ -0,0 +1,229 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.kubernetes.cronjob;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class KubernetesCronJobEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        KubernetesCronJobEndpoint target = (KubernetesCronJobEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "apiVersion": target.getConfiguration().setApiVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "cacertdata":
+        case "caCertData": target.getConfiguration().setCaCertData(property(camelContext, java.lang.String.class, value)); return true;
+        case "cacertfile":
+        case "caCertFile": target.getConfiguration().setCaCertFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientcertdata":
+        case "clientCertData": target.getConfiguration().setClientCertData(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientcertfile":
+        case "clientCertFile": target.getConfiguration().setClientCertFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeyalgo":
+        case "clientKeyAlgo": target.getConfiguration().setClientKeyAlgo(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeydata":
+        case "clientKeyData": target.getConfiguration().setClientKeyData(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeyfile":
+        case "clientKeyFile": target.getConfiguration().setClientKeyFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeypassphrase":
+        case "clientKeyPassphrase": target.getConfiguration().setClientKeyPassphrase(property(camelContext, java.lang.String.class, value)); return true;
+        case "connectiontimeout":
+        case "connectionTimeout": target.getConfiguration().setConnectionTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "crdgroup":
+        case "crdGroup": target.getConfiguration().setCrdGroup(property(camelContext, java.lang.String.class, value)); return true;
+        case "crdname":
+        case "crdName": target.getConfiguration().setCrdName(property(camelContext, java.lang.String.class, value)); return true;
+        case "crdplural":
+        case "crdPlural": target.getConfiguration().setCrdPlural(property(camelContext, java.lang.String.class, value)); return true;
+        case "crdscope":
+        case "crdScope": target.getConfiguration().setCrdScope(property(camelContext, java.lang.String.class, value)); return true;
+        case "crdversion":
+        case "crdVersion": target.getConfiguration().setCrdVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "dnsdomain":
+        case "dnsDomain": target.getConfiguration().setDnsDomain(property(camelContext, java.lang.String.class, value)); return true;
+        case "exceptionhandler":
+        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
+        case "exchangepattern":
+        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
+        case "kubernetesclient":
+        case "kubernetesClient": target.getConfiguration().setKubernetesClient(property(camelContext, io.fabric8.kubernetes.client.KubernetesClient.class, value)); return true;
+        case "labelkey":
+        case "labelKey": target.getConfiguration().setLabelKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "labelvalue":
+        case "labelValue": target.getConfiguration().setLabelValue(property(camelContext, java.lang.String.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "namespace": target.getConfiguration().setNamespace(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthtoken":
+        case "oauthToken": target.getConfiguration().setOauthToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "operation": target.getConfiguration().setOperation(property(camelContext, java.lang.String.class, value)); return true;
+        case "password": target.getConfiguration().setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "poolsize":
+        case "poolSize": target.getConfiguration().setPoolSize(property(camelContext, int.class, value)); return true;
+        case "portname":
+        case "portName": target.getConfiguration().setPortName(property(camelContext, java.lang.String.class, value)); return true;
+        case "portprotocol":
+        case "portProtocol": target.getConfiguration().setPortProtocol(property(camelContext, java.lang.String.class, value)); return true;
+        case "resourcename":
+        case "resourceName": target.getConfiguration().setResourceName(property(camelContext, java.lang.String.class, value)); return true;
+        case "trustcerts":
+        case "trustCerts": target.getConfiguration().setTrustCerts(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "username": target.getConfiguration().setUsername(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "apiVersion": return java.lang.String.class;
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return boolean.class;
+        case "cacertdata":
+        case "caCertData": return java.lang.String.class;
+        case "cacertfile":
+        case "caCertFile": return java.lang.String.class;
+        case "clientcertdata":
+        case "clientCertData": return java.lang.String.class;
+        case "clientcertfile":
+        case "clientCertFile": return java.lang.String.class;
+        case "clientkeyalgo":
+        case "clientKeyAlgo": return java.lang.String.class;
+        case "clientkeydata":
+        case "clientKeyData": return java.lang.String.class;
+        case "clientkeyfile":
+        case "clientKeyFile": return java.lang.String.class;
+        case "clientkeypassphrase":
+        case "clientKeyPassphrase": return java.lang.String.class;
+        case "connectiontimeout":
+        case "connectionTimeout": return java.lang.Integer.class;
+        case "crdgroup":
+        case "crdGroup": return java.lang.String.class;
+        case "crdname":
+        case "crdName": return java.lang.String.class;
+        case "crdplural":
+        case "crdPlural": return java.lang.String.class;
+        case "crdscope":
+        case "crdScope": return java.lang.String.class;
+        case "crdversion":
+        case "crdVersion": return java.lang.String.class;
+        case "dnsdomain":
+        case "dnsDomain": return java.lang.String.class;
+        case "exceptionhandler":
+        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
+        case "exchangepattern":
+        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+        case "kubernetesclient":
+        case "kubernetesClient": return io.fabric8.kubernetes.client.KubernetesClient.class;
+        case "labelkey":
+        case "labelKey": return java.lang.String.class;
+        case "labelvalue":
+        case "labelValue": return java.lang.String.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        case "namespace": return java.lang.String.class;
+        case "oauthtoken":
+        case "oauthToken": return java.lang.String.class;
+        case "operation": return java.lang.String.class;
+        case "password": return java.lang.String.class;
+        case "poolsize":
+        case "poolSize": return int.class;
+        case "portname":
+        case "portName": return java.lang.String.class;
+        case "portprotocol":
+        case "portProtocol": return java.lang.String.class;
+        case "resourcename":
+        case "resourceName": return java.lang.String.class;
+        case "trustcerts":
+        case "trustCerts": return java.lang.Boolean.class;
+        case "username": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        KubernetesCronJobEndpoint target = (KubernetesCronJobEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "apiVersion": return target.getConfiguration().getApiVersion();
+        case "bridgeerrorhandler":
+        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+        case "cacertdata":
+        case "caCertData": return target.getConfiguration().getCaCertData();
+        case "cacertfile":
+        case "caCertFile": return target.getConfiguration().getCaCertFile();
+        case "clientcertdata":
+        case "clientCertData": return target.getConfiguration().getClientCertData();
+        case "clientcertfile":
+        case "clientCertFile": return target.getConfiguration().getClientCertFile();
+        case "clientkeyalgo":
+        case "clientKeyAlgo": return target.getConfiguration().getClientKeyAlgo();
+        case "clientkeydata":
+        case "clientKeyData": return target.getConfiguration().getClientKeyData();
+        case "clientkeyfile":
+        case "clientKeyFile": return target.getConfiguration().getClientKeyFile();
+        case "clientkeypassphrase":
+        case "clientKeyPassphrase": return target.getConfiguration().getClientKeyPassphrase();
+        case "connectiontimeout":
+        case "connectionTimeout": return target.getConfiguration().getConnectionTimeout();
+        case "crdgroup":
+        case "crdGroup": return target.getConfiguration().getCrdGroup();
+        case "crdname":
+        case "crdName": return target.getConfiguration().getCrdName();
+        case "crdplural":
+        case "crdPlural": return target.getConfiguration().getCrdPlural();
+        case "crdscope":
+        case "crdScope": return target.getConfiguration().getCrdScope();
+        case "crdversion":
+        case "crdVersion": return target.getConfiguration().getCrdVersion();
+        case "dnsdomain":
+        case "dnsDomain": return target.getConfiguration().getDnsDomain();
+        case "exceptionhandler":
+        case "exceptionHandler": return target.getExceptionHandler();
+        case "exchangepattern":
+        case "exchangePattern": return target.getExchangePattern();
+        case "kubernetesclient":
+        case "kubernetesClient": return target.getConfiguration().getKubernetesClient();
+        case "labelkey":
+        case "labelKey": return target.getConfiguration().getLabelKey();
+        case "labelvalue":
+        case "labelValue": return target.getConfiguration().getLabelValue();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        case "namespace": return target.getConfiguration().getNamespace();
+        case "oauthtoken":
+        case "oauthToken": return target.getConfiguration().getOauthToken();
+        case "operation": return target.getConfiguration().getOperation();
+        case "password": return target.getConfiguration().getPassword();
+        case "poolsize":
+        case "poolSize": return target.getConfiguration().getPoolSize();
+        case "portname":
+        case "portName": return target.getConfiguration().getPortName();
+        case "portprotocol":
+        case "portProtocol": return target.getConfiguration().getPortProtocol();
+        case "resourcename":
+        case "resourceName": return target.getConfiguration().getResourceName();
+        case "trustcerts":
+        case "trustCerts": return target.getConfiguration().getTrustCerts();
+        case "username": return target.getConfiguration().getUsername();
+        default: return null;
+        }
+    }
+}
+
diff --git a/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
new file mode 100644
index 00000000000..197107226c3
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpointUriFactory.java
@@ -0,0 +1,114 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.kubernetes.cronjob;
+
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.spi.EndpointUriFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+public class KubernetesCronJobEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
+
+    private static final String BASE = ":masterUrl";
+
+    private static final Set<String> PROPERTY_NAMES;
+    private static final Set<String> SECRET_PROPERTY_NAMES;
+    private static final Set<String> MULTI_VALUE_PREFIXES;
+    static {
+        Set<String> props = new HashSet<>(34);
+        props.add("apiVersion");
+        props.add("bridgeErrorHandler");
+        props.add("caCertData");
+        props.add("caCertFile");
+        props.add("clientCertData");
+        props.add("clientCertFile");
+        props.add("clientKeyAlgo");
+        props.add("clientKeyData");
+        props.add("clientKeyFile");
+        props.add("clientKeyPassphrase");
+        props.add("connectionTimeout");
+        props.add("crdGroup");
+        props.add("crdName");
+        props.add("crdPlural");
+        props.add("crdScope");
+        props.add("crdVersion");
+        props.add("dnsDomain");
+        props.add("exceptionHandler");
+        props.add("exchangePattern");
+        props.add("kubernetesClient");
+        props.add("labelKey");
+        props.add("labelValue");
+        props.add("lazyStartProducer");
+        props.add("masterUrl");
+        props.add("namespace");
+        props.add("oauthToken");
+        props.add("operation");
+        props.add("password");
+        props.add("poolSize");
+        props.add("portName");
+        props.add("portProtocol");
+        props.add("resourceName");
+        props.add("trustCerts");
+        props.add("username");
+        PROPERTY_NAMES = Collections.unmodifiableSet(props);
+        Set<String> secretProps = new HashSet<>(12);
+        secretProps.add("caCertData");
+        secretProps.add("caCertFile");
+        secretProps.add("clientCertData");
+        secretProps.add("clientCertFile");
+        secretProps.add("clientKeyAlgo");
+        secretProps.add("clientKeyData");
+        secretProps.add("clientKeyFile");
+        secretProps.add("clientKeyPassphrase");
+        secretProps.add("oauthToken");
+        secretProps.add("password");
+        secretProps.add("trustCerts");
+        secretProps.add("username");
+        SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
+        MULTI_VALUE_PREFIXES = Collections.emptySet();
+    }
+
+    @Override
+    public boolean isEnabled(String scheme) {
+        return "kubernetes-cronjob".equals(scheme);
+    }
+
+    @Override
+    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
+        String syntax = scheme + BASE;
+        String uri = syntax;
+
+        Map<String, Object> copy = new HashMap<>(properties);
+
+        uri = buildPathParameter(syntax, uri, "masterUrl", null, true, copy);
+        uri = buildQueryParameters(uri, copy, encode);
+        return uri;
+    }
+
+    @Override
+    public Set<String> propertyNames() {
+        return PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> secretPropertyNames() {
+        return SECRET_PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> multiValuePrefixes() {
+        return MULTI_VALUE_PREFIXES;
+    }
+
+    @Override
+    public boolean isLenientProperties() {
+        return false;
+    }
+}
+
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 1a460b7efb0..7a9327a50f9 100644
--- a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -1,5 +1,5 @@
 # Generated by camel build tools - do NOT edit this file!
-components=kubernetes-config-maps kubernetes-custom-resources kubernetes-deployments kubernetes-events kubernetes-hpa kubernetes-job kubernetes-namespaces kubernetes-nodes kubernetes-persistent-volumes kubernetes-persistent-volumes-claims kubernetes-pods kubernetes-replication-controllers kubernetes-resources-quota kubernetes-secrets kubernetes-service-accounts kubernetes-services openshift-build-configs openshift-builds openshift-deploymentconfigs
+components=kubernetes-config-maps kubernetes-cronjob kubernetes-custom-resources kubernetes-deployments kubernetes-events kubernetes-hpa kubernetes-job kubernetes-namespaces kubernetes-nodes kubernetes-persistent-volumes kubernetes-persistent-volumes-claims kubernetes-pods kubernetes-replication-controllers kubernetes-resources-quota kubernetes-secrets kubernetes-service-accounts kubernetes-services openshift-build-configs openshift-builds openshift-deploymentconfigs
 groupId=org.apache.camel
 artifactId=camel-kubernetes
 version=4.3.0-SNAPSHOT
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component/kubernetes-cronjob b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component/kubernetes-cronjob
new file mode 100644
index 00000000000..97c63dcddaa
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/component/kubernetes-cronjob
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-component b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-component
new file mode 100644
index 00000000000..0fa70c87ad7
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponentConfigurer
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-endpoint b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-endpoint
new file mode 100644
index 00000000000..bd324665907
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/configurer/kubernetes-cronjob-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobEndpointConfigurer
diff --git a/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/urifactory/kubernetes-cronjob-endpoint b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/urifactory/kubernetes-cronjob-endpoint
new file mode 100644
index 00000000000..650baab71f9
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/resources/META-INF/services/org/apache/camel/urifactory/kubernetes-cronjob-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobEndpointUriFactory
diff --git a/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
new file mode 100644
index 00000000000..2c2b6fb8bde
--- /dev/null
+++ b/components/camel-kubernetes/src/generated/resources/org/apache/camel/component/kubernetes/cronjob/kubernetes-cronjob.json
@@ -0,0 +1,72 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "kubernetes-cronjob",
+    "title": "Kubernetes Cronjob",
+    "description": "Perform operations on Kubernetes CronJob.",
+    "deprecated": false,
+    "firstVersion": "4.3.0",
+    "label": "container,cloud",
+    "javaType": "org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kubernetes",
+    "version": "4.3.0-SNAPSHOT",
+    "scheme": "kubernetes-cronjob",
+    "extendsScheme": "",
+    "syntax": "kubernetes-cronjob:masterUrl",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
+    "bridgeErrorHandler": { "index": 1, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+  },
+  "headers": {
+    "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION" },
+    "CamelKubernetesCronJobLabels": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Cronjob labels.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_LABELS" },
+    "CamelKubernetesCronJobName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Cronjob name.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_NAME" },
+    "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a Job.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC" }
+  },
+  "properties": {
+    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
+    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
+    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
+    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
+    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
+    "portName": { "index": 5, "kind": "parameter", "displayName": "Port Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
+    "portProtocol": { "index": 6, "kind": "parameter", "displayName": "Port Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
+    "crdGroup": { "index": 7, "kind": "parameter", "displayName": "Crd Group", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Group we would like to watch" },
+    "crdName": { "index": 8, "kind": "parameter", "displayName": "Crd Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource name we would like to watch" },
+    "crdPlural": { "index": 9, "kind": "parameter", "displayName": "Crd Plural", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Plural we would like to watch" },
+    "crdScope": { "index": 10, "kind": "parameter", "displayName": "Crd Scope", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Scope we would like to watch" },
+    "crdVersion": { "index": 11, "kind": "parameter", "displayName": "Crd Version", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Version we would like to watch" },
+    "labelKey": { "index": 12, "kind": "parameter", "displayName": "Label Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label key when watching at some resources" },
+    "labelValue": { "index": 13, "kind": "parameter", "displayName": "Label Value", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label value when watching at some resources" },
+    "poolSize": { "index": 14, "kind": "parameter", "displayName": "Pool Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer pool size" },
+    "resourceName": { "index": 15, "kind": "parameter", "displayName": "Resource Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Resource Name we would like to watch" },
+    "bridgeErrorHandler": { "index": 16, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 17, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 18, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "operation": { "index": 19, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
+    "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
+    "connectionTimeout": { "index": 21, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes  [...]
+    "caCertData": { "index": 22, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
+    "caCertFile": { "index": 23, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
+    "clientCertData": { "index": 24, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
+    "clientCertFile": { "index": 25, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
+    "clientKeyAlgo": { "index": 26, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
+    "clientKeyData": { "index": 27, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
+    "clientKeyFile": { "index": 28, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
+    "clientKeyPassphrase": { "index": 29, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
+    "oauthToken": { "index": 30, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
+    "password": { "index": 31, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
+    "trustCerts": { "index": 32, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
+    "username": { "index": 33, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
+  }
+}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
index 9a53bb5ca2d..c8967e066b1 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesConstants.java
@@ -26,6 +26,7 @@ public final class KubernetesConstants {
     public static final String SCHEME_EVENTS = "kubernetes-events";
     public static final String SCHEME_HPA = "kubernetes-hpa";
     public static final String SCHEME_JOB = "kubernetes-job";
+    public static final String SCHEME_CRON_JOB = "kubernetes-cronjob";
     public static final String SCHEME_NAMESPACES = "kubernetes-namespaces";
     public static final String SCHEME_NODES = "kubernetes-nodes";
     public static final String SCHEME_PERSISTENT_VOLUMES = "kubernetes-persistent-volumes";
@@ -256,6 +257,16 @@ public final class KubernetesConstants {
                       SCHEME_REPLICATION_CONTROLLERS, SCHEME_SERVICES, SCHEME_DEPLOYMENT_CONFIGS, SCHEME_EVENTS })
     public static final String KUBERNETES_EVENT_TIMESTAMP = "CamelKubernetesEventTimestamp";
 
+    @Metadata(label = "producer", description = "The Cronjob labels.", javaType = "Map<String, String>",
+              applicableFor = SCHEME_CRON_JOB)
+    public static final String KUBERNETES_CRON_JOB_LABELS = "CamelKubernetesCronJobLabels";
+
+    @Metadata(label = "producer", description = "The Cronjob name.", javaType = "String", applicableFor = SCHEME_CRON_JOB)
+    public static final String KUBERNETES_CRON_JOB_NAME = "CamelKubernetesCronJobName";
+    @Metadata(label = "producer", description = "The spec for a Job.",
+              javaType = "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", applicableFor = SCHEME_CRON_JOB)
+    public static final String KUBERNETES_CRON_JOB_SPEC = "CamelKubernetesCronJobSpec";
+
     private KubernetesConstants() {
 
     }
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
index a6fdfbec2af..79b725f0473 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/KubernetesOperations.java
@@ -139,7 +139,15 @@ public final class KubernetesOperations {
     public static final String LIST_BUILD_CONFIGS_BY_LABELS_OPERATION = "listBuildConfigsByLabels";
     public static final String GET_BUILD_CONFIG_OPERATION = "getBuildConfig";
 
-    // Secrets
+    // Cronjob
+    public static final String LIST_CRON_JOB_OPERATION = "listCronJob";
+    public static final String LIST_CRON_JOB_BY_LABELS_OPERATION = "listCronJobByLabels";
+    public static final String GET_CRON_JOB_OPERATION = "getCronJob";
+    public static final String CREATE_CRON_JOB_OPERATION = "createCronJob";
+    public static final String UPDATE_CRON_JOB_OPERATION = "updateCronJob";
+    public static final String DELETE_CRON_JOB_OPERATION = "deleteCronJob";
+
+    // Job
     public static final String LIST_JOB = "listJob";
     public static final String LIST_JOB_BY_LABELS_OPERATION = "listJobByLabels";
     public static final String GET_JOB_OPERATION = "getJob";
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponent.java
new file mode 100644
index 00000000000..1f8c1481849
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobComponent.java
@@ -0,0 +1,30 @@
+/*
+ * 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.cronjob;
+
+import org.apache.camel.component.kubernetes.AbstractKubernetesComponent;
+import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.spi.annotations.Component;
+
+@Component("kubernetes-cronjob")
+public class KubernetesCronJobComponent extends AbstractKubernetesComponent {
+
+    @Override
+    protected KubernetesCronJobEndpoint doCreateEndpoint(String uri, String remaining, KubernetesConfiguration config) {
+        return new KubernetesCronJobEndpoint(uri, this, config);
+    }
+}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
new file mode 100644
index 00000000000..9d70577d89b
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobEndpoint.java
@@ -0,0 +1,52 @@
+/*
+ * 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.cronjob;
+
+import org.apache.camel.Category;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
+import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.spi.UriEndpoint;
+
+import static org.apache.camel.component.kubernetes.KubernetesConstants.SCHEME_CRON_JOB;
+
+/**
+ * Perform operations on Kubernetes CronJob.
+ */
+@UriEndpoint(firstVersion = "4.3.0", scheme = SCHEME_CRON_JOB, title = "Kubernetes Cronjob",
+             syntax = "kubernetes-cronjob:masterUrl",
+             category = { Category.CONTAINER, Category.CLOUD }, headersClass = KubernetesConstants.class)
+public class KubernetesCronJobEndpoint extends AbstractKubernetesEndpoint {
+
+    public KubernetesCronJobEndpoint(String uri, KubernetesCronJobComponent component, KubernetesConfiguration config) {
+        super(uri, component, config);
+    }
+
+    @Override
+    public Producer createProducer() throws Exception {
+        return new KubernetesCronJobProducer(this);
+    }
+
+    @Override
+    public Consumer createConsumer(Processor processor) throws Exception {
+        throw new IllegalArgumentException("The kubernetes-cronjob doesn't support consumer");
+    }
+
+}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
new file mode 100644
index 00000000000..49c182d6b82
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cronjob/KubernetesCronJobProducer.java
@@ -0,0 +1,183 @@
+/*
+ * 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.cronjob;
+
+import java.util.Map;
+import java.util.function.Function;
+
+import io.fabric8.kubernetes.api.model.batch.v1.*;
+import io.fabric8.kubernetes.client.dsl.MixedOperation;
+import io.fabric8.kubernetes.client.dsl.Resource;
+import org.apache.camel.Exchange;
+import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.component.kubernetes.KubernetesOperations;
+import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.support.MessageHelper;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.camel.component.kubernetes.KubernetesHelper.prepareOutboundMessage;
+
+public class KubernetesCronJobProducer extends DefaultProducer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(KubernetesCronJobProducer.class);
+
+    public KubernetesCronJobProducer(AbstractKubernetesEndpoint endpoint) {
+        super(endpoint);
+    }
+
+    @Override
+    public AbstractKubernetesEndpoint getEndpoint() {
+        return (AbstractKubernetesEndpoint) super.getEndpoint();
+    }
+
+    @Override
+    public void process(Exchange exchange) throws Exception {
+        String operation;
+
+        if (ObjectHelper.isEmpty(getEndpoint().getKubernetesConfiguration().getOperation())) {
+            operation = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_OPERATION, String.class);
+        } else {
+            operation = getEndpoint().getKubernetesConfiguration().getOperation();
+        }
+
+        switch (operation) {
+
+            case KubernetesOperations.LIST_CRON_JOB_OPERATION:
+                doList(exchange);
+                break;
+
+            case KubernetesOperations.LIST_CRON_JOB_BY_LABELS_OPERATION:
+                doListCronJobByLabel(exchange);
+                break;
+
+            case KubernetesOperations.GET_CRON_JOB_OPERATION:
+                doGetCronJob(exchange);
+                break;
+
+            case KubernetesOperations.CREATE_CRON_JOB_OPERATION:
+                doCreateCronJob(exchange);
+                break;
+
+            case KubernetesOperations.UPDATE_CRON_JOB_OPERATION:
+                doUpdateCronJob(exchange);
+                break;
+
+            case KubernetesOperations.DELETE_CRON_JOB_OPERATION:
+                doDeleteCronJob(exchange);
+                break;
+
+            default:
+                throw new IllegalArgumentException("Unsupported operation " + operation);
+        }
+    }
+
+    protected void doList(Exchange exchange) {
+        CronJobList cronJobList = getEndpoint().getKubernetesClient().batch().v1().cronjobs().list();
+
+        prepareOutboundMessage(exchange, cronJobList.getItems());
+    }
+
+    protected void doListCronJobByLabel(Exchange exchange) {
+        Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, Map.class);
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("List CronJob by labels require specify a labels set");
+            throw new IllegalArgumentException("Cron Job by labels require specify a labels set");
+        }
+
+        MixedOperation<CronJob, CronJobList, Resource<CronJob>> cronJobs
+                = getEndpoint().getKubernetesClient().batch().v1().cronjobs();
+
+        CronJobList jobList = cronJobs.withLabels(labels).list();
+
+        prepareOutboundMessage(exchange, jobList.getItems());
+    }
+
+    protected void doGetCronJob(Exchange exchange) {
+        String cronjobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        if (ObjectHelper.isEmpty(cronjobName)) {
+            LOG.error("Get a specific cronjob require specify a cronjob name");
+            throw new IllegalArgumentException("Get a specific cronjob require specify a cronnjob name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Get a specific cronjob require specify a namespace name");
+            throw new IllegalArgumentException("Get a specific cronjob require specify a namespace name");
+        }
+        CronJob cronJob = getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespaceName)
+                .withName(cronjobName).get();
+
+        prepareOutboundMessage(exchange, cronJob);
+    }
+
+    protected void doUpdateCronJob(Exchange exchange) {
+        doCreateOrUpdateCronJob(exchange, "Update", Resource::update);
+    }
+
+    protected void doCreateCronJob(Exchange exchange) {
+        doCreateOrUpdateCronJob(exchange, "Create", Resource::create);
+    }
+
+    private void doCreateOrUpdateCronJob(
+            Exchange exchange, String operationName, Function<Resource<CronJob>, Object> operation) {
+        String cronjobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        CronJobSpec cronjobSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_SPEC, CronJobSpec.class);
+        if (ObjectHelper.isEmpty(cronjobName)) {
+            LOG.error("{} a specific cronjob require specify a cronjob name", operationName);
+            throw new IllegalArgumentException(
+                    String.format("%s a specific cronjob require specify a cronjob name", operationName));
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("{} a specific cronjob require specify a namespace name", operationName);
+            throw new IllegalArgumentException(
+                    String.format("%s a specific cronjob require specify a namespace name", operationName));
+        }
+        if (ObjectHelper.isEmpty(cronjobSpec)) {
+            LOG.error("{} a specific cronjob require specify a cronjob spec bean", operationName);
+            throw new IllegalArgumentException(
+                    String.format("%s a specific cronjob require specify a cronjob spec bean", operationName));
+        }
+        Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, Map.class);
+        CronJob cronjobCreating = new CronJobBuilder().withNewMetadata().withName(cronjobName).withLabels(labels).endMetadata()
+                .withSpec(cronjobSpec).build();
+        Object cronJob = operation.apply(
+                getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespaceName)
+                        .resource(cronjobCreating));
+
+        prepareOutboundMessage(exchange, cronJob);
+    }
+
+    protected void doDeleteCronJob(Exchange exchange) {
+        String cronjobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        if (ObjectHelper.isEmpty(cronjobName)) {
+            LOG.error("Delete a specific cronjob require specify a cronjob name");
+            throw new IllegalArgumentException("Delete a specific cronjob require specify a cronjob name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Delete a specific cronjob require specify a namespace name");
+            throw new IllegalArgumentException("Delete a specific cronjob require specify a namespace name");
+        }
+
+        getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespaceName).withName(cronjobName).delete();
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getMessage(), true);
+    }
+}
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
new file mode 100644
index 00000000000..ea86704e6cf
--- /dev/null
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesCronJobProducerTest.java
@@ -0,0 +1,174 @@
+/*
+ * 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.producer;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import io.fabric8.kubernetes.api.model.ObjectMeta;
+import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.*;
+import io.fabric8.kubernetes.client.KubernetesClient;
+import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
+import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
+import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.component.kubernetes.KubernetesTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+@EnableKubernetesMockClient
+public class KubernetesCronJobProducerTest extends KubernetesTestSupport {
+
+    KubernetesMockServer server;
+    NamespacedKubernetesClient client;
+
+    @BindToRegistry("kubernetesClient")
+    public KubernetesClient getClient() {
+        return client;
+    }
+
+    @Test
+    void listTest() {
+        server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs")
+                .andReturn(200, new CronJobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        List<?> result = template.requestBody("direct:listCronJob", "", List.class);
+
+        assertEquals(3, result.size());
+    }
+
+    @Test
+    void listByLabelsTest() throws Exception {
+        server.expect()
+                .withPath("/apis/batch/v1/namespaces/test/cronjobs?labelSelector=" + toUrlEncoded("key1=value1,key2=value2"))
+                .andReturn(200, new CronJobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels", exchange -> {
+            Map<String, String> labels = new HashMap<>();
+            labels.put("key1", "value1");
+            labels.put("key2", "value2");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, labels);
+        });
+
+        List<?> result = ex.getMessage().getBody(List.class);
+
+        assertEquals(3, result.size());
+    }
+
+    @Test
+    void getJobTest() {
+        CronJob sc1 = new CronJobBuilder().withNewMetadata().withName("sc1").withNamespace("test").and().build();
+
+        server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs/sc1").andReturn(200, sc1).once();
+        Exchange ex = template.request("direct:get", exchange -> {
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, "sc1");
+        });
+
+        CronJob result = ex.getMessage().getBody(CronJob.class);
+
+        assertNotNull(result);
+    }
+
+    @Test
+    void createJobTest() {
+        Map<String, String> labels = Map.of("my.label.key", "my.label.value");
+        CronJobSpec spec = new CronJobSpecBuilder().build();
+        CronJob j1 = new CronJobBuilder().withNewMetadata().withName("j1").withNamespace("test").withLabels(labels).and()
+                .withSpec(spec).build();
+        server.expect().post().withPath("/apis/batch/v1/namespaces/test/cronjobs").andReturn(200, j1).once();
+
+        Exchange ex = template.request("direct:create", exchange -> {
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, labels);
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, "j1");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_SPEC, spec);
+        });
+
+        CronJob result = ex.getMessage().getBody(CronJob.class);
+
+        assertEquals("test", result.getMetadata().getNamespace());
+        assertEquals("j1", result.getMetadata().getName());
+        assertEquals(labels, result.getMetadata().getLabels());
+    }
+
+    @Test
+    void updateJobTest() {
+        Map<String, String> labels = Map.of("my.label.key", "my.label.value");
+        CronJobSpec spec = new CronJobSpecBuilder().withJobTemplate(new JobTemplateSpecBuilder().build()).build();
+        CronJob j1 = new CronJobBuilder().withNewMetadata().withName("j1").withNamespace("test").withLabels(labels).and()
+                .withSpec(spec).build();
+        server.expect().get().withPath("/apis/batch/v1/namespaces/test/cronjobs/j1")
+                .andReturn(200, new JobBuilder().withNewMetadata().withName("j1").withNamespace("test").endMetadata()
+                        .withSpec(new JobSpecBuilder()
+                                .withTemplate(new PodTemplateSpecBuilder().withMetadata(new ObjectMeta()).build()).build())
+                        .build())
+                .times(2);
+        server.expect().put().withPath("/apis/batch/v1/namespaces/test/cronjobs/j1").andReturn(200, j1).once();
+
+        Exchange ex = template.request("direct:update", exchange -> {
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, labels);
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, "j1");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_SPEC, spec);
+        });
+
+        CronJob result = ex.getMessage().getBody(CronJob.class);
+
+        assertEquals("test", result.getMetadata().getNamespace());
+        assertEquals("j1", result.getMetadata().getName());
+        assertEquals(labels, result.getMetadata().getLabels());
+    }
+
+    @Test
+    void deleteJobTest() {
+        CronJob j1 = new CronJobBuilder().withNewMetadata().withName("j1").withNamespace("test").and().build();
+        server.expect().delete().withPath("/apis/batch/v1/namespaces/test/cronjobs/j1").andReturn(200, j1)
+                .once();
+
+        Exchange ex = template.request("direct:delete", exchange -> {
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+            exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_NAME, "j1");
+        });
+
+        assertNotNull(ex.getMessage());
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                // the kubernetes-client is autowired on the component
+
+                from("direct:listCronJob").to("kubernetes-cronjob:foo?operation=listCronJob");
+                from("direct:listByLabels").to("kubernetes-cronjob:foo?operation=listCronJobByLabels");
+                from("direct:get").to("kubernetes-cronjob:foo?operation=getCronJob");
+                from("direct:create").to("kubernetes-cronjob:foo?operation=createCronJob");
+                from("direct:update").to("kubernetes-cronjob:foo?operation=updateCronJob");
+                from("direct:delete").to("kubernetes-cronjob:foo?operation=deleteCronJob");
+            }
+        };
+    }
+}


(camel) 02/04: CAMEL-20185 - Kubernetes CronJob Component - Docs

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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 50afe55c57ab02113ba7df10e389751f251821ab
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Dec 5 11:57:44 2023 +0100

    CAMEL-20185 - Kubernetes CronJob Component - Docs
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../main/docs/kubernetes-cronjob-component.adoc    | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
new file mode 100644
index 00000000000..2981a00b6a8
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-cronjob-component.adoc
@@ -0,0 +1,46 @@
+= Kubernetes Cronjob Component
+:doctitle: Kubernetes Cronjob
+:shortname: kubernetes-cronjob
+:artifactid: camel-kubernetes
+:description: Perform operations on Kubernetes CronJob.
+:since: 4.3
+:supportlevel: Preview
+:tabs-sync-option:
+:component-header: Both producer and consumer are supported
+//Manually maintained attributes
+:group: Kubernetes
+:camel-spring-boot-name: kubernetes
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The Kubernetes CronJob component is one of xref:kubernetes-summary.adoc[Kubernetes Components] which
+provides a producer to execute kubernetes CronJob operations and a consumer to consume events related to CronJob objects.
+
+
+// component-configure options: START
+
+// component-configure options: END
+
+// component options: START
+include::partial$component-configure-options.adoc[]
+include::partial$component-endpoint-options.adoc[]
+// component options: END
+
+// endpoint options: START
+
+// endpoint options: END
+
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
+
+== Supported producer operation
+
+- listCronJob
+- listCronJobByLabels
+- getCronJob
+- createCronJob
+- updateCronJob
+- deleteCronJob


(camel) 03/04: CAMEL-20185 - Kubernetes CronJob Component - Added to kit

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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit fb2f18d87311b5f8553b3ab960126f2586d144b9
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Dec 5 12:05:03 2023 +0100

    CAMEL-20185 - Kubernetes CronJob Component - Added to kit
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../org/apache/camel/catalog/components.properties |  1 +
 .../catalog/components/kubernetes-cronjob.json     | 72 ++++++++++++++++++++++
 .../org/apache/camel/main/components.properties    |  1 +
 .../camel-component-known-dependencies.properties  |  1 +
 4 files changed, 75 insertions(+)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 7bb48aca691..06d8ef4900e 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -182,6 +182,7 @@ kafka
 kamelet
 knative
 kubernetes-config-maps
+kubernetes-cronjob
 kubernetes-custom-resources
 kubernetes-deployments
 kubernetes-events
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
new file mode 100644
index 00000000000..2c2b6fb8bde
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-cronjob.json
@@ -0,0 +1,72 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "kubernetes-cronjob",
+    "title": "Kubernetes Cronjob",
+    "description": "Perform operations on Kubernetes CronJob.",
+    "deprecated": false,
+    "firstVersion": "4.3.0",
+    "label": "container,cloud",
+    "javaType": "org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kubernetes",
+    "version": "4.3.0-SNAPSHOT",
+    "scheme": "kubernetes-cronjob",
+    "extendsScheme": "",
+    "syntax": "kubernetes-cronjob:masterUrl",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "kubernetesClient": { "index": 0, "kind": "property", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing kubernetes client." },
+    "bridgeErrorHandler": { "index": 1, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+  },
+  "headers": {
+    "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Producer operation", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION" },
+    "CamelKubernetesCronJobLabels": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Cronjob labels.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_LABELS" },
+    "CamelKubernetesCronJobName": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Cronjob name.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_NAME" },
+    "CamelKubernetesCronJobSpec": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The spec for a Job.", "constantName": "org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_CRON_JOB_SPEC" }
+  },
+  "properties": {
+    "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Kubernetes Master url" },
+    "apiVersion": { "index": 1, "kind": "parameter", "displayName": "Api Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Kubernetes API Version to use" },
+    "dnsDomain": { "index": 2, "kind": "parameter", "displayName": "Dns Domain", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The dns domain, used for ServiceCall EIP" },
+    "kubernetesClient": { "index": 3, "kind": "parameter", "displayName": "Kubernetes Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.fabric8.kubernetes.client.KubernetesClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Default KubernetesClient to use if provided" },
+    "namespace": { "index": 4, "kind": "parameter", "displayName": "Namespace", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The namespace" },
+    "portName": { "index": 5, "kind": "parameter", "displayName": "Port Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port name, used for ServiceCall EIP" },
+    "portProtocol": { "index": 6, "kind": "parameter", "displayName": "Port Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "tcp", "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The port protocol, used for ServiceCall EIP" },
+    "crdGroup": { "index": 7, "kind": "parameter", "displayName": "Crd Group", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Group we would like to watch" },
+    "crdName": { "index": 8, "kind": "parameter", "displayName": "Crd Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource name we would like to watch" },
+    "crdPlural": { "index": 9, "kind": "parameter", "displayName": "Crd Plural", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Plural we would like to watch" },
+    "crdScope": { "index": 10, "kind": "parameter", "displayName": "Crd Scope", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Scope we would like to watch" },
+    "crdVersion": { "index": 11, "kind": "parameter", "displayName": "Crd Version", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer CRD Resource Version we would like to watch" },
+    "labelKey": { "index": 12, "kind": "parameter", "displayName": "Label Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label key when watching at some resources" },
+    "labelValue": { "index": 13, "kind": "parameter", "displayName": "Label Value", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Label value when watching at some resources" },
+    "poolSize": { "index": 14, "kind": "parameter", "displayName": "Pool Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer pool size" },
+    "resourceName": { "index": 15, "kind": "parameter", "displayName": "Resource Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Consumer Resource Name we would like to watch" },
+    "bridgeErrorHandler": { "index": 16, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 17, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 18, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "operation": { "index": 19, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Producer operation to do on Kubernetes" },
+    "lazyStartProducer": { "index": 20, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
+    "connectionTimeout": { "index": 21, "kind": "parameter", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes  [...]
+    "caCertData": { "index": 22, "kind": "parameter", "displayName": "Ca Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert Data" },
+    "caCertFile": { "index": 23, "kind": "parameter", "displayName": "Ca Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The CA Cert File" },
+    "clientCertData": { "index": 24, "kind": "parameter", "displayName": "Client Cert Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert Data" },
+    "clientCertFile": { "index": 25, "kind": "parameter", "displayName": "Client Cert File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Cert File" },
+    "clientKeyAlgo": { "index": 26, "kind": "parameter", "displayName": "Client Key Algo", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Key Algorithm used by the client" },
+    "clientKeyData": { "index": 27, "kind": "parameter", "displayName": "Client Key Data", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key data" },
+    "clientKeyFile": { "index": 28, "kind": "parameter", "displayName": "Client Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key file" },
+    "clientKeyPassphrase": { "index": 29, "kind": "parameter", "displayName": "Client Key Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Client Key Passphrase" },
+    "oauthToken": { "index": 30, "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "The Auth Token" },
+    "password": { "index": 31, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Password to connect to Kubernetes" },
+    "trustCerts": { "index": 32, "kind": "parameter", "displayName": "Trust Certs", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Define if the certs we used are trusted anyway or not" },
+    "username": { "index": 33, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kubernetes.KubernetesConfiguration", "configurationField": "configuration", "description": "Username to connect to Kubernetes" }
+  }
+}
diff --git a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 7bb48aca691..06d8ef4900e 100644
--- a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -182,6 +182,7 @@ kafka
 kamelet
 knative
 kubernetes-config-maps
+kubernetes-cronjob
 kubernetes-custom-resources
 kubernetes-deployments
 kubernetes-events
diff --git a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index 82d9915db6a..b7e4be1fa0d 100644
--- a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -194,6 +194,7 @@ org.apache.camel.component.kafka.KafkaComponent=camel:kafka
 org.apache.camel.component.kamelet.KameletComponent=camel:kamelet
 org.apache.camel.component.knative.KnativeComponent=camel:knative
 org.apache.camel.component.kubernetes.config_maps.KubernetesConfigMapsComponent=camel:kubernetes
+org.apache.camel.component.kubernetes.cronjob.KubernetesCronJobComponent=camel:kubernetes
 org.apache.camel.component.kubernetes.customresources.KubernetesCustomResourcesComponent=camel:kubernetes
 org.apache.camel.component.kubernetes.deployments.KubernetesDeploymentsComponent=camel:kubernetes
 org.apache.camel.component.kubernetes.events.KubernetesEventsComponent=camel:kubernetes