When running kubectl get events, is there a way to filter by events without knowing the name of the pod?
I am trying to do this with Azure Pipeline's Kubectl task, which is limited to passing arguments to kubectl get events, but does not allow subshells and pipes, so grep and awk are not available.
I tried using kubectl get events --field-selector involvedObject.name=my-microservice-name, which works to an extent (i.e., for the deployment resource), but not for the pods.
Using kubectl get events --field-selector app.kubernetes.io/name=my-microservice-name returns no results, despite having that label configured as seen in kubectl describe pod <my-microservice-name>-pod-name.
Ideally if there is a way to use wildcards, such as kubectl get events --field-selector involvedObject.name=*my-microservice-name*, would be the best case scenario.
Any help is greatly appreciated.
Thanks!
I don't have azure environment, but I can show events on pods
master $ kubectl get events --field-selector involvedObject.kind=Pod
LAST SEEN TYPE REASON OBJECT MESSAGE
<unknown> Normal Scheduled pod/nginx Successfully assigned default/nginx to node01
5m13s Normal Pulling pod/nginx Pulling image "nginx"
5m8s Normal Pulled pod/nginx Successfully pulled image "nginx"
5m8s Normal Created pod/nginx Created container nginx
5m8s Normal Started pod/nginx Started container nginx
If you need target on particular pod, you should work with involvedObject.kind and involvedObject.name together.
master $ kubectl run redis --image=redis --generator=run-pod/v1
master $ kubectl run nginx --image=nginx --generator=run-pod/v1
master $ kubectl get events --field-selector involvedObject.kind=Pod,involvedObject.name=nginx
LAST SEEN TYPE REASON OBJECT MESSAGE
<unknown> Normal Scheduled pod/nginx Successfully assigned default/nginx to node01
16m Normal Pulling pod/nginx Pulling image "nginx"
16m Normal Pulled pod/nginx Successfully pulled image "nginx"
16m Normal Created pod/nginx Created container nginx
16m Normal Started pod/nginx Started container nginx
Why I knew involvedObject.kind works, because its json output shows the key is exist
"involvedObject": {
"apiVersion": "v1",
"fieldPath": "spec.containers{nginx}",
"kind": "Pod",
"name": "nginx",
"namespace": "default",
"resourceVersion": "604",
"uid": "7ebaaf99-aa9c-402b-9517-1628d99c1763"
},
The other way you need try is jsonpath, get the output as json format
kubectl get events -o jsonthen copy & paste the json to https://jsonpath.com/ and play around with jsonpath practices