我可以获取对象列表的所有内容,例如Secrets
和ConfigMaps
。
{
"kind": "SecretList",
"apiVersion": "v1",
"metadata": {
"selfLink": "/api/v1/namespaces/kube-system/secrets",
"resourceVersion": "499638"
},
"items": [{
"metadata": {
"name": "aaa",
"namespace": "kube-system",
"selfLink": "/api/v1/namespaces/kube-system/secrets/aaa",
"uid": "96b0fbee-f14c-423d-9734-53fed20ae9f9",
"resourceVersion": "1354",
"creationTimestamp": "2020-02-24T11:20:23Z"
},
"data": "aaa"
}]
}
但是我只想要名称列表,例如:"aaa"
。有什么办法吗?
kubectl get secretlist -o=jsonpath="{.items[*].metadata.name]}" | grep -v HEAD | head -n1
检查下面的链接以获取更多信息。https://kubernetes.io/docs/reference/kubectl/jsonpath/
jsonpath
输出来实现。请注意,您发布的规范在应用后会看起来完全不同。它将在您的Secret
命名空间中以及运行时创建一个kube-system
对象:$ kubectl get secret -n kube-system aaa -o json
输出将类似于以下内容:
{ "apiVersion": "v1", "kind": "Secret", "name": "aaa", "namespace": "kube-system", "resourceVersion": "34488887", "selfLink": "/api/v1/namespaces/kube-system/secrets/aaa", "uid": "229edeb3-57bf-11ea-b366-42010a9c0093" }, "type": "Opaque" }
仅获取name
的Secret
,您需要运行:
kubectl get secret aaa -n kube-system -o jsonpath='{.metadata.name}'