首先,我知道如果是单个
$
符号,我可以用$$
符号逃脱。我的场景类似于$log
。我希望按原样打印。
到目前为止我尝试过的事情:
$log
,它将设置一个空字符串$$log
,那么它只会设置$
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
版本:有问题的是,当我使用 3.5.4
时,它是 3.7.0
。
更新到最新稳定版本解决了该问题。
要转义 Helm value.yaml 中的美元符号,您可以编写以下字符串:
{{ printf "$" }}$$authenticated
这将产生一个输出:
$authenticated