使用go-template返回正确的键值

时间:2019-06-06 10:51:52

标签: kubernetes yaml go-templates

我正在尝试从kubernetes响应中检索键clientSecret的值,但是我找不到正确的go语法。

我尝试过以下命令:

kubectl get secret client-secret -o yaml --namespace magic-test -o go-template --template="{{range .items}}{{range .data}}{{.clientSecret}} {{end}}{{end}}"

其他变体

这是我尝试从中检索的yaml输出

kubectl get secret client-secret -n magic-test -o yaml 
apiVersion: v1
data:
  clientSecret: NmQQuCNFiOWItsdfOTAyMCb00MjEwLWFiNGQtNTI4NDdiNWM5ZjMx
kind: Secret
metadata:
  creationTimestamp: 2019-05-31T14:03:44Z
  name: client-secret
  namespace: magic-test
  resourceVersion: "11544532074"
  selfLink: /api/v1/namespaces/magic-test/secrets/client-secret
  uid: e72acdsfbcc-83fsdac-1sdf1e9-9sdffaf-0050dsf56b7c1fa
type: Opaque

如何获取clientSecret的值?

1 个答案:

答案 0 :(得分:2)

输出不是项目列表,而是对象或字典,因此您无法在管道上进行迭代,而仅可以通过感兴趣的键对其进行索引。

因此只需使用模板{{.data.clientSecret}}

kubectl get secret client-secret -o yaml --namespace magic-test -o go-template
    --template="{{.data.clientSecret}}"