Перейти к содержанию

·Naasson Apps

Пробный прогон, который ничего не делает

Отдельный флаг показывает, что именно запишется в репозиторий, не записывая. Скучная функция, которая экономит больше времени, чем любая другая.

У команды установки есть режим пробного прогона: она показывает, что произошло бы, и не делает ничего.

Функция настолько обычная, что о ней не принято писать. Мы пишем, потому что в GitOps-контуре у неё другой смысл, чем в императивном инструменте.

Что показывает пробный прогон

Не «что будет в кластере», а что будет записано в репозиторий. Это разные вещи, и вторая — то, что действительно контролирует человек.

Кластер придёт к описанию сам, через цикл сверки. Спорить с ним бессмысленно. Единственная точка, где решение принимается, — момент записи в репозиторий, и именно её показывает пробный прогон.

Почему это не то же самое, что дифф

Дифф покажет разницу после записи. Пробный прогон показывает её до.

Разница практическая: чтобы посмотреть дифф, надо сначала записать, а значит либо коммитить, либо потом откатывать рабочее дерево. В проекте, где действует требование чистого дерева перед применением, «потом откатить» — это лишний шаг, на котором легко оставить мусор.

Что обычно ловится

Неверная папка проекта. Самая частая и самая скучная ошибка: команда запускается не из того каталога и пишет не в тот репозиторий. Пробный прогон показывает путь.

Неожиданные значения. Извлечённые значения Helm в каталоге — это не то же самое, что значения по умолчанию у автора чарта. Иногда разница существенна, и увидеть её лучше до.

Статус приложения. Если приложение — кандидат, установка потребует явного флага. Узнать это на пробном прогоне лучше, чем на попытке установки в спешке.

Соседняя функция: список

Отдельная команда показывает каталог со статусами. Вместе с пробным прогоном они закрывают весь путь принятия решения: что есть, в каком состоянии, что произойдёт при установке.

Ни одна из двух не меняет состояние. Это позволяет исследовать каталог в производственном проекте, не создавая риска.

Про режим ожидания

Третья настройка того же семейства, но противоположная по смыслу: ждать ли, пока приложение станет синхронизированным и здоровым.

При интерактивном запуске по умолчанию ждёт. В скриптах ожидание отключается, а таймаут задаётся явно.

Смысл — не в удобстве, а в честности отчёта. Команда, которая завершилась успехом, не дождавшись сверки, сообщила об успехе записи, а не об успехе развёртывания. В интерактивном режиме человек почти всегда имеет в виду второе, поэтому по умолчанию она ждёт.

Почему об этом стоит говорить

Потому что операции, которые ничего не меняют, определяют, насколько инструментом можно пользоваться в производственном контуре.

Инструмент, у которого нет безопасного способа посмотреть, что он сделает, используют осторожно и редко — а значит, знание о нём не накапливается, и в аварии им никто не воспользуется.