我试图在我的 helm 模板中提供一个条件,以使用regexMatch
函数检查有效(或相当无效)的主机名。
这是我正在使用的代码行:
{{- if regexMatch "(?:[0-9]{1,3}\.){3}[0-9]{1,3}$" .Values.hostname }}
Run Code Online (Sandbox Code Playgroud)
值文件中的相关部分很简单:
hostname: 10.10.10.10
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了语法错误,没有真正的解释:
Error: parse error at (api-gateway/templates/ingress.yml:1): invalid syntax
当我尝试使用文档中的示例时: https: //helm.sh/docs/chart_template_guide/function_list/#regexmatch-mustregexmatch 它显然有效,所以我想知道为什么我的代码不起作用。
希望在这里得到一些帮助。我的 Fluentd 设置配置为将日志发送到 2 个输出,每个输出都需要不同的日志结构。
目前为止的配置是扫描日志两次,每次添加不同的标签,并根据标签配置相关的解析和输出。
例如:
myapp.log -> tag app_splunk -> filters of type x, y, x -> match and output to splunk
myapp.log -> tag app_s3 -> different set of filters -> output to S3
我正在尝试找到一种正确的方法来处理日志一次并获得相同的结果而无需双重标记。我尝试使用 @relabel 并根据标签提供一组新的过滤器,结果是日志已经由第一个过滤器集合处理,现在新的过滤器无法正常工作。
知道我怎样才能实现这一目标吗?
我需要通过选择相应的标签来检索 pod 列表。当 pod 有一个简单的标签app=foo
, 时k8s-app=bar
,选择就很容易了:
kubectl get po -l 'app in (foo), k8s-app in (bar)'
Run Code Online (Sandbox Code Playgroud)
复杂性来自包含特殊字符的标签,例如:app.kubernetes.io/name=foo
所以当我只查询这个标签时,我没有问题,但是如果我尝试将此标签添加到现有查询中,它将以返回no resources were found
.
kubectl get po -l app.kubernetes.io/name=foo,app=bar
kubectl get po -l 'app.kubernetes.io/name in (foo), app in (bar)'
Run Code Online (Sandbox Code Playgroud)
知道如何在单个查询中加入两个标签吗?