Quantcast
Channel: Active questions tagged jq - Stack Overflow
Viewing all articles
Browse latest Browse all 527

Problem with JQ selecting specific keys based on selecting

$
0
0

I have a problem with JQ where I can't get the correct fields. I have don't so many tutorials but can't seem to get this. I am trying to get only the "cpu" for the "mysql" container, but I keep getting both "sidecar, and mysql". Honestly I think it is my misunderstanding of JQ so please feel free to point out what I am misunderstanding.

I keep getting the following but should ONLY see "2100m":

null2100m

jq -r --arg _NAME "mysql-innodb-cluster-0" #Only get the container with this specific name

'.items[] #Work on all items

| select(.metadata.name == $_NAME ) #Work on the container that has this name

| .spec.containers #Get the specific key, which will be an object here.

select(.[].name=="sidecar" | not ) #Now that you have the Container Array only use the one that IS NOT named "sidecar"

| .[].resources.limits.cpu ' #you now have the MySQL container get ONLY it's "cpu" value.

Command I use:

jq -r --arg _NAME "mysql-innodb-cluster-0" '.items[] | select(.metadata.name == $_NAME ) | .spec.containers | select(.[].name=="sidecar" | not ) | .[].resources.limits.cpu ' --raw-output /tmp/test.json

test.json

{"apiVersion": "v1","items": [{"apiVersion": "v1","kind": "Pod","metadata": {"name": "mysql-innodb-cluster-0"  },"spec": {"containers": [      {"name": "sidecar","resources": {}      },      {"name": "mysql","resources": {"limits": {"cpu": "2100m","memory": "5G"          }        }      }    ]  }} ],"kind": "List"}

Viewing all articles
Browse latest Browse all 527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>