【问题标题】:How can I escape $ sign with a string (Ex $log) in Helm yaml file如何在 Helm yaml 文件中使用字符串 (Ex $log) 转义 $ 符号
【发布时间】:2022-01-21 08:12:42
【问题描述】:

首先,我知道如果是单个$ 符号,我可以使用$$ 符号逃脱。我的场景类似于$log。我希望它按原样打印。

到目前为止我尝试过的事情:

  • 如果我给$log,它会设置一个空字符串
  • 如果我给$$log,那么它只会设置$
  • 尝试在相同的 values.yaml 文件中设置为 env,但结果与上述相同

我该如何解决这个问题?

更新:

我的值文件如下:

fluent-bit:
    env:
      - name: LOGSERVICE_FLB_RULE_DEFAULT_KEY
        value: $log
    image:
    .
    .
    .
        [FILTER]
            Name          rewrite_tag
            Match         kube.*
            Rule          $kubernetes['container_image'] ^.+solr:.+$ format.logging.solr false
            Rule          $kubernetes['container_image'] ^.+zookeeper:.+$ format.logging.zookeeper false
            Rule          ${LOGSERVICE_FLB_RULE_DEFAULT_KEY} ^.*$ format.logging false
            Emitter_Name  re_emitted_with_tag

我的期望是:

    Rule          $kubernetes['container_image'] ^.+solr:.+$ format.logging.solr false
    Rule          $kubernetes['container_image'] ^.+zookeeper:.+$ format.logging.zookeeper false
    Rule          $log ^.*$ format.logging false

但我想说的是:

    Rule          ['container_image'] ^.+solr:.+$ format.logging.solr false
    Rule          ['container_image'] ^.+zookeeper:.+$ format.logging.zookeeper false
    Rule           ^.*$ format.logging false

【问题讨论】:

  • 使用的是哪个helm 版本?我会努力寻找解决办法
  • 掌舵版本是Version:"v3.5.4"
  • 你能给出一个你试图使用它的示例模板吗? Helm 本身没有任何关于转义 $ 的特定全局规则。
  • @AnujAroshA 您是运行helm template . 来查看它还是在创建过程中发生?我有helm 3.7.0,拉出fluent/fluent-bit 图表,输入的值与您在问题中提供的值相同,当我运行helm template . 时,它完全符合您的期望。您可以尝试更新helm 本身吗?
  • @moonkotte 是的,你是对的。一旦我更新了 Helm 版本,它就解决了。请更新您的评论作为答案,然后我可以接受。谢谢

标签: kubernetes yaml kubernetes-helm


【解决方案1】:

从 cmets 中发布答案。


尝试重现该问题后,它按预期工作。

唯一明显的区别是使用的helm 版本:问题是3.5.4,而我使用的是3.7.0

更新到最新的稳定版本解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2020-10-07
    • 1970-01-01
    • 2016-01-04
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多