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 — опционален

Подключение 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 готовых паттерна:

Ограничение

GitOps работает только с GitLab. Поддержка GitHub планируется в будущих релизах.