Untitled

 avatar
unknown
plain_text
3 months ago
1.2 kB
7
Indexable
kubectl get pods -n <namespace> -o json | jq '
  .items[] | 
  if (.spec.containers[]?.resources.requests.cpu == null and .spec.containers[]?.resources.requests.memory == null and 
      .spec.containers[]?.resources.limits.cpu == null and .spec.containers[]?.resources.limits.memory == null) then
    {type: "excluded", name: .metadata.name}
  else
    {type: "included", name: .metadata.name, containers: .spec.containers[] | 
      {
        cpuRequest: (.resources.requests.cpu // "0m"),
        memRequest: (.resources.requests.memory // "0Mi"),
        cpuLimit: (.resources.limits.cpu // "0m"),
        memLimit: (.resources.limits.memory // "0Mi")
      }
    }
  end
' | tee /dev/stderr | jq -s '
  reduce .[] as $item (
    {cpuRequest: 0, memRequest: 0, cpuLimit: 0, memLimit: 0};
    if $item.type == "included" then
      .cpuRequest += ($item.containers.cpuRequest | gsub("m"; "") | tonumber) |
      .memRequest += ($item.containers.memRequest | gsub("Mi"; "") | tonumber) |
      .cpuLimit += ($item.containers.cpuLimit | gsub("m"; "") | tonumber) |
      .memLimit += ($item.containers.memLimit | gsub("Mi"; "") | tonumber)
    else . end
  )
'
Editor is loading...
Leave a Comment