-o で指定できる出力形式について

https://gist.github.com/so0k/42313dbb3b547a0f51a547bb968696ba

json, wide, name は説明不要

custom-columns

kubectl get po -o=custom-columns=NAME:.metadata.name,NODE:.spec.nodeName

go-template

Goのtemplate形式で記述可能。制御構文が書ける

kubectl get no -o go-template='{{range .items}}{{if .spec.unschedulable}}{{.metadata.name}} {{.spec.externalID}}{{"\n"}}{{end}}{{end}}'

jsonpath

aws cli でも使われているJSONPath

kubectl get secret my-secret -o jsonpath='{.data}'
# rangeキーワードでforが書ける
kubectl get pods -o jsonpath='{range .items[*]}{..image}{"\n"}{end}'