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

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


The following commit(s) were added to refs/heads/main by this push:
     new 04b7a12fcbf CAMEL-21738: camel-kubernetes: Use a common approach to 
listing namespaced resources (#17263)
04b7a12fcbf is described below

commit 04b7a12fcbfe71b757795aabc2524a6eb6ba08c6
Author: Andrej Vaňo <[email protected]>
AuthorDate: Tue Feb 25 16:07:16 2025 +0100

    CAMEL-21738: camel-kubernetes: Use a common approach to listing namespaced 
resources (#17263)
---
 .../config_maps/KubernetesConfigMapsProducer.java  |  5 ++
 .../cronjob/KubernetesCronJobProducer.java         | 34 +++++++++----
 .../deployments/KubernetesDeploymentsProducer.java | 13 +++--
 .../events/KubernetesEventsProducer.java           | 24 ++++-----
 .../kubernetes/hpa/KubernetesHPAProducer.java      | 28 +++++++----
 .../kubernetes/job/KubernetesJobProducer.java      | 22 ++++++---
 .../KubernetesPersistentVolumesClaimsProducer.java | 36 ++++++++------
 .../kubernetes/pods/KubernetesPodsProducer.java    | 23 +++++----
 .../KubernetesReplicationControllersProducer.java  | 29 +++++------
 .../KubernetesResourcesQuotaProducer.java          | 23 +++++++--
 .../secrets/KubernetesSecretsProducer.java         | 33 +++++++------
 .../KubernetesServiceAccountsProducer.java         | 34 +++++++------
 .../services/KubernetesServicesProducer.java       | 33 ++++++-------
 .../producer/KubernetesConfigMapsProducerTest.java |  9 ++--
 .../producer/KubernetesCronJobProducerTest.java    | 57 ++++++++++++++++------
 .../KubernetesDeploymentsProducerTest.java         | 39 ++++++++++-----
 .../producer/KubernetesEventsProducerTest.java     | 30 ++++++++----
 .../producer/KubernetesHPAProducerTest.java        | 49 +++++++++++++------
 .../producer/KubernetesJobProducerTest.java        | 42 +++++++++++-----
 ...ernetesPersistentVolumesClaimsProducerTest.java | 40 ++++++++++-----
 .../producer/KubernetesPodsProducerTest.java       | 32 ++++++++----
 ...bernetesReplicationControllersProducerTest.java | 37 ++++++++++----
 .../KubernetesResourcesQuotaProducerTest.java      | 26 +++++++---
 .../producer/KubernetesSecretsProducerTest.java    | 36 ++++++++++----
 .../KubernetesServiceAccountsProducerTest.java     | 37 ++++++++++----
 .../producer/KubernetesServicesProducerTest.java   | 44 ++++++++++++-----
 26 files changed, 544 insertions(+), 271 deletions(-)

diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
index a6ab9bba8b5..c6a6a383788 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/config_maps/KubernetesConfigMapsProducer.java
@@ -104,6 +104,11 @@ public class KubernetesConfigMapsProducer extends 
DefaultProducer {
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS, 
Map.class);
         ConfigMapList configMapsList;
 
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing ConfigMaps by labels requires specifying 
labels");
+            throw new IllegalArgumentException("Listing ConfigMaps by labels 
requires specifying labels");
+        }
+
         if (ObjectHelper.isEmpty(namespace)) {
             configMapsList = 
getEndpoint().getKubernetesClient().configMaps().inAnyNamespace().withLabels(labels).list();
         } else {
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 87d62de04c0..1b4473a18f2 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
@@ -20,8 +20,10 @@ import java.util.HashMap;
 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.api.model.batch.v1.CronJob;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobList;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec;
 import io.fabric8.kubernetes.client.dsl.Resource;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
@@ -90,23 +92,37 @@ public class KubernetesCronJobProducer extends 
DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        CronJobList cronJobList = 
getEndpoint().getKubernetesClient().batch().v1().cronjobs().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        CronJobList cronJobList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            cronJobList = 
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inAnyNamespace().list();
+        } else {
+            cronJobList = 
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespace).list();
+        }
 
         prepareOutboundMessage(exchange, cronJobList.getItems());
     }
 
     protected void doListCronJobByLabel(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, 
Map.class);
+        CronJobList cronJobList;
+
         if (ObjectHelper.isEmpty(labels)) {
-            throw new IllegalArgumentException("Cron Job by labels require 
specify a labels set");
+            LOG.error("Listing CronJobs by labels requires specifying labels");
+            throw new IllegalArgumentException("Listing CronJobs by labels 
requires specifying labels");
         }
 
-        MixedOperation<CronJob, CronJobList, Resource<CronJob>> cronJobs
-                = getEndpoint().getKubernetesClient().batch().v1().cronjobs();
-
-        CronJobList jobList = cronJobs.withLabels(labels).list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            cronJobList
+                    = 
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inAnyNamespace().withLabels(labels).list();
+        } else {
+            cronJobList = 
getEndpoint().getKubernetesClient().batch().v1().cronjobs().inNamespace(namespace).withLabels(labels)
+                    .list();
+        }
 
-        prepareOutboundMessage(exchange, jobList.getItems());
+        prepareOutboundMessage(exchange, cronJobList.getItems());
     }
 
     protected void doGetCronJob(Exchange exchange) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
index 69481f4d22a..e1d5b5a0acb 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/deployments/KubernetesDeploymentsProducer.java
@@ -96,10 +96,10 @@ public class KubernetesDeploymentsProducer extends 
DefaultProducer {
         String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         DeploymentList deploymentsList;
 
-        if (ObjectHelper.isNotEmpty(namespace)) {
-            deploymentsList = 
getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespace).list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            deploymentsList = 
getEndpoint().getKubernetesClient().apps().deployments().inAnyNamespace().list();
         } else {
-            deploymentsList = 
getEndpoint().getKubernetesClient().apps().deployments().list();
+            deploymentsList = 
getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespace).list();
         }
 
         prepareOutboundMessage(exchange, deploymentsList.getItems());
@@ -111,13 +111,18 @@ public class KubernetesDeploymentsProducer extends 
DefaultProducer {
         MixedOperation<Deployment, DeploymentList, 
RollableScalableResource<Deployment>> deployments = getEndpoint()
                 .getKubernetesClient().apps().deployments();
 
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing Deployments by labels requires specifying 
labels");
+            throw new IllegalArgumentException("Listing Deployments by labels 
requires specifying labels");
+        }
+
         String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         DeploymentList deploymentsList;
 
         if (ObjectHelper.isNotEmpty(namespace)) {
             deploymentsList = 
deployments.inNamespace(namespace).withLabels(labels).list();
         } else {
-            deploymentsList = deployments.withLabels(labels).list();
+            deploymentsList = 
deployments.inAnyNamespace().withLabels(labels).list();
         }
 
         prepareOutboundMessage(exchange, deploymentsList.getItems());
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
index 08bf4c45ca0..3a65f05e3d6 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/events/KubernetesEventsProducer.java
@@ -91,29 +91,31 @@ public class KubernetesEventsProducer extends 
DefaultProducer {
 
     protected void doList(Exchange exchange) {
         EventList eventList;
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
-        if (ObjectHelper.isNotEmpty(namespaceName)) {
-            eventList = 
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespaceName).list();
-        } else {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        if (ObjectHelper.isEmpty(namespace)) {
             eventList = 
getEndpoint().getKubernetesClient().events().v1().events().inAnyNamespace().list();
+        } else {
+            eventList = 
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespace).list();
         }
         prepareOutboundMessage(exchange, eventList.getItems());
     }
 
     protected void doListEventsByLabel(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, 
Map.class);
+        EventList eventList;
+
         if (ObjectHelper.isEmpty(labels)) {
             LOG.error("Get events by labels require specify a labels set");
             throw new IllegalArgumentException("Get events by labels require 
specify a labels set");
         }
 
-        EventList eventList = getEndpoint().getKubernetesClient()
-                .events()
-                .v1()
-                .events()
-                .inAnyNamespace()
-                .withLabels(labels)
-                .list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            eventList = 
getEndpoint().getKubernetesClient().events().v1().events().inAnyNamespace().withLabels(labels).list();
+        } else {
+            eventList = 
getEndpoint().getKubernetesClient().events().v1().events().inNamespace(namespace).withLabels(labels)
+                    .list();
+        }
 
         prepareOutboundMessage(exchange, eventList.getItems());
     }
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
index 10a9f707c89..5f9167914d6 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/hpa/KubernetesHPAProducer.java
@@ -87,26 +87,36 @@ public class KubernetesHPAProducer extends DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        HorizontalPodAutoscalerList hpaList
-                = 
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        HorizontalPodAutoscalerList hpaList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            hpaList = 
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inAnyNamespace().list();
+        } else {
+            hpaList = 
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inNamespace(namespace)
+                    .list();
+        }
 
         prepareOutboundMessage(exchange, hpaList.getItems());
     }
 
     protected void doListHPAByLabel(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_LABELS, 
Map.class);
+        HorizontalPodAutoscalerList hpaList;
+
         if (ObjectHelper.isEmpty(labels)) {
             LOG.error("Get HPA by labels require specify a labels set");
             throw new IllegalArgumentException("Get HPA by labels require 
specify a labels set");
         }
 
-        HorizontalPodAutoscalerList hpaList = getEndpoint()
-                .getKubernetesClient()
-                .autoscaling()
-                .v1()
-                .horizontalPodAutoscalers()
-                .withLabels(labels)
-                .list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            hpaList = 
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inAnyNamespace()
+                    .withLabels(labels).list();
+        } else {
+            hpaList = 
getEndpoint().getKubernetesClient().autoscaling().v1().horizontalPodAutoscalers().inNamespace(namespace)
+                    .withLabels(labels).list();
+        }
 
         prepareOutboundMessage(exchange, hpaList.getItems());
     }
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 12f46b1a760..a60b6261e9b 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
@@ -24,9 +24,7 @@ import io.fabric8.kubernetes.api.model.batch.v1.Job;
 import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder;
 import io.fabric8.kubernetes.api.model.batch.v1.JobList;
 import io.fabric8.kubernetes.api.model.batch.v1.JobSpec;
-import io.fabric8.kubernetes.client.dsl.MixedOperation;
 import io.fabric8.kubernetes.client.dsl.Resource;
-import io.fabric8.kubernetes.client.dsl.ScalableResource;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
@@ -94,21 +92,33 @@ public class KubernetesJobProducer extends DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        JobList jobList = 
getEndpoint().getKubernetesClient().batch().v1().jobs().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        JobList jobList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            jobList = 
getEndpoint().getKubernetesClient().batch().v1().jobs().inAnyNamespace().list();
+        } else {
+            jobList = 
getEndpoint().getKubernetesClient().batch().v1().jobs().inNamespace(namespace).list();
+        }
 
         prepareOutboundMessage(exchange, jobList.getItems());
     }
 
     protected void doListJobByLabel(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, 
Map.class);
+        JobList jobList;
+
         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");
         }
 
-        MixedOperation<Job, JobList, ScalableResource<Job>> jobs = 
getEndpoint().getKubernetesClient().batch().v1().jobs();
-
-        JobList jobList = jobs.withLabels(labels).list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            jobList = 
getEndpoint().getKubernetesClient().batch().v1().jobs().inAnyNamespace().withLabels(labels).list();
+        } else {
+            jobList = 
getEndpoint().getKubernetesClient().batch().v1().jobs().inNamespace(namespace).withLabels(labels).list();
+        }
 
         prepareOutboundMessage(exchange, jobList.getItems());
     }
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
index 50a23a23b9a..6376a9260d6 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/persistent_volumes_claims/KubernetesPersistentVolumesClaimsProducer.java
@@ -87,29 +87,33 @@ public class KubernetesPersistentVolumesClaimsProducer 
extends DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        PersistentVolumeClaimList persistentVolumeClaimList
-                = 
getEndpoint().getKubernetesClient().persistentVolumeClaims().list();
-        prepareOutboundMessage(exchange, persistentVolumeClaimList.getItems());
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        PersistentVolumeClaimList pvcList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            pvcList = 
getEndpoint().getKubernetesClient().persistentVolumeClaims().inAnyNamespace().list();
+        } else {
+            pvcList = 
getEndpoint().getKubernetesClient().persistentVolumeClaims().inNamespace(namespace).list();
+        }
+
+        prepareOutboundMessage(exchange, pvcList.getItems());
     }
 
     protected void doListPersistentVolumesClaimsByLabels(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels
                 = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
 Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         PersistentVolumeClaimList pvcList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            pvcList = getEndpoint()
-                    .getKubernetesClient()
-                    .persistentVolumeClaims()
-                    .inNamespace(namespaceName)
-                    .withLabels(labels)
-                    .list();
+
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing PersistentVolumeClaims by labels requires 
specifying labels");
+            throw new IllegalArgumentException("Listing PersistentVolumeClaims 
by labels requires specifying labels");
+        }
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            pvcList = 
getEndpoint().getKubernetesClient().persistentVolumeClaims().inAnyNamespace().withLabels(labels).list();
         } else {
-            pvcList = getEndpoint()
-                    .getKubernetesClient()
-                    .persistentVolumeClaims()
-                    .inAnyNamespace()
-                    .withLabels(labels)
+            pvcList = 
getEndpoint().getKubernetesClient().persistentVolumeClaims().inNamespace(namespace).withLabels(labels)
                     .list();
         }
 
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
index c6fef5f3b3a..7a95bf151cf 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/pods/KubernetesPodsProducer.java
@@ -87,28 +87,33 @@ public class KubernetesPodsProducer extends DefaultProducer 
{
     }
 
     protected void doList(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         PodList podList;
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
-        if (ObjectHelper.isNotEmpty(namespaceName)) {
-            podList = 
getEndpoint().getKubernetesClient().pods().inNamespace(namespaceName).list();
-        } else {
+
+        if (ObjectHelper.isEmpty(namespace)) {
             podList = 
getEndpoint().getKubernetesClient().pods().inAnyNamespace().list();
+        } else {
+            podList = 
getEndpoint().getKubernetesClient().pods().inNamespace(namespace).list();
         }
+
         prepareOutboundMessage(exchange, podList.getItems());
     }
 
     protected void doListPodsByLabel(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, 
Map.class);
+        PodList podList;
+
         if (ObjectHelper.isEmpty(labels)) {
             LOG.error("Get pods by labels require specify a labels set");
             throw new IllegalArgumentException("Get pods by labels require 
specify a labels set");
         }
 
-        PodList podList = getEndpoint().getKubernetesClient()
-                .pods()
-                .inAnyNamespace()
-                .withLabels(labels)
-                .list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            podList = 
getEndpoint().getKubernetesClient().pods().inAnyNamespace().withLabels(labels).list();
+        } else {
+            podList = 
getEndpoint().getKubernetesClient().pods().inNamespace(namespace).withLabels(labels).list();
+        }
 
         prepareOutboundMessage(exchange, podList.getItems());
     }
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
index 5352d473598..83e284e82a4 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/replication_controllers/KubernetesReplicationControllersProducer.java
@@ -25,9 +25,7 @@ import 
io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
 import io.fabric8.kubernetes.api.model.ReplicationControllerList;
 import io.fabric8.kubernetes.api.model.ReplicationControllerSpec;
 import io.fabric8.kubernetes.api.model.StatusDetails;
-import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
 import io.fabric8.kubernetes.client.dsl.Resource;
-import io.fabric8.kubernetes.client.dsl.RollableScalableResource;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.kubernetes.AbstractKubernetesEndpoint;
 import org.apache.camel.component.kubernetes.KubernetesConstants;
@@ -93,39 +91,36 @@ public class KubernetesReplicationControllersProducer 
extends DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ReplicationControllerList rcList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            rcList = 
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespaceName).list();
-        } else {
+        if (ObjectHelper.isEmpty(namespace)) {
             rcList = 
getEndpoint().getKubernetesClient().replicationControllers().inAnyNamespace().list();
+        } else {
+            rcList = 
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespace).list();
         }
 
         prepareOutboundMessage(exchange, rcList.getItems());
     }
 
     protected void doListReplicationControllersByLabels(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels
                 = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
 Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ReplicationControllerList rcList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
 
-            NonNamespaceOperation<ReplicationController, 
ReplicationControllerList, RollableScalableResource<ReplicationController>> 
replicationControllers
-                    = getEndpoint()
-                            
.getKubernetesClient().replicationControllers().inNamespace(namespaceName);
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing ReplicationControllers by labels requires 
specifying labels");
+            throw new IllegalArgumentException("Listing ReplicationControllers 
by labels requires specifying labels");
+        }
 
-            rcList = replicationControllers.withLabels(labels).list();
+        if (ObjectHelper.isEmpty(namespace)) {
+            rcList = 
getEndpoint().getKubernetesClient().replicationControllers().inAnyNamespace().withLabels(labels).list();
         } else {
-            rcList = getEndpoint().getKubernetesClient()
-                    .replicationControllers()
-                    .inAnyNamespace()
-                    .withLabels(labels)
+            rcList = 
getEndpoint().getKubernetesClient().replicationControllers().inNamespace(namespace).withLabels(labels)
                     .list();
         }
 
         prepareOutboundMessage(exchange, rcList.getItems());
-
     }
 
     protected void doGetReplicationController(Exchange exchange) {
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
index 97da82798ab..7d1eecdc79b 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/resources_quota/KubernetesResourcesQuotaProducer.java
@@ -87,20 +87,33 @@ public class KubernetesResourcesQuotaProducer extends 
DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        ResourceQuotaList resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        ResourceQuotaList resList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().list();
+        } else {
+            resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespace).list();
+        }
 
         prepareOutboundMessage(exchange, resList.getItems());
     }
 
     protected void doListResourceQuotasByLabels(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels
                 = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
 Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ResourceQuotaList resList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespaceName).withLabels(labels).list();
-        } else {
+
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing ResourceQuotas by labels requires specifying 
labels");
+            throw new IllegalArgumentException("Listing ResourceQuotas by 
labels requires specifying labels");
+        }
+
+        if (ObjectHelper.isEmpty(namespace)) {
             resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inAnyNamespace().withLabels(labels).list();
+        } else {
+            resList = 
getEndpoint().getKubernetesClient().resourceQuotas().inNamespace(namespace).withLabels(labels).list();
         }
 
         prepareOutboundMessage(exchange, resList.getItems());
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
index 9328ebd8b1b..affa04104d3 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/secrets/KubernetesSecretsProducer.java
@@ -86,27 +86,32 @@ public class KubernetesSecretsProducer extends 
DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        SecretList secretsList = 
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        SecretList secretsList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            secretsList = 
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().list();
+        } else {
+            secretsList = 
getEndpoint().getKubernetesClient().secrets().inNamespace(namespace).list();
+        }
+
         prepareOutboundMessage(exchange, secretsList.getItems());
     }
 
     protected void doListSecretsByLabels(Exchange exchange) {
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS, 
Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         SecretList secretsList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            secretsList = getEndpoint()
-                    .getKubernetesClient()
-                    .secrets()
-                    .inNamespace(namespaceName)
-                    .withLabels(labels)
-                    .list();
+
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing Secrets by labels requires specifying labels");
+            throw new IllegalArgumentException("Listing Secrets by labels 
requires specifying labels");
+        }
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            secretsList = 
getEndpoint().getKubernetesClient().secrets().inAnyNamespace().withLabels(labels).list();
         } else {
-            secretsList = getEndpoint()
-                    .getKubernetesClient()
-                    .secrets()
-                    .inAnyNamespace()
-                    .withLabels(labels).list();
+            secretsList = 
getEndpoint().getKubernetesClient().secrets().inNamespace(namespace).withLabels(labels).list();
         }
 
         prepareOutboundMessage(exchange, secretsList.getItems());
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
index 16fc183f8e5..79f0cb4d65c 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/service_accounts/KubernetesServiceAccountsProducer.java
@@ -85,29 +85,33 @@ public class KubernetesServiceAccountsProducer extends 
DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        ServiceAccountList saList = 
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().list();
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        ServiceAccountList saList;
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            saList = 
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().list();
+        } else {
+            saList = 
getEndpoint().getKubernetesClient().serviceAccounts().inNamespace(namespace).list();
+        }
+
         prepareOutboundMessage(exchange, saList.getItems());
     }
 
     protected void doListServiceAccountsByLabels(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels
                 = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
 Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ServiceAccountList saList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            saList = getEndpoint()
-                    .getKubernetesClient()
-                    .serviceAccounts()
-                    .inNamespace(namespaceName)
-                    .withLabels(labels)
-                    .list();
+
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing ServiceAccounts by labels requires specifying 
labels");
+            throw new IllegalArgumentException("Listing ServiceAccounts by 
labels requires specifying labels");
+        }
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            saList = 
getEndpoint().getKubernetesClient().serviceAccounts().inAnyNamespace().withLabels(labels).list();
         } else {
-            saList = getEndpoint()
-                    .getKubernetesClient()
-                    .serviceAccounts()
-                    .inAnyNamespace()
-                    .withLabels(labels)
-                    .list();
+            saList = 
getEndpoint().getKubernetesClient().serviceAccounts().inNamespace(namespace).withLabels(labels).list();
         }
 
         prepareOutboundMessage(exchange, saList.getItems());
diff --git 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
index 01b52fd3f17..e78662b702a 100644
--- 
a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
+++ 
b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/services/KubernetesServicesProducer.java
@@ -87,34 +87,31 @@ public class KubernetesServicesProducer extends 
DefaultProducer {
     }
 
     protected void doList(Exchange exchange) {
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ServiceList servicesList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            servicesList = 
getEndpoint().getKubernetesClient().services().inNamespace(namespaceName).list();
-        } else {
+
+        if (ObjectHelper.isEmpty(namespace)) {
             servicesList = 
getEndpoint().getKubernetesClient().services().inAnyNamespace().list();
+        } else {
+            servicesList = 
getEndpoint().getKubernetesClient().services().inNamespace(namespace).list();
         }
         prepareOutboundMessage(exchange, servicesList.getItems());
     }
 
     protected void doListServiceByLabels(Exchange exchange) {
+        String namespace = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS, 
Map.class);
-        String namespaceName = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
String.class);
         ServiceList servicesList;
-        if (!ObjectHelper.isEmpty(namespaceName)) {
-            servicesList = getEndpoint()
-                    .getKubernetesClient()
-                    .services()
-                    .inNamespace(namespaceName)
-                    .withLabels(labels)
-                    .list();
+
+        if (ObjectHelper.isEmpty(labels)) {
+            LOG.error("Listing Services by labels requires specifying labels");
+            throw new IllegalArgumentException("Listing Services by labels 
requires specifying labels");
+        }
+
+        if (ObjectHelper.isEmpty(namespace)) {
+            servicesList = 
getEndpoint().getKubernetesClient().services().inAnyNamespace().withLabels(labels).list();
         } else {
-            servicesList = getEndpoint()
-                    .getKubernetesClient()
-                    .services()
-                    .inAnyNamespace()
-                    .withLabels(labels)
-                    .list();
+            servicesList = 
getEndpoint().getKubernetesClient().services().inNamespace(namespace).withLabels(labels).list();
         }
 
         prepareOutboundMessage(exchange, servicesList.getItems());
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
index 754be2d22fb..bb45c525675 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesConfigMapsProducerTest.java
@@ -80,13 +80,12 @@ public class KubernetesConfigMapsProducerTest extends 
KubernetesTestSupport {
         
server.expect().withPath("/api/v1/namespaces/test/configmaps?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200, new 
ConfigMapListBuilder().addNewItem().and().addNewItem().and().build())
                 .once();
-        Exchange ex = template.request("direct:listConfigMapsByLabels", 
exchange -> {
-            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS, 
labels);
-        });
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS, 
labels));
 
         assertEquals(3, ex.getMessage().getBody(List.class).size());
 
-        ex = template.request("direct:listConfigMapsByLabels", exchange -> {
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS, 
labels);
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
@@ -224,7 +223,7 @@ public class KubernetesConfigMapsProducerTest extends 
KubernetesTestSupport {
             public void configure() {
                 from("direct:list")
                         
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=listConfigMaps");
-                from("direct:listConfigMapsByLabels")
+                from("direct:listByLabels")
                         
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=listConfigMapsByLabels");
                 from("direct:getConfigMap")
                         
.to("kubernetes-config-maps:///?kubernetesClient=#kubernetesClient&operation=getConfigMap");
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
index 8a6266c3e1f..e12adb5712f 100644
--- 
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
@@ -16,13 +16,20 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 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.api.model.batch.v1.CronJob;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobListBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpec;
+import io.fabric8.kubernetes.api.model.batch.v1.CronJobSpecBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobSpecBuilder;
+import io.fabric8.kubernetes.api.model.batch.v1.JobTemplateSpecBuilder;
 import io.fabric8.kubernetes.client.KubernetesClient;
 import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
 import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
@@ -50,30 +57,50 @@ public class KubernetesCronJobProducerTest extends 
KubernetesTestSupport {
 
     @Test
     void listTest() {
-        server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs")
+        server.expect().withPath("/apis/batch/v1/cronjobs")
                 .andReturn(200, new 
CronJobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
-        List<?> result = template.requestBody("direct:listCronJob", "", 
List.class);
-
+        server.expect().withPath("/apis/batch/v1/namespaces/test/cronjobs")
+                .andReturn(200, new 
CronJobListBuilder().addNewItem().and().addNewItem().and().build())
+                .always();
+        List<?> result = template.requestBody("direct:list", "", List.class);
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
         server.expect()
-                
.withPath("/apis/batch/v1/namespaces/test/cronjobs?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
+                .withPath("/apis/batch/v1/cronjobs?labelSelector=" + 
urlEncodedLabels)
                 .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);
-        });
+                .always();
+        server.expect()
+                
.withPath("/apis/batch/v1/namespaces/test/cronjobs?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
CronJobListBuilder().addNewItem().and().addNewItem().and().build())
+                .always();
 
-        List<?> result = ex.getMessage().getBody(List.class);
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, 
labels));
 
+        List<?> result = ex.getMessage().getBody(List.class);
         assertEquals(3, result.size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_CRON_JOB_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
+        });
+
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
@@ -188,7 +215,7 @@ public class KubernetesCronJobProducerTest extends 
KubernetesTestSupport {
             public void configure() {
                 // the kubernetes-client is autowired on the component
 
-                
from("direct:listCronJob").to("kubernetes-cronjob:foo?operation=listCronJob");
+                
from("direct:list").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");
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
index 8758b174dd4..5eea75d8578 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesDeploymentsProducerTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.apps.Deployment;
 import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
@@ -52,30 +52,47 @@ public class KubernetesDeploymentsProducerTest extends 
KubernetesTestSupport {
 
     @Test
     void listTest() {
+        server.expect().withPath("/apis/apps/v1/deployments")
+                .andReturn(200, new 
DeploymentListBuilder().addNewItem().and().addNewItem().and().build()).once();
         server.expect().withPath("/apis/apps/v1/namespaces/test/deployments")
                 .andReturn(200, new 
DeploymentListBuilder().addNewItem().and().build()).once();
         List<?> result = template.requestBody("direct:list", "", List.class);
+        assertEquals(2, result.size());
 
-        assertEquals(1, result.size());
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(1, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
         server.expect()
-                
.withPath("/apis/apps/v1/namespaces/test/deployments?labelSelector="
-                          + toUrlEncoded("key1=value1,key2=value2"))
+                .withPath("/apis/apps/v1/deployments?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200, new 
DeploymentListBuilder().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");
+        server.expect()
+                
.withPath("/apis/apps/v1/namespaces/test/deployments?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
DeploymentListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, 
labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
index 01e0cfaef29..2f8cf47d764 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesEventsProducerTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.events.v1.Event;
 import io.fabric8.kubernetes.api.model.events.v1.EventBuilder;
@@ -60,24 +60,34 @@ public class KubernetesEventsProducerTest extends 
KubernetesTestSupport {
         Exchange ex = template.request("direct:list",
                 exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
         List<?> resultNamespace = ex.getMessage().getBody(List.class);
-
         assertEquals(2, resultNamespace.size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        
server.expect().withPath("/apis/events.k8s.io/v1/events?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        
server.expect().withPath("/apis/events.k8s.io/v1/events?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200, new 
EventListBuilder().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");
+        
server.expect().withPath("/apis/events.k8s.io/v1/namespaces/test/events?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
EventListBuilder().addNewItem().and().addNewItem().and().build()).once();
+
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, 
labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_EVENTS_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
index 4a924ff414f..fbce4aa348c 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesHPAProducerTest.java
@@ -16,11 +16,10 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
-import io.fabric8.kubernetes.api.model.PodListBuilder;
 import io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscaler;
 import 
io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerBuilder;
 import 
io.fabric8.kubernetes.api.model.autoscaling.v1.HorizontalPodAutoscalerListBuilder;
@@ -53,31 +52,51 @@ public class KubernetesHPAProducerTest extends 
KubernetesTestSupport {
 
     @Test
     void listTest() {
+        
server.expect().withPath("/apis/autoscaling/v1/horizontalpodautoscalers")
+                .andReturn(200,
+                        new 
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and()
+                                .build())
+                .once();
         
server.expect().withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers")
-                .andReturn(200, new 
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem()
-                        .and().build())
+                .andReturn(200, new 
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().build())
                 .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        
server.expect().withPath("/apis/autoscaling/v1/horizontalpodautoscalers?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200,
+                        new 
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and()
+                                .build())
+                .once();
         server.expect()
-                
.withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers?labelSelector="
-                          + toUrlEncoded("key1=value1,key2=value2"))
-                .andReturn(200, new 
PodListBuilder().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");
+                
.withPath("/apis/autoscaling/v1/namespaces/test/horizontalpodautoscalers?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
HorizontalPodAutoscalerListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_HPA_LABELS, labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_HPA_LABELS, labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
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
index 276cfca9870..c4c5103c40e 100644
--- 
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
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.LabelSelector;
 import io.fabric8.kubernetes.api.model.ObjectMeta;
@@ -55,28 +55,46 @@ public class KubernetesJobProducerTest extends 
KubernetesTestSupport {
 
     @Test
     void listTest() {
-        server.expect().withPath("/apis/batch/v1/namespaces/test/jobs")
+        server.expect().withPath("/apis/batch/v1/jobs")
                 .andReturn(200, new 
JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        server.expect().withPath("/apis/batch/v1/namespaces/test/jobs")
+                .andReturn(200, new 
JobListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     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", exchange -> {
-            Map<String, String> labels = new HashMap<>();
-            labels.put("key1", "value1");
-            labels.put("key2", "value2");
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        server.expect().withPath("/apis/batch/v1/jobs?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
JobListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        
server.expect().withPath("/apis/batch/v1/namespaces/test/jobs?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
JobListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_JOB_LABELS, labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
index ab59f95b3fc..90c354a578f 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPersistentVolumesClaimsProducerTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.ObjectMeta;
 import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
@@ -53,33 +53,49 @@ public class KubernetesPersistentVolumesClaimsProducerTest 
extends KubernetesTes
 
     @Test
     void listTest() {
-        
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims")
+        server.expect().withPath("/api/v1/persistentvolumeclaims")
                 .andReturn(200,
                         new 
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims")
+                .andReturn(200, new 
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        server.expect()
-                
.withPath("/api/v1/namespaces/test/persistentvolumeclaims?labelSelector="
-                          + toUrlEncoded("key1=value1,key2=value2"))
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        
server.expect().withPath("/api/v1/persistentvolumeclaims?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200,
                         new 
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        
server.expect().withPath("/api/v1/namespaces/test/persistentvolumeclaims?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
PersistentVolumeClaimListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         Exchange ex = template.request("direct:listByLabels", exchange -> {
-            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
-            Map<String, String> labels = new HashMap<>();
-            labels.put("key1", "value1");
-            labels.put("key2", "value2");
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
 labels);
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-        assertEquals(3, result.size());
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS,
 labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
+        });
+
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
index b0c22cf3d66..9d38c38cff9 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesPodsProducerTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.Pod;
 import io.fabric8.kubernetes.api.model.PodBuilder;
@@ -68,18 +68,30 @@ public class KubernetesPodsProducerTest extends 
KubernetesTestSupport {
 
     @Test
     void listByLabelsTest() throws Exception {
-        server.expect().withPath("/api/v1/pods?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
-                .andReturn(200, new 
PodListBuilder().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");
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        server.expect().withPath("/api/v1/pods?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
PodListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        server.expect().withPath("/api/v1/namespaces/test/pods?labelSelector=" 
+ urlEncodedLabels)
+                .andReturn(200, new 
PodListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_PODS_LABELS, labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
index 5f007ce7528..cc90d92719c 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesReplicationControllersProducerTest.java
@@ -16,10 +16,10 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.ReplicationController;
 import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder;
@@ -59,27 +59,44 @@ public class KubernetesReplicationControllersProducerTest 
extends KubernetesTest
                 .andReturn(200,
                         new 
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        
server.expect().withPath("/api/v1/namespaces/test/replicationcontrollers")
+                .andReturn(200, new 
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        
server.expect().withPath("/api/v1/replicationcontrollers?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        
server.expect().withPath("/api/v1/replicationcontrollers?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200,
                         new 
ReplicationControllerListBuilder().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");
+        
server.expect().withPath("/api/v1/namespaces/test/replicationcontrollers?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
ReplicationControllerListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
 labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLERS_LABELS,
 labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
index 559060cba60..e2a4438e8e0 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesResourcesQuotaProducerTest.java
@@ -55,9 +55,15 @@ public class KubernetesResourcesQuotaProducerTest extends 
KubernetesTestSupport
         server.expect().withPath("/api/v1/resourcequotas")
                 .andReturn(200, new 
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        server.expect().withPath("/api/v1/namespaces/test/resourcequotas")
+                .andReturn(200, new 
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
@@ -70,16 +76,22 @@ public class KubernetesResourcesQuotaProducerTest extends 
KubernetesTestSupport
                 .collect(Collectors.joining(",")));
 
         server.expect().withPath("/api/v1/resourcequotas?labelSelector=" + 
urlEncodedLabels)
-                .andReturn(200,
-                        new 
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .andReturn(200, new 
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        
server.expect().withPath("/api/v1/namespaces/test/resourcequotas?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
ResourceQuotaListBuilder().addNewItem().and().addNewItem().and().build())
                 .once();
-        Exchange ex = template.request("direct:listByLabels", exchange -> {
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
 labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS,
 labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
index a8afce45a87..32220c547f6 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesSecretsProducerTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.kubernetes.producer;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.Secret;
 import io.fabric8.kubernetes.api.model.SecretBuilder;
@@ -54,26 +55,43 @@ public class KubernetesSecretsProducerTest extends 
KubernetesTestSupport {
         server.expect().withPath("/api/v1/secrets")
                 .andReturn(200, new 
SecretListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        server.expect().withPath("/api/v1/namespaces/test/secrets")
+                .andReturn(200, new 
SecretListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        server.expect().withPath("/api/v1/secrets?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        server.expect().withPath("/api/v1/secrets?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200, new 
SecretListBuilder().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");
+        
server.expect().withPath("/api/v1/namespaces/test/secrets?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
SecretListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS, 
labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SECRETS_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
index db2bdbd43f2..13a757b41c3 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServiceAccountsProducerTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import io.fabric8.kubernetes.api.model.ServiceAccount;
 import io.fabric8.kubernetes.api.model.ServiceAccountBuilder;
@@ -54,27 +54,44 @@ public class KubernetesServiceAccountsProducerTest extends 
KubernetesTestSupport
                 .andReturn(200,
                         new 
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
                 .once();
+        server.expect().withPath("/api/v1/namespaces/test/serviceaccounts")
+                .andReturn(200, new 
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        server.expect().withPath("/api/v1/serviceaccounts?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        server.expect().withPath("/api/v1/serviceaccounts?labelSelector=" + 
urlEncodedLabels)
                 .andReturn(200,
                         new 
ServiceAccountListBuilder().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");
+        
server.expect().withPath("/api/v1/namespaces/test/serviceaccounts?labelSelector="
 + urlEncodedLabels)
+                .andReturn(200, new 
ServiceAccountListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
 labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_ACCOUNTS_LABELS,
 labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
diff --git 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
index 111f5d3ec23..84d2c4d599b 100644
--- 
a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
+++ 
b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/producer/KubernetesServicesProducerTest.java
@@ -16,11 +16,10 @@
  */
 package org.apache.camel.component.kubernetes.producer;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
-import io.fabric8.kubernetes.api.model.PodListBuilder;
 import io.fabric8.kubernetes.api.model.Service;
 import io.fabric8.kubernetes.api.model.ServiceBuilder;
 import io.fabric8.kubernetes.api.model.ServiceListBuilder;
@@ -55,26 +54,47 @@ public class KubernetesServicesProducerTest extends 
KubernetesTestSupport {
     @Test
     void listTest() {
         server.expect().withPath("/api/v1/services")
-                .andReturn(200, new 
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .andReturn(200,
+                        new 
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        server.expect().withPath("/api/v1/namespaces/test/services")
+                .andReturn(200, new 
ServiceListBuilder().addNewItem().and().addNewItem().and().build())
                 .once();
         List<?> result = template.requestBody("direct:list", "", List.class);
-
         assertEquals(3, result.size());
+
+        Exchange ex = template.request("direct:list",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test"));
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test
     void listByLabelsTest() throws Exception {
-        server.expect().withPath("/api/v1/services?labelSelector=" + 
toUrlEncoded("key1=value1,key2=value2"))
-                .andReturn(200, new 
PodListBuilder().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");
+        Map<String, String> labels = Map.of(
+                "key1", "value1",
+                "key2", "value2");
+
+        String urlEncodedLabels = 
toUrlEncoded(labels.entrySet().stream().map(e -> e.getKey() + "=" + 
e.getValue())
+                .collect(Collectors.joining(",")));
+
+        server.expect().withPath("/api/v1/services?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200,
+                        new 
ServiceListBuilder().addNewItem().and().addNewItem().and().addNewItem().and().build())
+                .once();
+        
server.expect().withPath("/api/v1/namespaces/test/services?labelSelector=" + 
urlEncodedLabels)
+                .andReturn(200, new 
ServiceListBuilder().addNewItem().and().addNewItem().and().build())
+                .once();
+        Exchange ex = template.request("direct:listByLabels",
+                exchange -> 
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS, 
labels));
+
+        assertEquals(3, ex.getMessage().getBody(List.class).size());
+
+        ex = template.request("direct:listByLabels", exchange -> {
             
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
         });
 
-        List<?> result = ex.getMessage().getBody(List.class);
-        assertEquals(3, result.size());
+        assertEquals(2, ex.getMessage().getBody(List.class).size());
     }
 
     @Test


Reply via email to