> ## 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.

# Anatomie d'une Application ArgoCD

> Gabarit YAML complet d'une Application ArgoCD et explication du chemin relatif surprenant des valueFiles.

Chaque application déployée sur le cluster est représentée par une ressource ArgoCD `Application`. Voici le gabarit complet utilisé, commenté ligne par ligne, à partir de l'exemple `biolab-prod-api`.

## YAML complet d'une Application

```yaml Application biolab-prod-api theme={null}
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: biolab-prod-api
  namespace: argocd
  annotations:
    # Active argocd-image-updater pour cette application
    argocd-image-updater.argoproj.io/image-list: "biolab-api=ghcr.io/kaeyros-analytics-org/biolab-api"
    # Stratégie de mise à jour : semver, newest-build, etc.
    argocd-image-updater.argoproj.io/biolab-api.update-strategy: semver
    # Méthode d'écriture du nouveau tag : dans les paramètres de l'Application
    argocd-image-updater.argoproj.io/write-back-method: argocd
spec:
  project: default
  source:
    repoURL: git@github.com:kaeyros-analytics-org/argo-production.git
    targetRevision: main
    path: charts/rollout-v2
    helm:
      valueFiles:
        # Chemin relatif DEPUIS le DOSSIER DU CHART, pas depuis la racine
        - ../../values/biolab/api-prod.yaml
  destination:
    server: https://kubernetes.default.svc
    namespace: biolab
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
```

## Le point qui surprend : valueFiles relatif au dossier du chart

Le chemin des `valueFiles` est résolu depuis le **dossier du chart Helm**, et non depuis la racine du dépôt.

| Situation | Chemin dans valueFiles | Explication |
| - | - | - |
| Chart à `charts/rollout-v2/` | `../../values/biolab/api-prod.yaml` | Remonte de 2 niveaux (charts/ → racine) puis descend dans values/ |
| Chart plus profond, ex. `charts/sous-dossier/rollout-v2/` | `../../../values/biolab/api-prod.yaml` | Remonte de 3 niveaux pour atteindre la racine |

> [!WARNING]
>
> C'est une erreur fréquente : écrire `values/biolab/api-prod.yaml` sans les `../` ne fonctionnera pas, car ArgoCD résoudra le chemin depuis `charts/rollout-v2/` et cherchera un dossier `charts/rollout-v2/values/` qui n'existe pas.

## Récapitulatif des champs clés

| Champ | Rôle |
| - | - |
| `metadata.annotations` | Configure argocd-image-updater (image-list, update-strategy, write-back-method) |
| `spec.project` | Projet ArgoCD (ici `default`) |
| `spec.source.repoURL` | URL du dépôt Git |
| `spec.source.targetRevision` | Branche ou tag à suivre (ici `main`) |
| `spec.source.path` | Chemin vers le chart Helm dans le dépôt |
| `spec.source.helm.valueFiles` | Fichiers de valeurs Helm, chemins relatifs au chart |
| `spec.destination.server` | API server Kubernetes cible |
| `spec.destination.namespace` | Namespace de déploiement |
| `spec.syncPolicy.automated.prune` | Supprime les ressources orphelines |
| `spec.syncPolicy.automated.selfHeal` | Réconcilie les modifications manuelles |


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