gpt4 book ai didi

kubernetes - 如何使用 kubectl 命令从 k8s configmap 中的 yaml 文件中获取值?

转载 作者:行者123 更新时间:2023-12-02 12:31:30 26 4
gpt4 key购买 nike

假设configmap如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
namespace: ${namespace}
data:
my-config.yaml: |-
keyA:
keyB: a-value

如何使用 kubectl 命令从 configmap 中获取 keyB 的值(即 a-value)?

PS:我正在考虑使用 -o jsonpath-o 'go-template=... 选项,但我无法找出正确的语法.

最佳答案

您可以使用 jsonpathgo-template 获取 data.my-config.yaml 值。

jsonpath 示例:

$ kubectl get cm my-configmap -o "jsonpath={.data['my-config\.yaml']}"
keyA:
keyB: a-value

go-template 示例:

$ kubectl get cm my-configmap -o 'go-template={{index .data "my-config.yaml"}}'
keyA:
keyB: a-value

请注意,通过在 YAML 上使用 |-,您定义了一个 Multiline YAML String ,这意味着返回值是一个带有换行符的字符串 (\n)。

如果您只需要 keyB 值,您可以使用您的输出提供 YAML 处理器,如 yq .例如:

$ kubectl get cm my-configmap -o 'go-template={{index .data "my-config.yaml"}}' | yq -r .keyA.keyB
a-value

关于kubernetes - 如何使用 kubectl 命令从 k8s configmap 中的 yaml 文件中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58423601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com