Приимерный пример, чтобы в голове не держать
Cейчас структура такая:
infra/
base/
addons/
crds/
services/
clusters/
dev/
prd/
github/
roles/
role-dev-enviroment.yaml
role-prd-enviroment.yaml
infra-root.yaml
Если сравнивать с «правильным» GitOps-паттерном, то различия такие:
infra/
platform/ # общий слой (ингресс, cert-manager, dns, observability, secrets, automation)
networking/
security/
observability/
argocd/
automation/
clusters/ # конкретные окружения
dev/
kustomization.yaml
app-of-apps.yaml # маленький bootstrap, тянет platform
prd/
kustomization.yaml
app-of-apps.yaml
apps/ # приложения
chat-api/
base/
overlays/
dev/
prd/
- Папка roles/ фактически заменяет концепцию
platform/→ туда свалено всё, что связано с окружениями. - В base/ лежат сервисы/аддоны, но без чёткой привязки к тому, это часть платформы или приложения.
- В clusters/ кроме dev/prd у тебя ещё
github/— похоже, это эксперимент с настройками?
Правильнее, чтобы roles/ стало platform/.
- Там будут системные вещи, одинаковые для всех кластеров.
- В кластерах (
clusters/devиclusters/prd) остаётся только App-of-Apps, который ссылается наplatform/.