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 2018/07/18 11:23:31 UTC

[camel] branch master updated (4d33c77 -> 0bd2bc4)

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

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


    from 4d33c77  Fix CS
     new 7a954c3  CAMEL-11158 - Camel-Kubernetes: Add support for Job resources
     new 32083ff  CAMEL-11158 - Fixed CS
     new 73e4b72  CAMEL-11158 - Added docs
     new 0bd2bc4  Regen

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:
 .../src/main/docs/kubernetes-job-component.adoc    |  93 +++++++++++
 .../component/kubernetes/KubernetesConstants.java  |   3 +
 .../component/kubernetes/KubernetesOperations.java |   7 +
 .../kubernetes/job/KubernetesJobComponent.java     |  28 ++++
 .../kubernetes/job/KubernetesJobEndpoint.java      |  51 ++++++
 .../kubernetes/job/KubernetesJobProducer.java      | 173 +++++++++++++++++++++
 .../org/apache/camel/component/kubernetes-job      |  18 +++
 .../producer/KubernetesJobProducerTest.java        | 112 +++++++++++++
 components/readme.adoc                             |   5 +-
 docs/user-manual/en/SUMMARY.md                     |   1 +
 .../ws/springboot/WsComponentConfiguration.java    |   2 +-
 .../springboot/BeanComponentConfiguration.java     |   3 +-
 .../springboot/ClassComponentConfiguration.java    |   3 +-
 .../BindingNameComponentConfiguration.java         |   3 +-
 .../springboot/BrowseComponentConfiguration.java   |   3 +-
 .../ControlBusComponentConfiguration.java          |   3 +-
 .../DataFormatComponentConfiguration.java          |   3 +-
 .../springboot/DataSetComponentConfiguration.java  |   3 +-
 .../springboot/DirectComponentConfiguration.java   |   3 +-
 .../springboot/DirectVmComponentConfiguration.java |   3 +-
 .../springboot/FileComponentConfiguration.java     |   3 +-
 .../springboot/LanguageComponentConfiguration.java |   3 +-
 .../log/springboot/LogComponentConfiguration.java  |   3 +-
 .../springboot/MockComponentConfiguration.java     |   3 +-
 .../PropertiesComponentConfiguration.java          |   3 +-
 .../ref/springboot/RefComponentConfiguration.java  |   3 +-
 .../springboot/RestApiComponentConfiguration.java  |   3 +-
 .../springboot/RestComponentConfiguration.java     |   3 +-
 .../springboot/SagaComponentConfiguration.java     |   3 +-
 .../SchedulerComponentConfiguration.java           |   3 +-
 .../springboot/SedaComponentConfiguration.java     |   3 +-
 .../springboot/StubComponentConfiguration.java     |   3 +-
 .../springboot/TestComponentConfiguration.java     |   3 +-
 .../springboot/TimerComponentConfiguration.java    |   3 +-
 .../ValidatorComponentConfiguration.java           |   3 +-
 .../vm/springboot/VmComponentConfiguration.java    |   3 +-
 .../springboot/XsltComponentConfiguration.java     |   3 +-
 .../springboot/HttpComponentConfiguration.java     |   2 +-
 .../springboot/HttpComponentConfiguration.java     |   2 +-
 .../KubernetesJobComponentAutoConfiguration.java   | 129 +++++++++++++++
 .../KubernetesJobComponentConfiguration.java}      |  13 +-
 .../src/main/resources/META-INF/spring.factories   |   4 +-
 .../springboot/MailComponentConfiguration.java     |   2 +-
 .../sip/springboot/SipComponentConfiguration.java  |   2 +-
 44 files changed, 686 insertions(+), 39 deletions(-)
 create mode 100644 components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobComponent.java
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
 create mode 100644 components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
 create mode 100644 components/camel-kubernetes/src/main/resources/META-INF/services/org/apache/camel/component/kubernetes-job
 create mode 100644 components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
 create mode 100644 platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentAutoConfiguration.java
 copy platforms/spring-boot/components-starter/{camel-core-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentConfiguration.java => camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java} (82%)


[camel] 01/04: CAMEL-11158 - Camel-Kubernetes: Add support for Job resources

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

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

commit 7a954c3ad13854c3745d3ac99b70f07c307ac6f3
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 18 12:24:19 2018 +0200

    CAMEL-11158 - Camel-Kubernetes: Add support for Job resources
---
 .../component/kubernetes/KubernetesConstants.java  |   3 +
 .../component/kubernetes/KubernetesOperations.java |   7 +
 .../kubernetes/job/KubernetesJobComponent.java     |  28 ++++
 .../kubernetes/job/KubernetesJobEndpoint.java      |  51 ++++++
 .../kubernetes/job/KubernetesJobProducer.java      | 173 +++++++++++++++++++++
 .../org/apache/camel/component/kubernetes-job      |  18 +++
 .../producer/KubernetesJobProducerTest.java        | 112 +++++++++++++
 .../KubernetesJobComponentAutoConfiguration.java   | 129 +++++++++++++++
 .../KubernetesJobComponentConfiguration.java       |  50 ++++++
 .../src/main/resources/META-INF/spring.factories   |   4 +-
 10 files changed, 574 insertions(+), 1 deletion(-)

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 47d546a..3f5b3d9 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
@@ -60,6 +60,9 @@ public interface KubernetesConstants {
     String KUBERNETES_DEPLOYMENT_REPLICAS = "CamelKubernetesDeploymentReplicas";
     String KUBERNETES_HPA_NAME = "CamelKubernetesHPAName";
     String KUBERNETES_HPA_SPEC = "CamelKubernetesHPASpec";
+    String KUBERNETES_JOB_NAME = "CamelKubernetesJobName";
+    String KUBERNETES_JOB_SPEC = "CamelKubernetesJobSpec";
+    String KUBERNETES_JOB_LABELS = "CamelKubernetesJobLabels";
 
     // Consumer
     String KUBERNETES_EVENT_ACTION = "CamelKubernetesEventAction";
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 ea4666a..936d6a7 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
@@ -116,4 +116,11 @@ public interface KubernetesOperations {
     String LIST_BUILD_CONFIGS = "listBuildConfigs";
     String LIST_BUILD_CONFIGS_BY_LABELS_OPERATION = "listBuildConfigsByLabels";
     String GET_BUILD_CONFIG_OPERATION = "getBuildConfig";
+    
+    // Secrets
+    String LIST_JOB = "listJob";
+    String LIST_JOB_BY_LABELS_OPERATION = "listJobByLabels";
+    String GET_JOB_OPERATION = "getJob";
+    String CREATE_JOB_OPERATION = "createJob";
+    String DELETE_JOB_OPERATION = "deleteJob";
 }
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobComponent.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobComponent.java
new file mode 100644
index 0000000..35464bc
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobComponent.java
@@ -0,0 +1,28 @@
+/**
+ * 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.job;
+
+import org.apache.camel.component.kubernetes.AbstractKubernetesComponent;
+import org.apache.camel.component.kubernetes.KubernetesConfiguration;
+
+public class KubernetesJobComponent extends AbstractKubernetesComponent {
+
+    protected KubernetesJobEndpoint doCreateEndpoint(String uri, String remaining, KubernetesConfiguration config) throws Exception {
+        KubernetesJobEndpoint endpoint = new KubernetesJobEndpoint(uri, this, config);
+        return endpoint;
+    }
+}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
new file mode 100644
index 0000000..4d920da
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobEndpoint.java
@@ -0,0 +1,51 @@
+/**
+ * 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.job;
+
+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.spi.UriEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Kubernetes Jobs component provides a producer to execute kubernetes job operations
+ */
+@UriEndpoint(firstVersion = "2.23.0", scheme = "kubernetes-job", title = "Kubernetes Job",
+    syntax = "kubernetes-job:masterUrl", label = "container,cloud,paas")
+public class KubernetesJobEndpoint extends AbstractKubernetesEndpoint {
+
+    private static final Logger LOG = LoggerFactory.getLogger(KubernetesJobEndpoint.class);
+
+    public KubernetesJobEndpoint(String uri, KubernetesJobComponent component, KubernetesConfiguration config) {
+        super(uri, component, config);
+    }
+
+    @Override
+    public Producer createProducer() throws Exception {
+        return new KubernetesJobProducer(this);
+    }
+
+    @Override
+    public Consumer createConsumer(Processor processor) throws Exception {
+        throw new IllegalArgumentException("The kubernetes-job doesn't support consumer");
+    }
+
+}
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
new file mode 100644
index 0000000..0566e3f
--- /dev/null
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
@@ -0,0 +1,173 @@
+/**
+ * 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.job;
+
+import java.util.Map;
+
+import io.fabric8.kubernetes.api.model.batch.Job;
+import io.fabric8.kubernetes.api.model.batch.JobBuilder;
+import io.fabric8.kubernetes.api.model.batch.JobList;
+import io.fabric8.kubernetes.api.model.batch.JobSpec;
+import io.fabric8.kubernetes.client.Watch;
+import io.fabric8.kubernetes.client.Watcher;
+import io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable;
+
+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.impl.DefaultProducer;
+import org.apache.camel.util.MessageHelper;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class KubernetesJobProducer extends DefaultProducer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(KubernetesJobProducer.class);
+
+    public KubernetesJobProducer(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_JOB:
+            doList(exchange, operation);
+            break;
+
+        case KubernetesOperations.LIST_JOB_BY_LABELS_OPERATION:
+            doListJobByLabel(exchange, operation);
+            break;
+
+        case KubernetesOperations.GET_JOB_OPERATION:
+            doGetJob(exchange, operation);
+            break;
+
+        case KubernetesOperations.CREATE_JOB_OPERATION:
+            doCreateJob(exchange, operation);
+            break;
+
+        case KubernetesOperations.DELETE_JOB_OPERATION:
+        	doDeleteJob(exchange, operation);
+            break;
+
+        default:
+            throw new IllegalArgumentException("Unsupported operation " + operation);
+        }
+    }
+
+    protected void doList(Exchange exchange, String operation) throws Exception {
+        JobList jobList = getEndpoint().getKubernetesClient().batch().jobs().list();
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(jobList.getItems());
+    }
+
+    protected void doListJobByLabel(Exchange exchange, String operation) {
+        Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, Map.class);
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Get Job by labels require specify a labels set");
+            throw new IllegalArgumentException("Get Job by labels require specify a labels set");
+        }
+
+        FilterWatchListMultiDeletable<Job, JobList, Boolean, Watch, Watcher<Job>> jobs = getEndpoint()
+            .getKubernetesClient().batch().jobs();
+        for (Map.Entry<String, String> entry : labels.entrySet()) {
+            jobs.withLabel(entry.getKey(), entry.getValue());
+        }
+        JobList jobList = jobs.list();
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(jobList.getItems());
+    }
+
+    protected void doGetJob(Exchange exchange, String operation) throws Exception {
+        Job job = null;
+        String jobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        if (ObjectHelper.isEmpty(jobName)) {
+            LOG.error("Get a specific job require specify a job name");
+            throw new IllegalArgumentException("Get a specific job require specify a job name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Get a specific job require specify a namespace name");
+            throw new IllegalArgumentException("Get a specific job require specify a namespace name");
+        }
+        job = getEndpoint().getKubernetesClient().batch().jobs().inNamespace(namespaceName).withName(jobName).get();
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(job);
+    }
+
+    protected void doCreateJob(Exchange exchange, String operation) throws Exception {
+    	Job job = null;
+        String jobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        JobSpec jobSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_SPEC, JobSpec.class);
+        if (ObjectHelper.isEmpty(jobName)) {
+            LOG.error("Create a specific job require specify a job name");
+            throw new IllegalArgumentException("Create a specific job require specify a job name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Create a specific job require specify a namespace name");
+            throw new IllegalArgumentException("Create a specific job require specify a namespace name");
+        }
+        if (ObjectHelper.isEmpty(jobSpec)) {
+            LOG.error("Create a specific job require specify a hpa spec bean");
+            throw new IllegalArgumentException("Create a specific job require specify a hpa spec bean");
+        }
+        Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, Map.class);
+        Job jobCreating = new JobBuilder().withNewMetadata().withName(jobName).withLabels(labels).endMetadata().withSpec(jobSpec).build();
+        job = getEndpoint().getKubernetesClient().batch().jobs().inNamespace(namespaceName).create(jobCreating);
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+        exchange.getOut().setBody(job);
+    }
+
+    protected void doDeleteJob(Exchange exchange, String operation) throws Exception {
+        String jobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_NAME, String.class);
+        String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
+        if (ObjectHelper.isEmpty(jobName)) {
+            LOG.error("Delete a specific job require specify a job name");
+            throw new IllegalArgumentException("Delete a specific job require specify a job name");
+        }
+        if (ObjectHelper.isEmpty(namespaceName)) {
+            LOG.error("Delete a specific job require specify a namespace name");
+            throw new IllegalArgumentException("Delete a specific job require specify a namespace name");
+        }
+
+        getEndpoint().getKubernetesClient().batch().jobs().inNamespace(namespaceName).withName(jobName).delete();
+
+        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);
+    }
+}
diff --git a/components/camel-kubernetes/src/main/resources/META-INF/services/org/apache/camel/component/kubernetes-job b/components/camel-kubernetes/src/main/resources/META-INF/services/org/apache/camel/component/kubernetes-job
new file mode 100644
index 0000000..eba1856
--- /dev/null
+++ b/components/camel-kubernetes/src/main/resources/META-INF/services/org/apache/camel/component/kubernetes-job
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+class=org.apache.camel.component.kubernetes.job.KubernetesJobComponent
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
new file mode 100644
index 0000000..5f6035c
--- /dev/null
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesJobProducerTest.java
@@ -0,0 +1,112 @@
+/**
+ * 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.HorizontalPodAutoscaler;
+import io.fabric8.kubernetes.api.model.HorizontalPodAutoscalerBuilder;
+import io.fabric8.kubernetes.api.model.Secret;
+import io.fabric8.kubernetes.api.model.batch.Job;
+import io.fabric8.kubernetes.api.model.batch.JobBuilder;
+import io.fabric8.kubernetes.api.model.batch.JobListBuilder;
+import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.kubernetes.KubernetesConstants;
+import org.apache.camel.component.kubernetes.KubernetesTestSupport;
+import org.apache.camel.impl.JndiRegistry;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class KubernetesJobProducerTest extends KubernetesTestSupport {
+
+    @Rule
+    public KubernetesServer server = new KubernetesServer();
+
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry registry = super.createRegistry();
+        registry.bind("kubernetesClient", server.getClient());
+        return registry;
+    }
+
+    @Test
+    public void listTest() throws Exception {
+        server.expect().withPath("/apis/batch/v1/namespaces/test/jobs").andReturn(200, new JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+        List<Secret> result = template.requestBody("direct:list", "", List.class);
+
+        assertEquals(3, result.size());
+    }
+
+    @Test
+    public void listByLabelsTest() throws Exception {
+        server.expect().withPath("/apis/batch/v1/namespaces/test/jobs?labelSelector=" + toUrlEncoded("key1=value1,key2=value2"))
+            .andReturn(200, new JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build()).once();
+        Exchange ex = template.request("direct:listByLabels", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                Map<String, String> labels = new HashMap<>();
+                labels.put("key1", "value1");
+                labels.put("key2", "value2");
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, labels);
+            }
+        });
+
+        List<Job> result = ex.getOut().getBody(List.class);
+
+        assertEquals(3, result.size());
+    }
+
+    @Test
+    public void getJobTest() throws Exception {
+        Job sc1 = new JobBuilder().withNewMetadata().withName("sc1").withNamespace("test").and().build();
+
+        server.expect().withPath("/apis/batch/v1/namespaces/test/jobs/sc1").andReturn(200, sc1).once();
+        Exchange ex = template.request("direct:get", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, "test");
+                exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_NAME, "sc1");
+            }
+        });
+
+        Job result = ex.getOut().getBody(Job.class);
+
+        assertNotNull(result);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:list").to("kubernetes-job:///?kubernetesClient=#kubernetesClient&operation=listJob");
+                from("direct:listByLabels").to("kubernetes-job:///?kubernetesClient=#kubernetesClient&operation=listJobByLabels");
+                from("direct:get").to("kubernetes-job:///?kubernetesClient=#kubernetesClient&operation=getJob");
+                from("direct:create").to("kubernetes-job:///?kubernetesClient=#kubernetesClient&operation=createJob");
+                from("direct:delete").to("kubernetes-job:///?kubernetesClient=#kubernetesClient&operation=deleteJob");
+            }
+        };
+    }
+}
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentAutoConfiguration.java
new file mode 100644
index 0000000..97caa65
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentAutoConfiguration.java
@@ -0,0 +1,129 @@
+/**
+ * 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.job.springboot;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.kubernetes.job.KubernetesJobComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spi.HasId;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.GroupCondition;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@Configuration
+@Conditional({ConditionalOnCamelContextAndAutoConfigurationBeans.class,
+        KubernetesJobComponentAutoConfiguration.GroupConditions.class})
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+        KubernetesJobComponentConfiguration.class})
+public class KubernetesJobComponentAutoConfiguration {
+
+    private static final Logger LOGGER = LoggerFactory
+            .getLogger(KubernetesJobComponentAutoConfiguration.class);
+    @Autowired
+    private ApplicationContext applicationContext;
+    @Autowired
+    private CamelContext camelContext;
+    @Autowired
+    private KubernetesJobComponentConfiguration configuration;
+    @Autowired(required = false)
+    private List<ComponentCustomizer<KubernetesJobComponent>> customizers;
+
+    static class GroupConditions extends GroupCondition {
+        public GroupConditions() {
+            super("camel.component", "camel.component.kubernetes-job");
+        }
+    }
+
+    @Lazy
+    @Bean(name = "kubernetes-job-component")
+    @ConditionalOnMissingBean(KubernetesJobComponent.class)
+    public KubernetesJobComponent configureKubernetesJobComponent()
+            throws Exception {
+        KubernetesJobComponent component = new KubernetesJobComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null,
+                false);
+        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+            Object value = entry.getValue();
+            Class<?> paramClass = value.getClass();
+            if (paramClass.getName().endsWith("NestedConfiguration")) {
+                Class nestedClass = null;
+                try {
+                    nestedClass = (Class) paramClass.getDeclaredField(
+                            "CAMEL_NESTED_CLASS").get(null);
+                    HashMap<String, Object> nestedParameters = new HashMap<>();
+                    IntrospectionSupport.getProperties(value, nestedParameters,
+                            null, false);
+                    Object nestedProperty = nestedClass.newInstance();
+                    CamelPropertiesHelper.setCamelProperties(camelContext,
+                            nestedProperty, nestedParameters, false);
+                    entry.setValue(nestedProperty);
+                } catch (NoSuchFieldException e) {
+                }
+            }
+        }
+        CamelPropertiesHelper.setCamelProperties(camelContext, component,
+                parameters, false);
+        if (ObjectHelper.isNotEmpty(customizers)) {
+            for (ComponentCustomizer<KubernetesJobComponent> customizer : customizers) {
+                boolean useCustomizer = (customizer instanceof HasId)
+                        ? HierarchicalPropertiesEvaluator.evaluate(
+                                applicationContext.getEnvironment(),
+                                "camel.component.customizer",
+                                "camel.component.kubernetes-job.customizer",
+                                ((HasId) customizer).getId())
+                        : HierarchicalPropertiesEvaluator.evaluate(
+                                applicationContext.getEnvironment(),
+                                "camel.component.customizer",
+                                "camel.component.kubernetes-job.customizer");
+                if (useCustomizer) {
+                    LOGGER.debug("Configure component {}, with customizer {}",
+                            component, customizer);
+                    customizer.customize(component);
+                }
+            }
+        }
+        return component;
+    }
+}
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java
new file mode 100644
index 0000000..9524594
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * 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.job.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The Kubernetes Jobs component provides a producer to execute kubernetes job
+ * operations
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@ConfigurationProperties(prefix = "camel.component.kubernetes-job")
+public class KubernetesJobComponentConfiguration
+        extends
+            ComponentConfigurationPropertiesCommon {
+
+    /**
+     * Whether the component should resolve property placeholders on itself when
+     * starting. Only properties which are of String type can use property
+     * placeholders.
+     */
+    private Boolean resolvePropertyPlaceholders = true;
+
+    public Boolean getResolvePropertyPlaceholders() {
+        return resolvePropertyPlaceholders;
+    }
+
+    public void setResolvePropertyPlaceholders(
+            Boolean resolvePropertyPlaceholders) {
+        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
+    }
+}
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
index 0a8bdfd..2bb6766 100644
--- a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
@@ -33,7 +33,9 @@ org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymen
 org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentAutoConfiguration,\
 org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentAutoConfiguration,\
 org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentAutoConfiguration,\
-org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentAutoConfiguration
+org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentAutoConfiguration,\
+org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentAutoConfiguration
+
 
 
 


[camel] 02/04: CAMEL-11158 - Fixed CS

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

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

commit 32083ffe4c8489652e695fae1f272b86b4810bc2
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 18 12:38:03 2018 +0200

    CAMEL-11158 - Fixed CS
---
 .../apache/camel/component/kubernetes/job/KubernetesJobProducer.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
index 0566e3f..71e910d 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/job/KubernetesJobProducer.java
@@ -78,7 +78,7 @@ public class KubernetesJobProducer extends DefaultProducer {
             break;
 
         case KubernetesOperations.DELETE_JOB_OPERATION:
-        	doDeleteJob(exchange, operation);
+            doDeleteJob(exchange, operation);
             break;
 
         default:
@@ -130,7 +130,7 @@ public class KubernetesJobProducer extends DefaultProducer {
     }
 
     protected void doCreateJob(Exchange exchange, String operation) throws Exception {
-    	Job job = null;
+        Job job = null;
         String jobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_NAME, String.class);
         String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);
         JobSpec jobSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_SPEC, JobSpec.class);


[camel] 03/04: CAMEL-11158 - Added docs

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

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

commit 73e4b723b35762035958fd0789f5b2153bcfce55
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 18 12:51:26 2018 +0200

    CAMEL-11158 - Added docs
---
 .../src/main/docs/kubernetes-job-component.adoc    | 92 ++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
new file mode 100644
index 0000000..156bba6
--- /dev/null
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
@@ -0,0 +1,92 @@
+[[kubernetes-job-component]]
+== Kubernetes Job Component
+
+*Available as of Camel version 2.23*
+
+The *Kubernetes Job* component is one of <<kubernetes-component,Kubernetes Components>> which
+provides a producer to execute kubernetes job operations.
+ 
+
+
+### Component Options
+
+// component options: START
+The Kubernetes Job component has no options.
+// component options: END
+
+
+### Endpoint Options
+
+// endpoint options: START
+The Kubernetes Job endpoint is configured using URI syntax:
+
+----
+kubernetes-job:masterUrl
+----
+
+with the following path and query parameters:
+
+==== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *masterUrl* | *Required* Kubernetes Master url |  | String
+|===
+
+
+==== Query Parameters (28 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *apiVersion* (common) | The Kubernetes API Version to use |  | String
+| *dnsDomain* (common) | The dns domain, used for ServiceCall EIP |  | String
+| *kubernetesClient* (common) | Default KubernetesClient to use if provided |  | KubernetesClient
+| *portName* (common) | The port name, used for ServiceCall EIP |  | String
+| *portProtocol* (common) | The port protocol, used for ServiceCall EIP | tcp | String
+| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
+| *labelKey* (consumer) | The Consumer Label key when watching at some resources |  | String
+| *labelValue* (consumer) | The Consumer Label value when watching at some resources |  | String
+| *namespace* (consumer) | The namespace |  | String
+| *poolSize* (consumer) | The Consumer pool size | 1 | int
+| *resourceName* (consumer) | The Consumer Resource Name we would like to watch |  | String
+| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
+| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| *operation* (producer) | Producer operation to do on Kubernetes |  | String
+| *connectionTimeout* (advanced) | Connection timeout in milliseconds to use when making requests to the Kubernetes API server. |  | Integer
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| *caCertData* (security) | The CA Cert Data |  | String
+| *caCertFile* (security) | The CA Cert File |  | String
+| *clientCertData* (security) | The Client Cert Data |  | String
+| *clientCertFile* (security) | The Client Cert File |  | String
+| *clientKeyAlgo* (security) | The Key Algorithm used by the client |  | String
+| *clientKeyData* (security) | The Client Key data |  | String
+| *clientKeyFile* (security) | The Client Key file |  | String
+| *clientKeyPassphrase* (security) | The Client Key Passphrase |  | String
+| *oauthToken* (security) | The Auth Token |  | String
+| *password* (security) | Password to connect to Kubernetes |  | String
+| *trustCerts* (security) | Define if the certs we used are trusted anyway or not |  | Boolean
+| *username* (security) | Username to connect to Kubernetes |  | String
+|===
+// endpoint options: END
+// spring-boot-auto-configure options: START
+=== Spring Boot Auto-Configuration
+
+
+The component supports 2 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *camel.component.kubernetes-hpa.enabled* |  |  | Boolean
+| *camel.component.kubernetes-hpa.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when
+ starting. Only properties which are of String type can use property
+ placeholders. | true | Boolean
+|===
+// spring-boot-auto-configure options: END
+


[camel] 04/04: Regen

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

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

commit 0bd2bc4b82bab47d19585e91d412f1f75414057c
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 18 13:22:40 2018 +0200

    Regen
---
 .../camel-kubernetes/src/main/docs/kubernetes-job-component.adoc     | 5 +++--
 components/readme.adoc                                               | 5 ++++-
 docs/user-manual/en/SUMMARY.md                                       | 1 +
 .../camel/component/ahc/ws/springboot/WsComponentConfiguration.java  | 2 +-
 .../camel/component/bean/springboot/BeanComponentConfiguration.java  | 3 ++-
 .../component/beanclass/springboot/ClassComponentConfiguration.java  | 3 ++-
 .../binding/springboot/BindingNameComponentConfiguration.java        | 3 ++-
 .../component/browse/springboot/BrowseComponentConfiguration.java    | 3 ++-
 .../controlbus/springboot/ControlBusComponentConfiguration.java      | 3 ++-
 .../dataformat/springboot/DataFormatComponentConfiguration.java      | 3 ++-
 .../component/dataset/springboot/DataSetComponentConfiguration.java  | 3 ++-
 .../component/direct/springboot/DirectComponentConfiguration.java    | 3 ++-
 .../directvm/springboot/DirectVmComponentConfiguration.java          | 3 ++-
 .../camel/component/file/springboot/FileComponentConfiguration.java  | 3 ++-
 .../language/springboot/LanguageComponentConfiguration.java          | 3 ++-
 .../camel/component/log/springboot/LogComponentConfiguration.java    | 3 ++-
 .../camel/component/mock/springboot/MockComponentConfiguration.java  | 3 ++-
 .../properties/springboot/PropertiesComponentConfiguration.java      | 3 ++-
 .../camel/component/ref/springboot/RefComponentConfiguration.java    | 3 ++-
 .../component/rest/springboot/RestApiComponentConfiguration.java     | 3 ++-
 .../camel/component/rest/springboot/RestComponentConfiguration.java  | 3 ++-
 .../camel/component/saga/springboot/SagaComponentConfiguration.java  | 3 ++-
 .../scheduler/springboot/SchedulerComponentConfiguration.java        | 3 ++-
 .../camel/component/seda/springboot/SedaComponentConfiguration.java  | 3 ++-
 .../camel/component/stub/springboot/StubComponentConfiguration.java  | 3 ++-
 .../camel/component/test/springboot/TestComponentConfiguration.java  | 3 ++-
 .../component/timer/springboot/TimerComponentConfiguration.java      | 3 ++-
 .../validator/springboot/ValidatorComponentConfiguration.java        | 3 ++-
 .../camel/component/vm/springboot/VmComponentConfiguration.java      | 3 ++-
 .../camel/component/xslt/springboot/XsltComponentConfiguration.java  | 3 ++-
 .../camel/component/http/springboot/HttpComponentConfiguration.java  | 2 +-
 .../camel/component/http4/springboot/HttpComponentConfiguration.java | 2 +-
 .../job/springboot/KubernetesJobComponentConfiguration.java          | 5 +++++
 .../camel/component/mail/springboot/MailComponentConfiguration.java  | 2 +-
 .../camel/component/sip/springboot/SipComponentConfiguration.java    | 2 +-
 35 files changed, 70 insertions(+), 34 deletions(-)

diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
index 156bba6..1a6a4bb 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-job-component.adoc
@@ -83,8 +83,9 @@ The component supports 2 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.component.kubernetes-hpa.enabled* |  |  | Boolean
-| *camel.component.kubernetes-hpa.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when
+| *camel.component.kubernetes-job.enabled* | Whether to enable auto configuration of the kubernetes-job component.
+ This is enabled by default. |  | Boolean
+| *camel.component.kubernetes-job.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when
  starting. Only properties which are of String type can use property
  placeholders. | true | Boolean
 |===
diff --git a/components/readme.adoc b/components/readme.adoc
index 4bd21fe..6317e4e 100644
--- a/components/readme.adoc
+++ b/components/readme.adoc
@@ -2,7 +2,7 @@ Components
 ^^^^^^^^^^
 
 // components: START
-Number of Components: 298 in 203 JAR artifacts (21 deprecated)
+Number of Components: 299 in 203 JAR artifacts (21 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -482,6 +482,9 @@ Number of Components: 298 in 203 JAR artifacts (21 deprecated)
 | link:camel-kubernetes/src/main/docs/kubernetes-hpa-component.adoc[Kubernetes HPA] (camel-kubernetes) +
 `kubernetes-hpa:masterUrl` | 2.23 | The Kubernetes HPA component provides a producer to execute kubernetes hpa operations and a consumer to consume pod events.
 
+| link:camel-kubernetes/src/main/docs/kubernetes-job-component.adoc[Kubernetes Job] (camel-kubernetes) +
+`kubernetes-job:masterUrl` | 2.23 | The Kubernetes Jobs component provides a producer to execute kubernetes job operations
+
 | link:camel-kubernetes/src/main/docs/kubernetes-namespaces-component.adoc[Kubernetes Namespaces] (camel-kubernetes) +
 `kubernetes-namespaces:masterUrl` | 2.17 | The Kubernetes Namespaces component provides a producer to execute kubernetes namespace operations and a consumer to consume namespace events.
 
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index f648d26..cf3f652 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -272,6 +272,7 @@
 	* [Kubernetes ConfigMap](kubernetes-config-maps-component.adoc)
 	* [Kubernetes Deployments](kubernetes-deployments-component.adoc)
 	* [Kubernetes HPA](kubernetes-hpa-component.adoc)
+	* [Kubernetes Job](kubernetes-job-component.adoc)
 	* [Kubernetes Namespaces](kubernetes-namespaces-component.adoc)
 	* [Kubernetes Nodes](kubernetes-nodes-component.adoc)
 	* [Kubernetes Persistent Volume](kubernetes-persistent-volumes-component.adoc)
diff --git a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
index 4a4e73c..c547a68 100644
--- a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java
@@ -32,7 +32,7 @@ public class WsComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the ahc-wss component. This is
+     * Whether to enable auto configuration of the ahc-ws component. This is
      * enabled by default.
      */
     private Boolean enabled;
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConfiguration.java
index 23ba409..cc8c2fb 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConfiguration.java
@@ -32,7 +32,8 @@ public class BeanComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the bean component
+     * Whether to enable auto configuration of the bean component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConfiguration.java
index 856d787..7a49145 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConfiguration.java
@@ -32,7 +32,8 @@ public class ClassComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the class component
+     * Whether to enable auto configuration of the class component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/binding/springboot/BindingNameComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/binding/springboot/BindingNameComponentConfiguration.java
index e252898..0fa054b 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/binding/springboot/BindingNameComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/binding/springboot/BindingNameComponentConfiguration.java
@@ -33,7 +33,8 @@ public class BindingNameComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the binding component
+     * Whether to enable auto configuration of the binding component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentConfiguration.java
index 761ccce..17cda1c 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentConfiguration.java
@@ -33,7 +33,8 @@ public class BrowseComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the browse component
+     * Whether to enable auto configuration of the browse component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentConfiguration.java
index b731bda..fafe5ad 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentConfiguration.java
@@ -33,7 +33,8 @@ public class ControlBusComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the controlbus component
+     * Whether to enable auto configuration of the controlbus component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataformat/springboot/DataFormatComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataformat/springboot/DataFormatComponentConfiguration.java
index 6debd4f..766d896 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataformat/springboot/DataFormatComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataformat/springboot/DataFormatComponentConfiguration.java
@@ -33,7 +33,8 @@ public class DataFormatComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the dataformat component
+     * Whether to enable auto configuration of the dataformat component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataset/springboot/DataSetComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataset/springboot/DataSetComponentConfiguration.java
index 71de1c3..f402e3e 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataset/springboot/DataSetComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/dataset/springboot/DataSetComponentConfiguration.java
@@ -33,7 +33,8 @@ public class DataSetComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the dataset component
+     * Whether to enable auto configuration of the dataset component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
index caa695f..cdbe035 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/direct/springboot/DirectComponentConfiguration.java
@@ -33,7 +33,8 @@ public class DirectComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the direct component
+     * Whether to enable auto configuration of the direct component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
index bd89cda..78bee16 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConfiguration.java
@@ -33,7 +33,8 @@ public class DirectVmComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the direct-vm component
+     * Whether to enable auto configuration of the direct-vm component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/file/springboot/FileComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/file/springboot/FileComponentConfiguration.java
index c057353..7d8aac1 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/file/springboot/FileComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/file/springboot/FileComponentConfiguration.java
@@ -32,7 +32,8 @@ public class FileComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the file component
+     * Whether to enable auto configuration of the file component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/language/springboot/LanguageComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/language/springboot/LanguageComponentConfiguration.java
index 1743837..79c7eb7 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/language/springboot/LanguageComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/language/springboot/LanguageComponentConfiguration.java
@@ -33,7 +33,8 @@ public class LanguageComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the language component
+     * Whether to enable auto configuration of the language component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
index b8fbd92..4649d41 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/log/springboot/LogComponentConfiguration.java
@@ -32,7 +32,8 @@ public class LogComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the log component
+     * Whether to enable auto configuration of the log component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/mock/springboot/MockComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/mock/springboot/MockComponentConfiguration.java
index ff149e8..7f43ba0 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/mock/springboot/MockComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/mock/springboot/MockComponentConfiguration.java
@@ -33,7 +33,8 @@ public class MockComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the mock component
+     * Whether to enable auto configuration of the mock component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
index e1741c9..73ed057 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/properties/springboot/PropertiesComponentConfiguration.java
@@ -35,7 +35,8 @@ public class PropertiesComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the properties component
+     * Whether to enable auto configuration of the properties component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/ref/springboot/RefComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/ref/springboot/RefComponentConfiguration.java
index e2ae2f6..6f206f0 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/ref/springboot/RefComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/ref/springboot/RefComponentConfiguration.java
@@ -33,7 +33,8 @@ public class RefComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the ref component
+     * Whether to enable auto configuration of the ref component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestApiComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestApiComponentConfiguration.java
index 436f4ea..4942665 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestApiComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestApiComponentConfiguration.java
@@ -33,7 +33,8 @@ public class RestApiComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the rest-api component
+     * Whether to enable auto configuration of the rest-api component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
index d3e8f0b..05090ae 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/rest/springboot/RestComponentConfiguration.java
@@ -33,7 +33,8 @@ public class RestComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the rest component
+     * Whether to enable auto configuration of the rest component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/saga/springboot/SagaComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/saga/springboot/SagaComponentConfiguration.java
index 375f6a8..889ced0 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/saga/springboot/SagaComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/saga/springboot/SagaComponentConfiguration.java
@@ -33,7 +33,8 @@ public class SagaComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the saga component
+     * Whether to enable auto configuration of the saga component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
index 9672aa5..c9c2bfa 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/scheduler/springboot/SchedulerComponentConfiguration.java
@@ -33,7 +33,8 @@ public class SchedulerComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the scheduler component
+     * Whether to enable auto configuration of the scheduler component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
index cdf528b..82ccd66 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConfiguration.java
@@ -33,7 +33,8 @@ public class SedaComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the seda component
+     * Whether to enable auto configuration of the seda component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
index 2633216..afffc11 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConfiguration.java
@@ -33,7 +33,8 @@ public class StubComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the stub component
+     * Whether to enable auto configuration of the stub component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/test/springboot/TestComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/test/springboot/TestComponentConfiguration.java
index 6f9355d..2f62d3d 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/test/springboot/TestComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/test/springboot/TestComponentConfiguration.java
@@ -33,7 +33,8 @@ public class TestComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the test component
+     * Whether to enable auto configuration of the test component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/timer/springboot/TimerComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/timer/springboot/TimerComponentConfiguration.java
index 0d903e8..84cd0c1 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/timer/springboot/TimerComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/timer/springboot/TimerComponentConfiguration.java
@@ -33,7 +33,8 @@ public class TimerComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the timer component
+     * Whether to enable auto configuration of the timer component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
index 22318ef..82c1e92 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConfiguration.java
@@ -32,7 +32,8 @@ public class ValidatorComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the validator component
+     * Whether to enable auto configuration of the validator component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
index 83ca18e..ff81b0f 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConfiguration.java
@@ -33,7 +33,8 @@ public class VmComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the vm component
+     * Whether to enable auto configuration of the vm component. This is enabled
+     * by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
index 751d6a7..fabb30d 100644
--- a/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-core-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConfiguration.java
@@ -34,7 +34,8 @@ public class XsltComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the xslt component
+     * Whether to enable auto configuration of the xslt component. This is
+     * enabled by default.
      */
     private Boolean enabled;
     /**
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
index ea00bd5..9df4074 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
@@ -32,7 +32,7 @@ public class HttpComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the https component. This is
+     * Whether to enable auto configuration of the http component. This is
      * enabled by default.
      */
     private Boolean enabled;
diff --git a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
index c71dd5b..4c9399c 100644
--- a/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http4-starter/src/main/java/org/apache/camel/component/http4/springboot/HttpComponentConfiguration.java
@@ -32,7 +32,7 @@ public class HttpComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the https4 component. This is
+     * Whether to enable auto configuration of the http4 component. This is
      * enabled by default.
      */
     private Boolean enabled;
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java
index 9524594..6088d05 100644
--- a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/job/springboot/KubernetesJobComponentConfiguration.java
@@ -33,6 +33,11 @@ public class KubernetesJobComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
+     * Whether to enable auto configuration of the kubernetes-job component.
+     * This is enabled by default.
+     */
+    private Boolean enabled;
+    /**
      * Whether the component should resolve property placeholders on itself when
      * starting. Only properties which are of String type can use property
      * placeholders.
diff --git a/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
index b71aba9..4be098d 100644
--- a/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
@@ -38,7 +38,7 @@ public class MailComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the pop3s component. This is
+     * Whether to enable auto configuration of the imap component. This is
      * enabled by default.
      */
     private Boolean enabled;
diff --git a/platforms/spring-boot/components-starter/camel-sip-starter/src/main/java/org/apache/camel/component/sip/springboot/SipComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-sip-starter/src/main/java/org/apache/camel/component/sip/springboot/SipComponentConfiguration.java
index 512b77d..add23b9 100644
--- a/platforms/spring-boot/components-starter/camel-sip-starter/src/main/java/org/apache/camel/component/sip/springboot/SipComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-sip-starter/src/main/java/org/apache/camel/component/sip/springboot/SipComponentConfiguration.java
@@ -33,7 +33,7 @@ public class SipComponentConfiguration
             ComponentConfigurationPropertiesCommon {
 
     /**
-     * Whether to enable auto configuration of the sips component. This is
+     * Whether to enable auto configuration of the sip component. This is
      * enabled by default.
      */
     private Boolean enabled;