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

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


The following commit(s) were added to refs/heads/main by this push:
     new fc90dc5da7d CAMEL-21107 - Camel-Kubernetes: Add ability to add 
annotation to create resources operation - Deployments (#15385)
fc90dc5da7d is described below

commit fc90dc5da7de4448c7466f43418c700c13522e7b
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Sep 2 08:51:56 2024 +0200

    CAMEL-21107 - Camel-Kubernetes: Add ability to add annotation to create 
resources operation - Deployments (#15385)
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../catalog/components/kubernetes-deployments.json | 11 ++++----
 .../components/openshift-deploymentconfigs.json    | 11 ++++----
 .../deployments/kubernetes-deployments.json        | 11 ++++----
 .../openshift-deploymentconfigs.json               | 11 ++++----
 .../component/kubernetes/KubernetesConstants.java  |  3 +++
 .../deployments/KubernetesDeploymentsProducer.java | 15 ++++++++---
 .../KubernetesDeploymentsProducerTest.java         | 30 ++++++++++++++++++++++
 ...ubernetesDeploymentsEndpointBuilderFactory.java | 13 ++++++++++
 ...iftDeploymentConfigsEndpointBuilderFactory.java | 13 ++++++++++
 9 files changed, 95 insertions(+), 23 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
index 26ea0d30aad..c8736b4f01a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kubernetes-deployments.json
@@ -32,11 +32,12 @@
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Producer operation", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION"
 },
     "CamelKubernetesNamespaceName": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The namespace name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_NAMESPACE_NAME"
 },
     "CamelKubernetesDeploymentsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_LABELS"
 },
-    "CamelKubernetesDeploymentName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
-    "CamelKubernetesDeploymentSpec": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_SPEC"
 },
-    "CamelKubernetesDeploymentReplicas": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
-    "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
-    "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
+    "CamelKubernetesDeploymentsAnnotations": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_ANNOTATIONS"
 },
+    "CamelKubernetesDeploymentName": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
+    "CamelKubernetesDeploymentSpec": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_SPEC"
 },
+    "CamelKubernetesDeploymentReplicas": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
+    "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
+    "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
index 7de3085a16a..c9d29031d72 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/openshift-deploymentconfigs.json
@@ -32,11 +32,12 @@
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Producer operation", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION"
 },
     "CamelKubernetesNamespaceName": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The namespace name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_NAMESPACE_NAME"
 },
     "CamelKubernetesDeploymentsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_LABELS"
 },
-    "CamelKubernetesDeploymentName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
-    "CamelKubernetesDeploymentReplicas": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
-    "CamelKubernetesDeploymentConfigSpec": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment config", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_CONFIG_SPEC"
 },
-    "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
-    "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
+    "CamelKubernetesDeploymentsAnnotations": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_ANNOTATIONS"
 },
+    "CamelKubernetesDeploymentName": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
+    "CamelKubernetesDeploymentReplicas": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
+    "CamelKubernetesDeploymentConfigSpec": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment config", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_CONFIG_SPEC"
 },
+    "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
+    "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
index 26ea0d30aad..c8736b4f01a 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/kubernetes/deployments/kubernetes-deployments.json
@@ -32,11 +32,12 @@
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Producer operation", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION"
 },
     "CamelKubernetesNamespaceName": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The namespace name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_NAMESPACE_NAME"
 },
     "CamelKubernetesDeploymentsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_LABELS"
 },
-    "CamelKubernetesDeploymentName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
-    "CamelKubernetesDeploymentSpec": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_SPEC"
 },
-    "CamelKubernetesDeploymentReplicas": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
-    "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
-    "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
+    "CamelKubernetesDeploymentsAnnotations": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_ANNOTATIONS"
 },
+    "CamelKubernetesDeploymentName": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
+    "CamelKubernetesDeploymentSpec": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.kubernetes.api.model.apps.DeploymentSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_SPEC"
 },
+    "CamelKubernetesDeploymentReplicas": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
+    "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
+    "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
diff --git 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
index 7de3085a16a..c9d29031d72 100644
--- 
a/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
+++ 
b/components/camel-kubernetes/src/generated/resources/META-INF/org/apache/camel/component/openshift/deploymentconfigs/openshift-deploymentconfigs.json
@@ -32,11 +32,12 @@
     "CamelKubernetesOperation": { "index": 0, "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Producer operation", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_OPERATION"
 },
     "CamelKubernetesNamespaceName": { "index": 1, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The namespace name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_NAMESPACE_NAME"
 },
     "CamelKubernetesDeploymentsLabels": { "index": 2, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_LABELS"
 },
-    "CamelKubernetesDeploymentName": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
-    "CamelKubernetesDeploymentReplicas": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
-    "CamelKubernetesDeploymentConfigSpec": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment config", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_CONFIG_SPEC"
 },
-    "CamelKubernetesEventAction": { "index": 6, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
-    "CamelKubernetesEventTimestamp": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
+    "CamelKubernetesDeploymentsAnnotations": { "index": 3, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The deployment labels", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENTS_ANNOTATIONS"
 },
+    "CamelKubernetesDeploymentName": { "index": 4, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The deployment name", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_NAME"
 },
+    "CamelKubernetesDeploymentReplicas": { "index": 5, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The desired instance count", 
"constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_REPLICAS"
 },
+    "CamelKubernetesDeploymentConfigSpec": { "index": 6, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The spec for a deployment config", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_DEPLOYMENT_CONFIG_SPEC"
 },
+    "CamelKubernetesEventAction": { "index": 7, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "io.fabric8.kubernetes.client.Watcher.Action", "enum": [ "ADDED", 
"MODIFIED", "DELETED", "ERROR", "BOOKMARK" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": 
"Action watched by the consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_ 
[...]
+    "CamelKubernetesEventTimestamp": { "index": 8, "kind": "header", 
"displayName": "", "group": "consumer", "label": "consumer", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Timestamp of the action watched by the 
consumer", "constantName": 
"org.apache.camel.component.kubernetes.KubernetesConstants#KUBERNETES_EVENT_TIMESTAMP"
 }
   },
   "properties": {
     "masterUrl": { "index": 0, "kind": "path", "displayName": "Master Url", 
"group": "common", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.kubernetes.KubernetesConfiguration", 
"configurationField": "configuration", "description": "URL to a remote 
Kubernetes API server. This should only be used when your Camel application i 
[...]
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 ae9e69f3036..6822a3f9dc0 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
@@ -167,6 +167,9 @@ public final class KubernetesConstants {
     @Metadata(label = "producer", description = "The deployment labels", 
javaType = "Map<String, String>",
               applicableFor = { SCHEME_DEPLOYMENTS, SCHEME_DEPLOYMENT_CONFIGS 
})
     public static final String KUBERNETES_DEPLOYMENTS_LABELS = 
"CamelKubernetesDeploymentsLabels";
+    @Metadata(label = "producer", description = "The deployment labels", 
javaType = "Map<String, String>",
+              applicableFor = { SCHEME_DEPLOYMENTS, SCHEME_DEPLOYMENT_CONFIGS 
})
+    public static final String KUBERNETES_DEPLOYMENTS_ANNOTATIONS = 
"CamelKubernetesDeploymentsAnnotations";
     @Metadata(label = "producer", description = "The deployment name", 
javaType = "String",
               applicableFor = { SCHEME_DEPLOYMENTS, SCHEME_DEPLOYMENT_CONFIGS 
})
     public static final String KUBERNETES_DEPLOYMENT_NAME = 
"CamelKubernetesDeploymentName";
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 7e6c36085b4..d39b5524ff3 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
@@ -169,11 +169,20 @@ public class KubernetesDeploymentsProducer extends 
DefaultProducer {
                     String.format("%s a specific Deployment require specify a 
Deployment spec bean", operationName));
         }
         Map<String, String> labels = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, 
Map.class);
-        Deployment deploymentCreating = new 
DeploymentBuilder().withNewMetadata().withName(deploymentName).withLabels(labels)
-                .endMetadata().withSpec(deSpec).build();
+        Map<String, String> annotations
+                = 
exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_ANNOTATIONS,
 Map.class);
+        DeploymentBuilder deploymentCreating;
+        if (ObjectHelper.isEmpty(annotations)) {
+            deploymentCreating = new 
DeploymentBuilder().withNewMetadata().withName(deploymentName).withLabels(labels)
+                    .endMetadata().withSpec(deSpec);
+        } else {
+            deploymentCreating = new 
DeploymentBuilder().withNewMetadata().withName(deploymentName).withLabels(labels)
+                    .withAnnotations(annotations)
+                    .endMetadata().withSpec(deSpec);
+        }
         Deployment deployment
                 = 
operation.apply(getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespaceName)
-                        .resource(deploymentCreating));
+                        .resource(deploymentCreating.build()));
 
         prepareOutboundMessage(exchange, deployment);
     }
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 09315f2922a..8758b174dd4 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
@@ -102,6 +102,34 @@ public class KubernetesDeploymentsProducerTest extends 
KubernetesTestSupport {
         assertEquals(13, result.getSpec().getReplicas());
     }
 
+    @Test
+    void createDeploymentWithAnnotations() {
+        Map<String, String> labels = Map.of("my.label.key", "my.label.value");
+        Map<String, String> annotations = Map.of("my.annotation.key", 
"my.annotation.value");
+        DeploymentSpec spec = new 
DeploymentSpecBuilder().withReplicas(13).build();
+        Deployment de1
+                = new 
DeploymentBuilder().withNewMetadata().withName("de1").withNamespace("test").withLabels(labels)
+                        .withAnnotations(annotations).and()
+                        .withSpec(spec).build();
+        
server.expect().post().withPath("/apis/apps/v1/namespaces/test/deployments").andReturn(200,
 de1).once();
+
+        Exchange ex = 
template.request("direct:createDeploymentWithAnnotations", exchange -> {
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, 
"test");
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, 
labels);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, 
"de1");
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_SPEC, 
spec);
+            
exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_ANNOTATIONS,
 annotations);
+        });
+
+        Deployment result = ex.getMessage().getBody(Deployment.class);
+
+        assertEquals("test", result.getMetadata().getNamespace());
+        assertEquals("de1", result.getMetadata().getName());
+        assertEquals(labels, result.getMetadata().getLabels());
+        assertEquals(13, result.getSpec().getReplicas());
+        assertEquals(annotations, result.getMetadata().getAnnotations());
+    }
+
     @Test
     void updateDeployment() {
         Map<String, String> labels = Map.of("my.label.key", "my.label.value");
@@ -190,6 +218,8 @@ public class KubernetesDeploymentsProducerTest extends 
KubernetesTestSupport {
                         
.toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=deleteDeployment");
                 from("direct:createDeployment")
                         
.toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=createDeployment");
+                from("direct:createDeploymentWithAnnotations")
+                        
.toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=createDeployment");
                 from("direct:updateDeployment")
                         
.toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=updateDeployment");
                 from("direct:scaleDeployment")
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KubernetesDeploymentsEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KubernetesDeploymentsEndpointBuilderFactory.java
index 998f1324da2..f091df98cca 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KubernetesDeploymentsEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/KubernetesDeploymentsEndpointBuilderFactory.java
@@ -1486,6 +1486,19 @@ public interface 
KubernetesDeploymentsEndpointBuilderFactory {
         public String kubernetesDeploymentsLabels() {
             return "CamelKubernetesDeploymentsLabels";
         }
+        /**
+         * The deployment labels.
+         * 
+         * The option is a: {@code Map<String, String>} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * KubernetesDeploymentsAnnotations}.
+         */
+        public String kubernetesDeploymentsAnnotations() {
+            return "CamelKubernetesDeploymentsAnnotations";
+        }
         /**
          * The deployment name.
          * 
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenshiftDeploymentConfigsEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenshiftDeploymentConfigsEndpointBuilderFactory.java
index bdfc9657178..616f02792be 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenshiftDeploymentConfigsEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpenshiftDeploymentConfigsEndpointBuilderFactory.java
@@ -1486,6 +1486,19 @@ public interface 
OpenshiftDeploymentConfigsEndpointBuilderFactory {
         public String kubernetesDeploymentsLabels() {
             return "CamelKubernetesDeploymentsLabels";
         }
+        /**
+         * The deployment labels.
+         * 
+         * The option is a: {@code Map<String, String>} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * KubernetesDeploymentsAnnotations}.
+         */
+        public String kubernetesDeploymentsAnnotations() {
+            return "CamelKubernetesDeploymentsAnnotations";
+        }
         /**
          * The deployment name.
          * 


Reply via email to