Red Hat Camel K is no longer supported.
As of June 30, 2025, Red Hat build of Camel K has reached End of Life. The suggested replacements is Red Hat build of Apache Camel. For details about moving, see the Camel K to Camel Quarkus migration guide.4.2.3.5. 过滤 ConfigMap 或 Secret 数据
创建 ConfigMap 或 Secret 时,您可以指定多个信息源。例如,以下命令从两个源中创建一个名为 my-cm-multi的 ConfigMap:
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
oc create configmap my-cm-multi --from-literal=my-configmap-key="configmap content" --from-literal=my-configmap-key-2="another content"
当您运行与 --resource 选项的集成时,默认情况下,使用多个源创建的 ConfigMap 或 Secret 都会进行碎片处理。
如果要限制从 ConfigMap 或 Secret 恢复的信息数量,您可以在 ConfigMap 或 Secret 名称后指定 --resource 选项的 /key 表示法。例如,-- resource configmap:my-cm/my-key 或 --resource secret:my-secret/my-key。
在带有 --resource configmap 或 --resource secret 选项后,您可以使用 /key 表示法限制集成检索的信息数量。
前提条件
- 设置 Camel K 开发环境
- 您有一个 ConfigMap 或 Secret,其中包含来自多个源的值。
流程
创建使用 ConfigMap 或 Secret 中的一个资源的配置值的集成。例如,以下集成(名为
ResourceConfigmapKeyLocationRoute.java)引用my-cm-multiConfigMap:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行集成并使用
--resource选项及@path语法,并指定挂载源内容(文件、ConfigMap 或 Secret)的位置:例如,以下命令只指定 ConfigMap 中包含的源之一(
my-configmap-key-2@),并使用/tmp/app/data目录挂载它:kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --dev
kamel run --resource configmap:my-cm-multi/my-configmap-key-2@/tmp/app/data ResourceConfigmapKeyLocationRoute.java --devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查集成的 pod,以验证只有一个文件(例如
my-configmap-key-2)已挂载到正确的位置(例如,在/tmp/app/data目录中)。例如,运行以下命令:oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow