如何比较go模板中的字符串?

时间:2017-09-15 08:59:46

标签: go kubernetes go-templates

我想显示.metadata.labels.app设置为"myapp"值的条目。

命令:

kubectl get pods -o go-template --template="{{range .items}}{{if eq .metadata.labels.app "myapp"}}{{.metadata.name}} {{end}}{{end}}"

它出错了:

  

输出:1:函数“myapp”未定义

结构如下:

- apiVersion: v1
  kind: Pod
  metadata:
    creationTimestamp: 2017-09-15T08:18:26Z
    generateName: myapp-2830765207-
    labels:
      app: myapp
      pod-template-hash: "2830765207"
    name: myapp-2830765207-dh359
    namespace: default

1 个答案:

答案 0 :(得分:6)

我之前没有使用过kubetcl,但我一般都熟悉shell命令,从中可以告诉你一件事情出错了,也许这就是你所需要的。 (我也对Go模板有点熟悉,你的字符串比较看起来很好。)通过在模板周围和模板中使用双引号,你实际上是关闭你作为模板传入的字符串。 "myapp"中的第一个双引号。在模板周围使用单引号应该有所帮助:

kubectl get pods -o go-template --template='{{range .items}}{{if eq .metadata.labels.app "myapp"}}{{.metadata.name}} {{end}}{{end}}'