> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Le motif app-of-apps utilisé par ArgoCD

> base.yaml déclare l'Application racine production qui surveille apps/ et crée automatiquement toutes les autres Applications.

Le dépôt `argo-production` utilise le motif **app-of-apps** : un fichier `base.yaml` déclare une Application ArgoCD nommée `production`, qui surveille elle-même le dossier `apps/` de façon récursive. Chaque fichier YAML placé dans `apps/` devient alors une Application ArgoCD gérée automatiquement.

## Contenu de base.yaml

```yaml base.yaml theme={null}
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: production
  namespace: argocd
spec:
  project: default
  source:
    repoURL: git@github.com:kaeyros-analytics-org/argo-production.git
    targetRevision: main
    path: apps/
    directory:
      recurse: true
  destination:
    server: https://kubernetes.default.svc
    namespace: argocd
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
```

## Conséquences du motif app-of-apps

| Action dans `apps/` | Effet sur le cluster |
| - | - |
| Ajouter un fichier YAML | ArgoCD crée automatiquement une nouvelle Application |
| Supprimer un fichier YAML | ArgoCD détruit l'Application correspondante (`prune: true`) |
| Modifier un fichier YAML | ArgoCD met à jour l'Application et ses ressources |
| Sous-dossiers | Supportés : `recurse: true` permet une profondeur libre |

> [!WARNING]
>
> **base.yaml ne se gère pas lui-même**. Ce fichier doit être appliqué une seule fois manuellement sur le cluster :
>
> ```bash theme={null}
> kubectl apply -f base.yaml
> ```
>
> Une fois en place, l'Application `production` prend le relais et gère tout le contenu de `apps/`.

> [!TIP]
>
> La profondeur de dossiers dans `apps/` est libre. Vous pouvez organiser les Applications par projet, par équipe ou par environnement, ArgoCD les découvrira toutes grâce à `recurse: true`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.