在決議 kubernetes kubectl 命令時獲取 jq: 錯誤: 語法錯誤,如果(Unix shell 參考問題?)
kubectl get pv -o=json | jq -c '.items[] | {name: .metadata.name, claimName: .spec | if has("claimRef") then .claimRef.name else empty end }'
嘗試獲取具有 PVC 的 PV,如果沒有 PVC,則可以為 null 或空。如果它為空或為空,則為它繪制名稱和它們各自的 PVC 的映射。
下面是 jq 命令的示例輸入或命令的輸出 kubectl get pv -o=json
"apiVersion": "v1",
"items": [{
"apiVersion": "v1",
"kind": "PersistentVolume",
"metadata": {
"annotations": {
"meta.helm.sh/release-name": "",
"meta.helm.sh/release-namespace": ""
},
"creationTimestamp": "",
"finalizers": [
""
],
"labels": {
"app.kubernetes.io/managed-by": ""
},
"name": "",
"resourceVersion": "",
"uid": ""
},
"spec": {
"accessModes": [
"ReadWriteMany"
],
"capacity": {
"storage": ""
},
"claimRef": {
"apiVersion": "",
"kind": "",
"name": "",
"namespace": "",
"resourceVersion": "",
"uid": ""
},
"csi": {
"driver": "",
"volumeHandle": ""
},
"persistentVolumeReclaimPolicy": "",
"volumeMode": ""
},
"status": {
"phase": ""
}
},
{
"apiVersion": "v1",
"kind": "PersistentVolume",
"metadata": {
"annotations": {
"meta.helm.sh/release-name": "",
"meta.helm.sh/release-namespace": ""
},
"creationTimestamp": "",
"finalizers": [
""
],
"labels": {
"app.kubernetes.io/managed-by": ""
},
"name": "",
"resourceVersion": "",
"uid": ""
},
"spec": {
"accessModes": [
"ReadWriteMany"
],
"capacity": {
"storage": ""
},
"claimRef": {
"apiVersion": "",
"kind": "",
"name": "",
"namespace": "",
"resourceVersion": "",
"uid": ""
},
"csi": {
"driver": "",
"volumeHandle": ""
},
"persistentVolumeReclaimPolicy": "",
"volumeMode": ""
},
"status": {
"phase": ""
}
}
],
"kind": "List",
"metadata": {
"resourceVersion": "",
"selfLink": ""
}
}```
For data security have removed the data and only kept the keys
Please help
uj5u.com熱心網友回復:
將括號括在claimName欄位的值周圍:
{
name: .metadata.name,
claimName: (.spec | if has("claimRef") then .claimRef.name else empty end)
}
根據您簡化示例的程度,您可以考慮將if陳述句減少為:
{
name: .metadata.name,
claimName: (.spec.claimRef.name? // empty)
}
請注意,在這兩種情況下,.claimName如果相應的測驗將失敗,不僅整個物件都會消失。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323701.html
標籤:猛击 贝壳 Kubernetes 知乎 kubectl
上一篇:如何在datagridviewvb.net中匯出多個選定的行
下一篇:驗證資料時出錯:ValidationError(Deployment.spec.template.metadata):未知欄位
