Yandex Cloud использует квоты для мягкого контроля ресурсов. Квоты можно легко увеличить через специальную форму или техническую поддержку. Однако, очень часто бывает, что о необходимости увеличить квоты мы узнаем поздно, например, когда падает джоба с terraform. Это раздражает, а в некоторых случаях даже может сломать стейт и принести ненужные проблемы.
Не так давно YC добавили возможность получить значения квот через API. И сразу же зачесались руки, поскольку такие проблемы встречались несколько раз. Как результат получилась небольшая утилита ycquoter, которая вычитывает построенный план terraform, получает значения из API по используемым квотам и проверяет влезут ли новые ресурсы без ошибок.
Мы в sports.ru начали использовать эту утилиту в Gitlab pipeline, который раскатывает новые ресурсы в Облако. Теперь появилась дополнительная джоба, которая падает, если новые ресурсы не вписываются в заказанные квоты.
Для работы утилиты потребуется выполнить несколько действий:
-
Создать сервисный аккаунта с правами
quota-manager.viewerи дополнительно дать ему права на уровне cloud -
Создать статичный ключ и сохранить его в виде файла
-
Добавить в джобу, которая будет запускать скрипт две переменные YCQOUTER_SA_FILE_PATH и YCQOUTER_CLOUD_UID, указав свои данные.
-
Выводим план в файл
terraform plan -out=plan.cache -
Сгенерировать план в виде json, командой
terraform show -json plan.cache > fullplan.json -
Далее передать план в утилиту
cat fullplan.json | ycquoter -
Получить сводную таблицу с изменениями, примерно такого вида
Если добавить скрипт в пайплайн, то можно забыть про неожиданные ошибки и беготню с поднятием квот. Кроме того, можно превентивно увеличить квоты, которые подходят к лимиту.
На данный момент добавлены не все квоты и ресурсы, отслеживаются следующие:
-
compute
-
VPC
-
S3
-
ALB
-
NLB
-
K8s
По запросам список будет дополняться. Кроме того, в планах есть добавить подсветку квот которые близки к исчерпанию и подсчет стоимости новых ресурсов.
ссылка на оригинал статьи https://habr.com/ru/articles/915606/
Добавить комментарий