Правильное аннотирование модулей на основе прикрепленных томов

У меня есть набор капсул, и в них есть тома. Я хочу пометить каждый модуль

backup.velero.io/backup-volumes=<volume1 of that pod>,<volume2 of that pod>

Я пробовал запустить такую ​​команду

    kubectl get pods -n dev -o name | \
xargs -I{} kubectl -n dev annotate {} backup.velero.io/backup-volumes=$(bash -c 'kubectl get {} -n dev -o json | jq -r ".spec.volumes[0].name | paste -sd, -"') --overwrite

Но в этом случае внутренний {}кажется, получает правильное значение. Есть ли более простой способ аннотировать модули имеющимися у них томами?

1 ответ

Я мог бы решить это так

kubectl get pods -n dev -o name | xargs -I{} sh -c 'kubectl -n dev annotate "$1" backup.velero.io/backup-volumes=$(kubectl get  "$1" -n dev -o json | jq -r .spec.volumes[].name | paste -sd, -) --overwrite' - {}
Другие вопросы по тегам