簡體   English   中英

如何在 Helm yaml 文件中使用字符串 (Ex $log) 轉義 $ 符號

[英]How can I escape $ sign with a string (Ex $log) in Helm yaml file

首先,我知道如果它是一個單一的$符號,我可以用$$符號逃脫。 我的場景類似於$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

能否提供模板和值。yaml?

像這樣:

值。yaml

env:
  test1: $log
  test2: "$log"

log: test

模板/configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "test.fullname" . }}
data:
  test1: {{ .Values.env.test1 }}
  test2: {{ .Values.env.test2 }}
  test3: "$log"
  test4: $log
  test5: {{ print "$log" }}

output:

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  test1: $log
  test2: $log
  test3: "$log"
  test4: $log
  test5: $log

從評論中發布答案。


嘗試重現該問題后,它按預期結果工作。

唯一明顯的區別是使用的helm版本:有問題的是3.5.4而我使用的是3.7.0

更新到最后一個穩定版本解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM