Эксплуатация парка раннеров
Раннеры выполняют тесты по заданию узла администрирования: API- и нагрузочные
тесты, браузерные и мобильные тесты, проверки безопасности. Это руководство
описывает жизнь раннера со стороны оператора — подключение нового, поддержание
действующего токена, вывод из работы и обновление парка без потери задач.
Настройки самого раннера (режим pull, метки, одноразовые раннеры для CI)
описаны в разделах Эфемерные раннеры и
Метки раннеров и таргетинг.
Подключение нового раннера
-
Откройте Панель администратора > Интеграции и нажмите Добавить интеграцию.
-
Выберите тип (например, Test Runner), имя и пространства имён, которые
раннер может обслуживать. -
Скопируйте токен. Он показывается один раз вместе с готовыми командами
запуска для выбранной платформы. -
Запустите раннер с адресом узла администрирования и токеном:
docker run --rm \ -e MOCKARTY_ADMIN_URL=https://mockarty.example.com \ -e MOCKARTY_RUNNER_TOKEN=mki_your_integration_token \ "$MOCKARTY_RUNNER_IMAGE"
Раннер сам подключается к узлу администрирования; к раннеру ничего подключаться
не должно. Через несколько секунд он появится в разделе Парк раннеров на той
же странице — со статусом, ёмкостью, метками и версией релиза.
Один токен могут использовать несколько раннеров — каждый процесс
регистрируется отдельно. Заводите по подключению на группу раннеров, которой
управляете вместе (например, на команду или регион): токен подключения — это
то, что вы меняете и отзываете.
Поддержание действующего токена
Токен раннера действует 90 дней с выпуска или последней замены. Mockarty
предупреждает администраторов за 14, 7 и 1 день до истечения и ещё раз после
него — в колокольчике уведомлений и в журнале узла администрирования.
Предупреждение называет подключение.
Чтобы заменить токен, не прерывая ни одного раннера, создайте второе
подключение с теми же настройками, переведите раннеры на его токен по одному и
удалите старое подключение. Сменить токен у подключения быстрее, но старый
токен сразу перестаёт работать. Оба способа описаны в разделе
Замена ключей, токенов и сертификатов.
Вывод раннера из работы
В разделе Парк раннеров нажмите у раннера Вывести из ротации и укажите причину. Парк
перестаёт давать ему новые задачи; то, что он выполняет, завершается. Решение
сохраняется при перезапусках, пока вы не нажмёте Вернуть в ротацию, поэтому
раннер, выведенный на обслуживание, сам в работу не вернётся.
Корректная остановка процесса раннера (SIGTERM, docker stop, удаление пода в
Kubernetes) тоже завершает текущую задачу до выхода процесса; после этого парк
показывает раннер как недоступный (одноразовый раннер для CI из него исчезает).
Обновление парка
Сначала обновите узлы администрирования, затем раннеры. Раннер, отстающий от
узла администрирования на один релиз, продолжает работать; парк помечает его
обновите скоро. Раннер, отстающий на два релиза и больше, помечается
обновите раннер, а более новый, чем узел администрирования, — сначала
обновите узел администрирования: оба вне диапазона, совместимость с которым
поддерживает узел.
Чтобы обновить раннеры без потери задач:
- Выведите раннер из ротации.
- Когда у него не останется активных задач, остановите его.
- Запустите новую версию с тем же токеном и настройками.
- Нажмите Вернуть в ротацию.
В Kubernetes плавное обновление развёртывания раннеров делает шаги 2 и 3 за
вас: каждый старый под завершает свою задачу перед выходом.
Чтобы неподдерживаемые раннеры вообще не получали задач, задайте на узле
администрирования:
MOCKARTY_RUNNER_VERSION_POLICY=enforce
Тогда раннер вне поддерживаемого диапазона получает отказ при подключении, а в
его журнале названы обе версии и что нужно обновить. По умолчанию (warn) он
подключается и только помечается.