4.2.3.5. 过滤 ConfigMap 或 Secret 数据
在创建 ConfigMap 或 Secret 时,您可以指定多个信息源。例如,以下命令从两个源创建一个 ConfigMap(名为 my-cm-multi):
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