kubectl - format the resource quota values in json format

5/22/2019

One way to get the resource quota values in kubernetes is to use the following command

>kubectl describe resourcequotas
Name:                   default-quota
Namespace:              my-namespace
Resource                Used     Hard
--------                ----     ----
configmaps              19       100
limits.cpu              13810m   18
limits.memory           25890Mi  36Gi

But issue is this display all the values in text file format. Anyone knows how I can get in json format!

Of course, I can parse the output and get the individual entry and construct the json.

kubectl describe quota  | grep limits.cpu | awk '{print $2}'
13810m

But I am looking for something inbuilt or some quick way of doing it. Thanks for your help.

-- nagendra547
json
kubectl
kubernetes

2 Answers

5/12/2020

kubectl itself provides a mechanism to provide jsonpath using -o jsonpath option. One of the main issues that I initially faced was with respect to having dot(.) in key. eg., limits.cpu. This issue can be solved by using the expression "limits\.cpu" (escaping dot)

kubectl get resourcequota -o jsonpath={.items[*].spec.hard."limits\.cpu"}
-- dinup24
Source: StackOverflow

5/22/2019

Thanks for your messages. Let me answer my own question, I have found one.

jq has solved my problem.

To get the Max limit of resources in json format

kubectl get quota -ojson | jq -r .items[].status.hard

To get the Current usage of resources in json format

kubectl get quota -ojson | jq -r .items[].status.used
-- nagendra547
Source: StackOverflow