Kubernetes изначально не предлагает возможности массового обновления. Для этого вам придется использовать другие инструменты CLI. При этом для изменения существующих ресурсов вы также можете использовать функцию kubectl patch
.
Сценарий, приведенный ниже, выглядит не очень красиво, но обновит все развертывания в пространстве имен.
kubectl get deployments -o name | sed -e 's/.*\///g' | xargs -I {} kubectl patch deployment {} --type=json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/imagePullPolicy", "value": "Always"}]'
Примечание: я использовал sed
, чтобы убрать тип ресурса из имени, поскольку kubectl не распознает операции, выполненные над ресурсами типа deployment.extensions
(и, возможно, другие).