我想使用 Terraform 在 Google Kubernetes Engine 的几个 k8s 集群中创建一个秘密。
我知道我可以在“kubernetes”提供程序中使用“host”、“token”和其他一些参数,但是我只能描述这些参数一次,并且我不知道如何在terraform文件中连接到另一个集群。
我的问题是如何通过 Terraform 在多个 k8s 集群中创建秘密(或执行其他操作)。也许您知道 github 上的一些工具或其他通过单个 terraform 文件进行操作的技巧?
我想输出所有空值,除了match 中的一个模式。例如,我知道有一些方法可以通过 @labels 做到这一点,但我确实想在match 中排除模式。
我想这样做:
<match {all tags except **events**}>
Run Code Online (Sandbox Code Playgroud)
我做了什么:
我知道我可以像这样在match 中使用 Ruby 表达式:
<match #{tag.match(/^.*event.*$/) ? "fake_tag" : "**"}>
@type null
</match>
Run Code Online (Sandbox Code Playgroud)
逻辑: “如果当前标签有模式 - 设置 fake_tag 跳过此匹配,否则设置 ** 输出全部为空”
但是这个表达式不起作用,因为 ENV 中没有变量 $tag。据我所知,Ruby 表达式不能使用 ${tag} 之类的配置变量。
也许我可以在匹配步骤之前设置 ENV 变量?
像这样:
<filter **event**>
#{ENV["FLUENTD_TAG"] = ${tag}}
</filter>
<match #{FLUENTD_TAG.match(/^.*event.*$/) ? "fake_tag" : "**"}>
@type null
</match>
Run Code Online (Sandbox Code Playgroud)
这些是我的想法,但也许有更简单的方法。
问题是 - 如何在匹配中排除模式?:-)