Как стать автором
Обновить

Маленькая утилита для контроля квот в Yandex Cloud

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.6K

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

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

Теги:
Хабы:
+18
Комментарии0

Публикации

Работа

DevOps инженер
32 вакансии

Ближайшие события