GitOps интеграция
Автоматическое создание Merge Request в GitLab с изменениями K8s ресурсов.
Обзор
Oopps.ai интегрируется с GitLab для применения оптимизаций Kubernetes через
workflow Merge Request. Вместо ручного редактирования YAML-файлов платформа создаёт
Merge Request с точными изменениями requests и limits
для ваших workloads.
Такой подход обеспечивает полный контроль: ваша команда проверяет каждое изменение в привычном code-review процессе, а CI/CD пайплайн применяет изменения автоматически после мержа.
Как это работает
Подключите GitLab репозиторий
Перейдите в Settings → GitOps → Add Repository.
Укажите URL репозитория и Personal Access Token с правами api.
Настройте GitOps targets
Укажите, какие файлы в репозитории соответствуют каким workloads.
Например, deploy/values-production.yaml → deployment my-app
в namespace production.
Примените рекомендацию через GitOps
При применении рекомендации выберите «GitOps» вместо «Apply». Платформа подготовит изменения для соответствующих файлов.
Merge Request создан автоматически
Платформа создаст Merge Request с изменёнными values-файлами или манифестами. MR содержит описание рекомендации и расчёт экономии.
Проверка и мерж
Ваша команда проверяет MR в привычном процессе code review и мержит его. CI/CD пайплайн применяет изменения к кластеру.
Стратегии редактирования
Oopps.ai поддерживает несколько стратегий редактирования файлов в зависимости от структуры вашего проекта:
| Стратегия | Описание | Пример файла |
|---|---|---|
helm_values |
Редактирование values.yaml для Helm charts |
values.yaml, values-production.yaml |
raw_manifest |
Прямое редактирование K8s YAML-манифестов | deployment.yaml, statefulset.yaml |
kustomize_patch |
Создание Kustomize patch-файлов | kustomization.yaml + patches/ |
terraform_hcl |
Редактирование Terraform HCL-файлов (опционально, только tfstate-сопоставление) | main.tf, variables.tf |
Terraform
Подключение Terraform-репозитория позволяет сопоставлять облачные ресурсы
с записями в terraform.tfstate и обнаруживать
«теневые» ресурсы (есть в облаке, но нет в Terraform).
Подключение Terraform-репозитория не обязательно. Модуль Cloud Resources анализирует все ресурсы по облачным сигналам (labels, стоимость, привязки) и работает без Terraform и без подключения Git-репозитория.
Terraform добавляет дополнительный уровень проверки: сопоставление с tfstate для обнаружения ресурсов, не управляемых через IaC.
При подключении Terraform-репозитория платформа считывает только
.tfstate-файлы. Глубокий парсинг .tf-конфигураций
(переменные, модули, интерполяция) не выполняется — для определения
«ресурс в Terraform или нет» достаточно state.
ArgoCD / Flux
Oopps.ai автоматически обнаруживает ArgoCD Applications и Flux Kustomizations в репозитории. Это позволяет точнее определить, какие файлы влияют на какие workloads, и корректно формировать изменения в Merge Request.
При обнаружении ArgoCD или Flux платформа автоматически сопоставляет
Application/Kustomization с целевыми файлами,
что упрощает настройку GitOps targets.
Presets
Для быстрой настройки Helm-based деплоев доступны 4 готовых паттерна:
- Standard values override — стандартная схема с одним
values.yamlв корне чарта. - Subchart values — values-файлы для subcharts с вложенной структурой ключей.
- Environment-specific — отдельные values-файлы для каждого окружения (
values-dev.yaml,values-staging.yaml,values-production.yaml). - Custom path — произвольный путь к values-файлу с ручным указанием YAML-path для resources.
GitOps работает только с GitLab. Поддержка GitHub планируется в будущих релизах.