kubectl diff сравнивает текущую конфигурацию объекта Kubernetes с предполагаемым результатом применения манифеста.kubectl diff -f deployment.yamlКоманда использует server-side dry-run: учитываются серверная валидация, значения по умолчанию и совместимые admission-механизмы. Изменения в кластер не сохраняются.
💬 Результат выполнения команды отражается в коде завершения:
0 — различий нет;1 — изменения обнаружены;>1 — ошибка выполнения.При использовании
set -e код 1 может остановить пайплайн, хотя обнаружение изменений — штатный результат.💬 Обработка в CI/CD:
rc=0
kubectl diff -f deployment.yaml || rc=$?
case $rc in
0) echo "Изменений нет" ;;
1) echo "Обнаружены изменения" ;;
*) echo "Ошибка kubectl diff"; exit "$rc" ;;
esac
Скрипт продолжает выполнение при обнаружении различий и останавливает пайплайн при ошибке.
kubectl diff не гарантирует успешного обновления приложения. Фактическое состояние проверяется отдельно после применения изменений.#заметкиИнженера
