inj*_*joy 4 jsonpath go-templates jq kubernetes
假设 configmap 列出如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
namespace: ${namespace}
data:
my-config.yaml: |-
keyA:
keyB: a-value
Run Code Online (Sandbox Code Playgroud)
如何使用命令从 configmap获取keyB(即) 的值?a-valuekubectl
PS:我正在考虑使用-o jsonpathor-o 'go-template=...选项,但我无法找出正确的语法。
您可以使用或data.my-config.yaml来获取该值。jsonpathgo-template
示例jsonpath:
$ kubectl get cm my-configmap -o "jsonpath={.data['my-config\.yaml']}"
keyA:
keyB: a-value
Run Code Online (Sandbox Code Playgroud)
示例go-template:
$ kubectl get cm my-configmap -o 'go-template={{index .data "my-config.yaml"}}'
keyA:
keyB: a-value
Run Code Online (Sandbox Code Playgroud)
请注意,通过|-在 YAML 上使用,您正在定义一个多行 YAML 字符串,这意味着返回的值是一个带有换行符的单个字符串 ( \n)。
如果您只需要keyB值,则可以使用输出来提供 YAML 处理器,例如yq. 例如:
$ kubectl get cm my-configmap -o 'go-template={{index .data "my-config.yaml"}}' | yq -r .keyA.keyB
a-value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13297 次 |
| 最近记录: |