I want to filter the output of a kubectl
command running in --watch
mode to keep an eye on changes to a certain k8s annotation. I'm using the following command:
kubectl get pod my-pod --watch -o json | jq '.metadata.annotations["my-annotation"]'
Problem is - nothing is printed until I stop the command. I'd like the jq
to process the input and print it as the changes to my-pod
happen.
I tried using the --unbuffered
flag but it doesn't fix it.
So i've tested your command and it works perfectly. You are however missing a quote at the end of your command.
kubectl get pod nginx-5dfd5597bb-tp8h7 --watch -o json | jq '.metadata.name'
gives me
"nginx-5dfd5597bb-tp8h7"
if you can this command to work but not your own; it is probably related to the brackets and quotes or missing object keys.