Emmerson created CAMEL-15519:
--------------------------------
Summary: kubernetes-pods consumer raise a No type converter
available exception
Key: CAMEL-15519
URL: https://issues.apache.org/jira/browse/CAMEL-15519
Project: Camel
Issue Type: Wish
Components: camel-kubernetes
Affects Versions: 3.4.2
Reporter: Emmerson
Hello,
I am testing kubernetes-pods consumer and in the first test it works fine, then
I run a kubernetes job (this create internally a Pod) and I get a "_No type
converter available_" exception in the console.
The pod consumer source code is here:
[https://github.com/Emmerson-Miranda/camel/blob/master/camel3-cdi/cdi-k8s-pocs/src/main/java/edu/emmerson/camel/k8s/jobs/camel_k8s_jobs/KubernetesRouteConsumerPods.java]
The pod creation source code is here
[https://github.com/Emmerson-Miranda/camel/blob/master/camel3-cdi/cdi-k8s-pocs/src/main/java/edu/emmerson/camel/k8s/jobs/camel_k8s_jobs/KubernetesCreateJob.java]
*Bellow the stacktrace*
[ https://192.168.64.3:8443/...] KubernetesRouteConsumerPods INFO KEEPING pod
name: job-1599734811571-rls7l
[ XNIO-1 task-1] UndertowConsumer WARN Caused by:
[org.apache.camel.NoTypeConversionAvailableException - No type converter
available to convert from type: io.fabric8.kubernetes.api.model.batch.Job to
the required type: java.nio.ByteBuffer with value Job(apiVersion=batch/v1,
kind=Job, metadata=ObjectMeta(annotations=null, clusterName=null,
creationTimestamp=2020-09-10T10:46:51Z, deletionGracePeriodSeconds=null,
deletionTimestamp=null, finalizers=[], generateName=null, generation=null,
labels=\{app=jobFromCamelApp, jobLabelKey1=value1, jobLabelKey2=value2},
managedFields=[ManagedFieldsEntry(apiVersion=batch/v1, fieldsType=FieldsV1,
fieldsV1=FieldsV1(additionalProperties=\{f:metadata={f:labels={.={}, f:app={},
f:jobLabelKey1={}, f:jobLabelKey2={}}}, f:spec=\{f:activeDeadlineSeconds={},
f:backoffLimit={}, f:completions={}, f:parallelism={},
f:template=\{f:metadata={f:annotations={.={}, f:jobMetadataAnnotation1={}},
f:labels=\{.={}, f:app={}, f:orderId={}, f:podLabelKey1={},
f:podLabelKey2={}}}, f:spec=\{f:containers={k:{"name":"pi"}=\{.={},
f:command={}, f:image={}, f:imagePullPolicy={}, f:name={}, f:resources={},
f:terminationMessagePath={}, f:terminationMessagePolicy={}}}, f:dnsPolicy={},
f:restartPolicy={}, f:schedulerName={}, f:securityContext={},
f:terminationGracePeriodSeconds={}}}, f:ttlSecondsAfterFinished={}}}),
manager=okhttp, operation=Update, time=2020-09-10T10:46:51Z,
additionalProperties={})], name=job-1599734811571, namespace=default,
ownerReferences=[], resourceVersion=1688691,
selfLink=/apis/batch/v1/namespaces/default/jobs/job-1599734811571,
uid=df5c8ed7-1436-4c57-854a-5703fa3baed8, additionalProperties={}),
spec=JobSpec(activeDeadlineSeconds=7200, backoffLimit=6, completions=1,
manualSelector=null, parallelism=1, selector=LabelSelector(matchExpressions=[],
matchLabels=\{controller-uid=df5c8ed7-1436-4c57-854a-5703fa3baed8},
additionalProperties={}),
template=PodTemplateSpec(metadata=ObjectMeta(annotations=\{jobMetadataAnnotation1=random
value}, clusterName=null, creationTimestamp=null,
deletionGracePeriodSeconds=null, deletionTimestamp=null, finalizers=[],
generateName=null, generation=null, labels=\{app=podFromCamelApp,
controller-uid=df5c8ed7-1436-4c57-854a-5703fa3baed8,
job-name=job-1599734811571, orderId=54702d2c-554b-4fa8-91ef-9e4e7abfe055,
podLabelKey1=value1, podLabelKey2=value2}, managedFields=[], name=null,
namespace=null, ownerReferences=[], resourceVersion=null, selfLink=null,
uid=null, additionalProperties={}), spec=PodSpec(activeDeadlineSeconds=null,
affinity=null, automountServiceAccountToken=null,
containers=[Container(args=[], command=[echo, Job created from Apache Camel
code at Thu Sep 10 11:46:51 BST 2020], env=[], envFrom=[], image=perl,
imagePullPolicy=Always, lifecycle=null, livenessProbe=null, name=pi, ports=[],
readinessProbe=null, resources=ResourceRequirements(limits=null, requests=null,
additionalProperties={}), securityContext=null, startupProbe=null, stdin=null,
stdinOnce=null, terminationMessagePath=/dev/termination-log,
terminationMessagePolicy=File, tty=null, volumeDevices=[], volumeMounts=[],
workingDir=null, additionalProperties={})], dnsConfig=null,
dnsPolicy=ClusterFirst, enableServiceLinks=null, ephemeralContainers=[],
hostAliases=[], hostIPC=null, hostNetwork=null, hostPID=null, hostname=null,
imagePullSecrets=[], initContainers=[], nodeName=null, nodeSelector=null,
overhead=null, preemptionPolicy=null, priority=null, priorityClassName=null,
readinessGates=[], restartPolicy=OnFailure, runtimeClassName=null,
schedulerName=default-scheduler,
securityContext=PodSecurityContext(fsGroup=null, fsGroupChangePolicy=null,
runAsGroup=null, runAsNonRoot=null, runAsUser=null, seLinuxOptions=null,
supplementalGroups=[], sysctls=[], windowsOptions=null,
additionalProperties={}), serviceAccount=null, serviceAccountName=null,
shareProcessNamespace=null, subdomain=null, terminationGracePeriodSeconds=30,
tolerations=[], topologySpreadConstraints=[], volumes=[],
additionalProperties={}), additionalProperties={}),
ttlSecondsAfterFinished=null, additionalProperties={}),
status=JobStatus(active=null, completionTime=null, conditions=[], failed=null,
startTime=null, succeeded=null, additionalProperties={}),
additionalProperties={})]
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: io.fabric8.kubernetes.api.model.batch.Job to
the required type: java.nio.ByteBuffer with value Job(apiVersion=batch/v1,
kind=Job, metadata=ObjectMeta(annotations=null, clusterName=null,
creationTimestamp=2020-09-10T10:46:51Z, deletionGracePeriodSeconds=null,
deletionTimestamp=null, finalizers=[], generateName=null, generation=null,
labels=\{app=jobFromCamelApp, jobLabelKey1=value1, jobLabelKey2=value2},
managedFields=[ManagedFieldsEntry(apiVersion=batch/v1, fieldsType=FieldsV1,
fieldsV1=FieldsV1(additionalProperties=\{f:metadata={f:labels={.={}, f:app={},
f:jobLabelKey1={}, f:jobLabelKey2={}}}, f:spec=\{f:activeDeadlineSeconds={},
f:backoffLimit={}, f:completions={}, f:parallelism={},
f:template=\{f:metadata={f:annotations={.={}, f:jobMetadataAnnotation1={}},
f:labels=\{.={}, f:app={}, f:orderId={}, f:podLabelKey1={},
f:podLabelKey2={}}}, f:spec=\{f:containers={k:{"name":"pi"}=\{.={},
f:command={}, f:image={}, f:imagePullPolicy={}, f:name={}, f:resources={},
f:terminationMessagePath={}, f:terminationMessagePolicy={}}}, f:dnsPolicy={},
f:restartPolicy={}, f:schedulerName={}, f:securityContext={},
f:terminationGracePeriodSeconds={}}}, f:ttlSecondsAfterFinished={}}}),
manager=okhttp, operation=Update, time=2020-09-10T10:46:51Z,
additionalProperties={})], name=job-1599734811571, namespace=default,
ownerReferences=[], resourceVersion=1688691,
selfLink=/apis/batch/v1/namespaces/default/jobs/job-1599734811571,
uid=df5c8ed7-1436-4c57-854a-5703fa3baed8, additionalProperties={}),
spec=JobSpec(activeDeadlineSeconds=7200, backoffLimit=6, completions=1,
manualSelector=null, parallelism=1, selector=LabelSelector(matchExpressions=[],
matchLabels=\{controller-uid=df5c8ed7-1436-4c57-854a-5703fa3baed8},
additionalProperties={}),
template=PodTemplateSpec(metadata=ObjectMeta(annotations=\{jobMetadataAnnotation1=random
value}, clusterName=null, creationTimestamp=null,
deletionGracePeriodSeconds=null, deletionTimestamp=null, finalizers=[],
generateName=null, generation=null, labels=\{app=podFromCamelApp,
controller-uid=df5c8ed7-1436-4c57-854a-5703fa3baed8,
job-name=job-1599734811571, orderId=54702d2c-554b-4fa8-91ef-9e4e7abfe055,
podLabelKey1=value1, podLabelKey2=value2}, managedFields=[], name=null,
namespace=null, ownerReferences=[], resourceVersion=null, selfLink=null,
uid=null, additionalProperties={}), spec=PodSpec(activeDeadlineSeconds=null,
affinity=null, automountServiceAccountToken=null,
containers=[Container(args=[], command=[echo, Job created from Apache Camel
code at Thu Sep 10 11:46:51 BST 2020], env=[], envFrom=[], image=perl,
imagePullPolicy=Always, lifecycle=null, livenessProbe=null, name=pi, ports=[],
readinessProbe=null, resources=ResourceRequirements(limits=null, requests=null,
additionalProperties={}), securityContext=null, startupProbe=null, stdin=null,
stdinOnce=null, terminationMessagePath=/dev/termination-log,
terminationMessagePolicy=File, tty=null, volumeDevices=[], volumeMounts=[],
workingDir=null, additionalProperties={})], dnsConfig=null,
dnsPolicy=ClusterFirst, enableServiceLinks=null, ephemeralContainers=[],
hostAliases=[], hostIPC=null, hostNetwork=null, hostPID=null, hostname=null,
imagePullSecrets=[], initContainers=[], nodeName=null, nodeSelector=null,
overhead=null, preemptionPolicy=null, priority=null, priorityClassName=null,
readinessGates=[], restartPolicy=OnFailure, runtimeClassName=null,
schedulerName=default-scheduler,
securityContext=PodSecurityContext(fsGroup=null, fsGroupChangePolicy=null,
runAsGroup=null, runAsNonRoot=null, runAsUser=null, seLinuxOptions=null,
supplementalGroups=[], sysctls=[], windowsOptions=null,
additionalProperties={}), serviceAccount=null, serviceAccountName=null,
shareProcessNamespace=null, subdomain=null, terminationGracePeriodSeconds=30,
tolerations=[], topologySpreadConstraints=[], volumes=[],
additionalProperties={}), additionalProperties={}),
ttlSecondsAfterFinished=null, additionalProperties={}),
status=JobStatus(active=null, completionTime=null, conditions=[], failed=null,
startTime=null, succeeded=null, additionalProperties={}),
additionalProperties={})
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:216)
~[camel-base-3.4.2.jar:3.4.2]
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:168)
~[camel-base-3.4.2.jar:3.4.2]
at
org.apache.camel.component.undertow.UndertowConsumer.sendResponse(UndertowConsumer.java:259)
~[camel-undertow-3.4.2.jar:3.4.2]
at
org.apache.camel.component.undertow.UndertowConsumer.handleRequest(UndertowConsumer.java:231)
[camel-undertow-3.4.2.jar:3.4.2]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
[undertow-core-2.1.2.Final.jar:2.1.2.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
[undertow-core-2.1.2.Final.jar:2.1.2.Final]
at
org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
at
org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1423)
[jboss-threads-3.1.0.Final.jar:3.1.0.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
[ https://192.168.64.3:8443/...] KubernetesRouteConsumerPods INFO Got event
from Pod: job-1599734811571-rls7l, action: MODIFIED Phase: Pending
--
This message was sent by Atlassian Jira
(v8.3.4#803005)