2017-09-15 12 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使用しますが、私していません一般的なシェルコマンドに精通していますから、私はあなたにそれを伝えることができます。それは間違っていて、おそらくそれだけで十分です。 (私はGoのテンプレートに多少慣れていて、あなたの文字列の比較は私にはうまく見えます)。テンプレートの前後で二重引用符を使用すると、実際にはテンプレートとして渡されている文字列を閉じることになります"myapp"の最初の二重引用符。テンプレートを一重引用符で囲むと次のようになります。

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

これは、わからないツールを直ちに非難する傾向の例です。 – Velkan