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

# Vos premières commandes en lecture seule

> Commandes kubectl et helm à passer avant toute modification pour prendre en main le cluster et le dépôt argo-production.

Avant de réaliser la moindre modification sur la plateforme, familiarisez-vous avec le cluster en exécutant ces commandes en lecture seule. Elles vous permettent de comprendre l'échelle du système et de suivre un produit de bout en bout.

## Se repérer dans le cluster

Ces commandes vous donnent une vue d'ensemble de l'infrastructure mutualisée de Kaeyros Analytics. Passez-les calmement et notez les valeurs que vous observez.

```bash Nœuds theme={null}
kubectl get nodes -o wide      # les 4 machines du cluster
```

```bash Namespaces theme={null}
kubectl get ns                  # les ~100 namespaces
```

```bash Échelle theme={null}
kubectl get pods -A | wc -l    # ordre de grandeur des pods
```

```bash Applications ArgoCD theme={null}
kubectl -n argocd get applications  # les ~326 applications
```

> [!NOTE]
>
> Le cluster de production compte 4 nœuds situés à Helsinki. Chaque nœud héberge des charges de travail de plusieurs produits. Les namespaces isolent les environements de chaque application.

## Suivre un produit de bout en bout

Choisissez un produit (ex: `biolab`) et suivez-le à travers la stack. Cet exercice vous apprend à relier un namespace Kubernetes, ses pods, ses images et sa définition ArgoCD.

```bash Ressources du namespace theme={null}
kubectl -n biolab get pods,svc,ingress
```

```bash Images réelles theme={null}
kubectl -n biolab get pods -o jsonpath='{.items[*].spec.containers[*].image}{"\n"}'
```

```bash Application ArgoCD theme={null}
kubectl -n argocd get app biolab-prod-api -o yaml | head -40
```

**1. Lister les ressources du namespace**

La commande `get pods,svc,ingress` montre les pods actifs, les services exposés et les règles d'ingress Traefik qui routent le trafic vers le produit.

**2. Identifier les images en cours d'exécution**

La commande `jsonpath` extrait les noms d'image exacts. Vérifiez qu'elles proviennent bien du registre `ghcr.io/kaeyros-analytics-org/`.

**3. Consulter la définition ArgoCD**

L'application ArgoCD lie le produit à un fichier YAML dans le dépôt `argo-production`. Les 40 premières lignes montrent la source, la destination et l'état de synchronisation.

```mermaid theme={null}
flowchart LR
    A[GitHub<br/>argo-production] -->|ArgoCD lit| B[Application<br/>biolab-prod-api]
    B -->|déploie dans| C[Namespace<br/>biolab]
    C -->|pods tournent avec| D[Images ghcr.io]
    D -->|routées par| E[Ingress<br/>Traefik]
```

## Rendre un chart localement

Depuis le dépôt `argo-production` cloné, vous pouvez générer les manifestes Kubernetes qu'un chart produit sans rien déployer. C'est la meilleure façon de comprendre ce qu'un fichier de valeurs crée réellement.

```bash Helm template theme={null}
helm template test charts/rollout-v2 -f values/biolab/api-prod.yaml -n biolab | less
```

> [!TIP]
>
> Cette commande est votre meilleur outil d'apprentissage. Elle vous montre les manifestes Kubernetes réels produits par un fichier de valeurs. Utilisez-la systématiquement avant de modifier un chart ou un fichier de valeurs.

> **Pourquoi utiliser rollout-v2 plutôt que rollout ?**
>
> Le chart `rollout-v2` est la version recommandée pour les déploiements canary. L'ancien chart `rollout` est conservé pour compatibilité historique mais ne doit pas être utilisé pour les nouvelles applications.

> **Où trouver le fichier de valeurs correspondant ?**
>
> Les fichiers de valeurs sont organisés sous `values/<produit>/<composant>-<environement>.yaml`. Pour l'API de biolab en production, c'est `values/biolab/api-prod.yaml`.

## Explorer les journaux et les événements

Quand un pod ne démarre pas ou qu'un service répond mal, les journaux et les événements Kubernetes sont vos premières sources d'information.

```bash Journaux theme={null}
kubectl -n <ns> logs <pod> --tail=200
```

```bash Événements récents theme={null}
kubectl -n <ns> get events --sort-by=.lastTimestamp | tail -30
```

> [!WARNING]
>
> Les événements Kubernetes ont une durée de vie limitée (généralement 1 heure en cas de forte activité). Si vous suspectez un problème récent, consultez les événements rapidement avant qu'ils ne disparaissent.

## Ce que vous devriez pouvoir faire après

> **Trouver un Namespace**
>
> Identifier quel namespace héberge un service donné en croisant le nom de produit et l'environement.

> **Décoder un nom de pod**
>
> Relier un nom de pod à son déploiement d'origine : `/deploiement/nom-de-pod`.

> **Trouver le fichier de valeurs**
>
> Localiser dans `argo-production/values/` le fichier YAML correspondant à un composant déployé.

> **Suivre un déploiement ArgoCD**
>
> Consulter l'état d'une application dans ArgoCD et vérifier sa synchronisation avec Git.

> [!TIP]
>
> Prenez le temps de bien maîtriser ces commandes en lecture seule. Elles forment la base de toute intervention sur le cluster. Quand vous serez à l'aise avec elles, vous pourrez passer aux opérations de modification en toute confiance.


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