0

我有一个安装了 Camel-k 运算符并正常工作的 Kubernets 环境,如果我使用 Kamel-client 它可以工作(“kamel run Routes.xml”),但我需要在不使用 kamel-client 的情况下运行 XML Route。

我发现我可以创建一个 .yaml ( https://operatorhub.io/operator/camel-k ) 并使用“kubectl apply -f integrationJava.yaml”,这对我有用,它是 XML 之前的第一步,但是我收到一个错误。

apiVersion: camel.apache.org/v1
kind: Integration
metadata:
  name: example
spec:
  sources:
  - content: |
      import org.apache.camel.builder.RouteBuilder;

      public class Example extends RouteBuilder {
          @Override
          public void configure() throws Exception {
              from("timer:tick")
                  .setBody(constant("Hello World!"))
              .to("log:info?skipBodyLineSeparator=false");
          }
      }
  name: Example.java

骆驼操作员吊舱出错

12/03/2021 09:57:53 {"level":"error","ts":1615553873.387946,"logger":"controller","msg":"Reconciler error","controller":"integration-controller","name":"javaintegration","namespace":"operator","error":"error executing post actions: error during replace resource: could not create or replace resource javaintegration: Deployment.apps \"javaintegration\" is invalid: [spec.template.spec.volumes[0].configMap.items[0].path: Required value, spec.template.spec.containers[0].volumeMounts[0].name: Not found: \"i-source-000\"]","errorVerbose":"Deployment.apps \"javaintegration\" is invalid: [spec.template.spec.volumes[0].configMap.items[0].path: Required value, spec.template.spec.containers[0].volumeMounts[0].name: Not found: \"i-source-000\"]

它说的是有关volumes / volumeMounts的内容,但我已经在crd-integration.yml中查找了这些参数,但它没有类似的东西。

或者这是骆驼运营商本身的一些参数?

4

3 回答 3

0

您可以使用 kamel cli 创建一个 xml 示例

kamel init foo.xml

然后运行该集成

kamel run foo.xml

然后你可以进入 k8s 找到集成 CRD 并转储它,在那里你可以看到嵌入的 XML 路由代码。

然后,您可以获取此 CRD 转储(yaml 输出等)并将其用作您自己的 xml 路由的模板。

于 2021-10-14T14:34:01.540 回答
0

名称参数更正之后,更改为 XML 是我的目标。

apiVersion: camel.apache.org/v1
kind: Integration
metadata:
  name: xmlintegration
spec:
  sources:
  - name: integrationXml.xml
  language: xml
  content: |
      <?xml version="1.0" encoding="UTF-8"?>
      <routes xmlns="http://camel.apache.org/schema/spring">
      <route>
      <from uri="timer:tick"/>
      <to uri="log:info"/>
      </route>
      </routes>

它创建了 pod,但我收到了这个错误:

2021-03-12 15:07:58,616 INFO  [org.apa.cam.k.lis.SourcesConfigurer] (main) Loading routes from: SourceDefinition{name='integrationXml', language='xml', location='file:/etc/camel/sources/i-source-000/integrationXml.xml', }
2021-03-12 15:07:58,685 ERROR [org.apa.cam.qua.mai.CamelMainRuntime] (main) Failed to start application: org.apache.camel.RuntimeCamelException: java.io.EOFException: input contained no data
    at org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66)
于 2021-03-12T15:10:15.270 回答
0

缩进似乎是错误的,语言和内容需要在同一级别的名称,因为它们是同一数组元素的一部分

于 2021-10-14T07:51:12.593 回答