kubernetes kubectl -o go-template >坏字符U+002 F '/'

qq24tv8q  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(132)

我试图获取pod的restartCount以匹配部署,但'/'导致问题

查询:kubectl -n <namespace> get pod -o go-template='{{range .items}}{{if eq .metadata.labels.app.kubernetes.io/name "my-app"}}{{ (index .status.containerStatuses 0).restartCount}}{{end}}{{end}}'
错误template: output:1: bad character U+002F '/'

我试着用“索引”,但没有帮助。我也试过添加引号,转义特殊字符'/',但没有运气。
任何帮助都是值得赞赏的。谢谢你。

gcmastyq

gcmastyq1#

在测试中

if eq .metadata.labels.app.kubernetes.io/name "my-app"

Go text/template语法中不允许使用/字符。您可能正在寻找一个对象

metadata:
  labels:
    app.kubernetes.io/name: my-app

.也有特殊的语法:它将查找metadatalabels,然后在其中查找单个级别app,以此类推。
标准的index函数允许您使用任意字符串作为Map索引(在其他上下文中,包括计算值或数组索引的整数),这可能正是您在这里需要的

if eq (index .metadata.labels "app.kubernetes.io/name") "my-app"

相关问题