2017-09-15 113 views
1

我想顯示.metadata.labels.app設置爲「myapp」值的條目。如何比較go模板中的字符串?

命令:

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

它給出了一個錯誤:

output:1: function "myapp" not defined 

的結構是這樣的:

- 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 

回答

2

我以前沒有使用過kubetcl,但我我一般都熟悉shell命令,從中我可以告訴你一件事情t出錯了,也許這就是你所需要的。 (我對Go模板也有所瞭解,並且字符串比較對我來說看起來不錯)。通過在模板和模板中使用雙引號,實際上,您將關閉要作爲模板傳入的字符串在"myapp"的第一個雙引號。在模板周圍使用單引號應該有所幫助:

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

是的,這是一個傾向於立即責怪我們不知道的工具的例子。 – Velkan