Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- kubectl get pods --all-namespaces -o json | jq '[
- .items[] | (
- {
- namespace: .metadata.namespace,
- pod: .metadata.name,
- statuses: (
- [
- .status.containerStatuses[] | { name, ready, restartCount }
- ] | map( select( .restartCount > 0 ) )
- )
- }
- ) | select( .statuses | length > 0 )
- ] | . as $original | (
- {
- namespaces: (
- reduce $original[] as $item (
- {} ; (
- if ( . | has($item.namespace) ) then (
- .[$item.namespace] += ( reduce $item.statuses[].restartCount as $count ( 0; . + $count ) )
- ) else (
- .[$item.namespace] = ( reduce $item.statuses[].restartCount as $count ( 0; . + $count ) )
- ) end
- )
- )
- ),
- pods: (
- reduce $original[] as $item (
- {} ; (
- if ( . | has($item.pod) ) then (
- .[$item.pod] += ( reduce $item.statuses[].restartCount as $count ( 0; . + $count ) )
- ) else (
- .[$item.pod] = ( reduce $item.statuses[].restartCount as $count ( 0; . + $count ) )
- ) end
- )
- )
- ),
- containers: (
- reduce $original[] as $item (
- {} ; (
- reduce $item.statuses[] as $status (
- . ;
- if ( . | has($status.name) ) then (
- .[$status.name] += $status.restartCount
- ) else (
- .[$status.name] = $status.restartCount
- ) end
- )
- )
- )
- ),
- services: (
- reduce $original[] as $item (
- {} ; (
- reduce $item.statuses[] as $status (
- . ;
- if ( . | has("" + $status.name + "." + $item.namespace + ".svc.cluster.local") ) then (
- .["" + $status.name + "." + $item.namespace + ".svc.cluster.local"] += $status.restartCount
- ) else (
- .["" + $status.name + "." + $item.namespace + ".svc.cluster.local"] = $status.restartCount
- ) end
- )
- )
- )
- )
- }
- )'
Add Comment
Please, Sign In to add comment