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"
Copy to Clipboard Toggle word wrap

当您运行与 --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 表示法来限制您的集成只检索的信息数量。

先决条件

流程

  1. 创建仅来自 ConfigMap 或 Secret 中某一资源的配置值的集成。例如,以下集成(名为 ResourceConfigmapKeyLocationRoute.java)引用 my-cm-multi ConfigMap:

    import org.apache.camel.builder.RouteBuilder;
    
    public class ResourceConfigmapKeyLocationRoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
    
        from("file:/tmp/app/data/?fileName=my-configmap-key-2&noop=true&idempotent=false")
           .log("resource file content is: ${body} consumed from
            ${header.CamelFileName}");
    
      }
    }
    Copy to Clipboard Toggle word wrap
  2. 运行集成并使用 --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
    Copy to Clipboard Toggle word wrap
  3. 检查集成的 pod,以验证是否只挂载了一个文件(如 my-configmap-key-2)并挂载到正确的位置(例如,在 /tmp/app/data 目录中)。例如,运行以下命令:

    oc exec <pod-name> -- cat /tmp/app/data/my-configmap-key-2
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat