Estoy tratando de usar/comprender xargs para imprimir varios detalles para algunos pods que tengo en ejecución en kubernetes en diferentes espacios de nombres. Por ejemplo, este comando da:
$ kubectl get pods -A | grep Error | awk '{print $2 " -n=" $1}' my-pod-kf8xch6y-qc6ms-k6ww2 -n=my-ns my-pod-kf8xlg64-g0ss7-mdv1x -n=my-ns my-pod-kldslg64-polf7-msdw3 -n=another-nsque es correcto/esperado.
Cuando agrego xargs al comando anterior, obtengo:
$ kubectl get pods -A | grep Error | awk '{print $2 " -n=" $1}' | xargs kubectl $1 get pod $0 -oyaml | grep phase Error from server (NotFound): pods "bash" not found phase: Failed phase: FailedQue es en realidad el resultado esperado pero no entiendo
Error from server (NotFound): pods "bash" not found ¿Por qué se pasa bash a xargs ?
Sugerimos evitar las complicaciones de xargs y combinar el máximo en un único script awk .
kubectl get pods -A | awk '/Error/{system("kubectl get pod "$2" -n="$1" -oyaml")}'|grep phaseO obtenga resultados aún más detallados:
kubectl get pods -A | awk '/Error/{system("kubectl get pod "$2" -n="$1" -oyaml")}'|grep -E "(^ name|^ phase)