Yandex Cloud использует квоты для мягкого контроля ресурсов. Квоты можно легко увеличить через специальную форму или техническую поддержку. Однако, очень часто бывает, что о необходимости увеличить квоты мы узнаем поздно, например, когда падает джоба с terraform. Это раздражает, а в некоторых случаях даже может сломать стейт и принести ненужные проблемы.

Не так давно YC добавили возможность получить значения квот через API. И сразу же зачесались руки, поскольку такие проблемы встречались несколько раз. Как результат получилась небольшая утилита ycquoter, которая вычитывает построенный план terraform, получает значения из API по используемым квотам и проверяет влезут ли новые ресурсы без ошибок.

Мы в sports.ru начали использовать эту утилиту в Gitlab pipeline, который раскатывает новые ресурсы в Облако. Теперь появилась дополнительная джоба, которая падает, если новые ресурсы не вписываются в заказанные квоты.

Для работы утилиты потребуется выполнить несколько действий:

  1. Создать сервисный аккаунта с правами quota-manager.viewer и дополнительно дать ему права на уровне cloud

  2. Создать статичный ключ и сохранить его в виде файла

  3. Добавить в джобу, которая будет запускать скрипт две переменные YCQOUTER_SA_FILE_PATH и YCQOUTER_CLOUD_UID, указав свои данные.

  4. Выводим план в файл terraform plan -out=plan.cache

  5. Сгенерировать план в виде json, командой terraform show -json plan.cache > fullplan.json

  6. Далее передать план в утилиту cat fullplan.json | ycquoter

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

Результат выполнения утилиты. Требуется поднять квоты для compute и k8s
Результат выполнения утилиты. Требуется поднять квоты для compute и k8s

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

На данный момент добавлены не все квоты и ресурсы, отслеживаются следующие:

  • compute

  • VPC

  • S3

  • ALB

  • NLB

  • K8s

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

Комментарии (0)