Untitled

 avatar
unknown
plain_text
2 months ago
1.5 kB
7
Indexable
kubectl get pods -n <namespace> -o json | jq '
  reduce .items[] as $pod (
    {cpuRequest: 0, memRequest: 0, cpuLimit: 0, memLimit: 0, excluded: []};
    if ($pod.metadata.name | startswith("eric")) then
      if ($pod.spec.initContainers // []) == [] then
        .cpuRequest += (
          ($pod.spec.containers[]?.resources.requests.cpu // "0m" | sub("m$"; "") | tonumber) / 1000
        ) |
        .memRequest += (
          (
            ($pod.spec.containers[]?.resources.requests.memory // "0Mi" | capture("(?<value>[0-9]+)(?<unit>Mi|Gi|m)$").value | tonumber) *
            (if $pod.spec.containers[]?.resources.requests.memory | contains("Gi") then 1024 else 1 end) *
            (if $pod.spec.containers[]?.resources.requests.memory | contains("m") then 1.049e-6 else 1 end)
          )
        ) |
        .cpuLimit += (
          ($pod.spec.containers[]?.resources.limits.cpu // "0m" | sub("m$"; "") | tonumber) / 1000
        ) |
        .memLimit += (
          (
            ($pod.spec.containers[]?.resources.limits.memory // "0Mi" | capture("(?<value>[0-9]+)(?<unit>Mi|Gi|m)$").value | tonumber) *
            (if $pod.spec.containers[]?.resources.limits.memory | contains("Gi") then 1024 else 1 end) *
            (if $pod.spec.containers[]?.resources.limits.memory | contains("m") then 1.049e-6 else 1 end)
          )
        )
      else
        .excluded += [$pod.metadata.name]
      end
    else
      .excluded += [$pod.metadata.name]
    end
  )
'
Editor is loading...
Leave a Comment