Правильное аннотирование модулей на основе прикрепленных томов
У меня есть набор капсул, и в них есть тома. Я хочу пометить каждый модуль
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' - {}