💻 kubectl diff: обработка изменений в CI/CD
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 не гарантирует успешного обновления приложения. Фактическое состояние проверяется отдельно после применения изменений.
#заметкиИнженера
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 не гарантирует успешного обновления приложения. Фактическое состояние проверяется отдельно после применения изменений.
#заметкиИнженера