我有一个Kubernets环境,安装了Camel-k操作符,并且工作正常,如果我使用Kamel客户端,它就可以工作(“kamel run Routes.xml”),但是我需要在不使用Kamel客户端的情况下运行一个XML路由。
我发现我可以创建一个.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
****错误发生在Camel-Operator pod
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中查找了这些参数,它没有类似的内容。
或者这是 Camel 符本身的一些参数?
2条答案
按热度按时间bhmjp9jg1#
缩进似乎是错误的,语言和内容需要位于名称的同一级别,因为它们是同一数组元素的一部分
qij5mzcb2#
您可以使用kamel cli创建xml示例
然后运行该集成
然后,您可以进入k8s,找到集成CRD并将其转储,您可以在其中看到嵌入的XML路由代码。
然后,您可以获取此CRD转储(yaml输出等),并将其用作您自己的xml路由的模板。