有办法从JsonPath命令行获取nodeSelector关键字的kubectl吗?
如果我运行kubectl explain deployment --recursive命令,它将输出一个包含所有关键字的列表:
apiVersion <string>
kind <string>
metadata <Object>
annotations <map[string]string>
clusterName <string>
creationTimestamp <string>
deletionGracePeriodSeconds <integer>
deletionTimestamp <string>
finalizers <[]string>
generateName <string>
generation <integer>
initializers <Object>
pending <[]Object>
name <string>
result <Object>
apiVersion <string>
code <integer>
details <Object>
causes <[]Object>
field <string>
message <string>
reason <string>
group <string>
kind <string>
...这个列表很长,加上像nodeSelector这样的关键字,很难看出JsonPath是spec.template.spec.nodeSelector。
发布于 2018-09-12 12:57:16
其中一种方法是将输出转换为这样的YAML格式:(为了获得这个输出,我做了几次替换和删除。不幸的是,没有可供kubectl实现的本地选项。)
apiVersion: 'string'
kind: 'string'
metadata:
annotations: 'map[string]string'
clusterName: 'string'
creationTimestamp: 'string'
deletionGracePeriodSeconds: 'integer'
deletionTimestamp: 'string'
finalizers: '[]string'
generateName: 'string'
generation: 'integer'
initializers:
pending:
name: 'string'
result:
apiVersion: 'string'
code: 'integer'
details:
causes:
field: 'string'
message: 'string'
reason: 'string'
...现在,您可以应用this堆栈溢出问题的解决方案来获得如下所示的扁平输出:
{
"apiVersion": "string",
"kind": "string",
"metadata.annotations": "map[string]string",
"metadata.clusterName": "string",
"metadata.creationTimestamp": "string",
"metadata.deletionGracePeriodSeconds": "integer",
"metadata.deletionTimestamp": "string",
"metadata.finalizers": "[]string",
"metadata.generateName": "string",
"metadata.generation": "integer",
"metadata.initializers.pending.name": "string",
"metadata.initializers.result.apiVersion": "string",
"metadata.initializers.result.code": "integer",
"metadata.initializers.result.details.causes.field": "string",
"metadata.initializers.result.details.causes.message": "string",
"metadata.initializers.result.details.causes.reason": "string",
...
}然后,您可以筛选或搜索结果,以获得您想要的值。
https://stackoverflow.com/questions/52284615
复制相似问题