Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-15519

kubernetes-pods consumer raise a No type converter available exception

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.4.2
    • None
    • camel-kubernetes
    • None
    • Unknown

    Description

      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

      Attachments

        Activity

          People

            acosentino Andrea Cosentino
            emmerson Emmerson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: