Wpis z mikrobloga

pytanie do ludzi spod #linux
napisałem sobie jednolinijkowca do #kubernetes który zwraca w każdej nowej linijce dwa argumenty. jednym z nich jest namespace, a drugim nazwa joba.

kubectl get jobs -A -o=jsonpath='{range .items[?(@.status.failed>0)]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}')
Ma on za zadanie wyszukiwać w obrębie całego klastra joby, ze statusem fail. Wydaje mi się, że działa okej (testuje od wczoraj). Generalnie zwraca on taką zawartość :

namespaceA jobjeden
namespaceB jobdwa
namespaceC jobtrzy

Teraz potrzebuje dorobić do tego jednolinijkowca usuwanie tych jobów, więc na początku każdej linijki musi być
kubectl delete job -n i wtedy te dwa argumenty więc miałoby to wyglądać tak :

kubectl delete job -n namespaceA jobjeden
kubectl delete job -n namespaceB jobdwa
kubectl delete job -n namespaceC jobtrzy

Pewnie w bashu/pythonie bym to jakoś skrobnął, ale zależy mi na tym, żeby wszystko było jedną komendą bo będzie to argument do cron'a. Jakim sposobem można to zrobić w obrębie jednej komendy?? Przypuszczam, że xarg'sem da się to jakoś obrobić, ale pewien nie jestem. Ma ktoś jakieś mądre pomysły/rozwiązanie pod takie coś?
#devops #programowanie #informatyka #komputery
  • 10
@Kryspin013: minimalnie sobie go przerobiłem i dodałem -n jeszcze przy jsonpath i w ramach "testu" co wypluwa ta komenda dorobiłem echo przy xargsie i wypluwa tak :

kubectl get jobs -A -o=jsonpath='{range .items[?(@.status.failed>0)]}{"-n "}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}' | xargs -I JOB echo kubectl delete job JOB

kubectl delete job -n namespacea qwe
kubectl delete job -n namespaceb was
kubectl delete job -n namespacec sda
kubectl delete job -n namespaced xyz

więc usunąłem echo
@dict: @broothal: @doddy: upierałem się przy cronie, bo to cronjob kubernetesowy i chciałem korzystać z gotowego obrazu kubectl’a i tego onelinera wcisnąć w yamla do „commands” i miałbym z głowy. Ale jak tak myśle, to chyba zrobię jak mówicie, napisze taki skrypt, przebuduje obraz i wtedy będę tak czyścił ten syf.