# 🏗️ Tekton Cheat Sheet

Cette page regroupe les commandes les plus utiles pour administrer les pipelines **Tekton** utilisés sur la plateforme Numericare.

Tekton est utilisé principalement pour :

- Maintenance automatisée de la plateforme
- Build des images Docker
- Exécution des pipelines CI/CD Kubernetes

---

## 🎮 Commandes tkn

Toutes les commandes suivantes utilisent le client **tkn**.

### PipelineRuns

<table id="bkmrk-action-commande-list"><thead><tr><th>Action</th><th>Commande</th></tr></thead><tbody><tr><td>Liste des exécutions</td><td>```
tkn pr list -n cicd
```

</td></tr><tr><td>Afficher les logs du dernier run</td><td>```
tkn pr logs -L -n cicd
```

</td></tr><tr><td>Suivre les logs en temps réel</td><td>```
tkn pr logs -f -n cicd
```

</td></tr><tr><td>Détails d'un PipelineRun</td><td>```
tkn pr describe <pipeline-run> -n cicd
```

</td></tr><tr><td>Supprimer un PipelineRun</td><td>```
tkn pr delete <pipeline-run> -n cicd
```

</td></tr><tr><td>Conserver uniquement les 5 derniers runs</td><td>```
tkn pr delete --keep 5 -n cicd
```

</td></tr></tbody></table>

---

## 🚀 Lancer un Pipeline

Lancer manuellement le pipeline de maintenance.

```bash
tkn pipeline start maintenance \
  -n cicd \
  --showlog \
  --use-param-defaults \
  --workspace name=shared-workspace,claimName=cicd-pvc

```

---

## 📋 Pipelines de la plateforme

### maintenance

**Objectif**

- Mises à jour système
- Maintenance Linux
- Notification Telegram

**Fréquence**

Tous les dimanches à 23h00.

---

### docker-prune

**Objectif**

- Nettoyage Docker
- Suppression des images inutilisées
- Libération de l'espace disque

**Fréquence**

Tous les samedis à 23h30.

---

### build-code-server

**Objectif**

- Construction de l'image Code-Server
- Publication dans le registre Docker privé

**Tâches principales**

- git-clone
- kaniko
- docker push

---

## 🔎 Inspection

### Voir les pipelines disponibles

```bash
tkn pipeline list -n cicd

```

### Voir les tâches disponibles

```bash
tkn task list -n cicd

```

### Voir les PipelineRuns

```bash
tkn pr list -n cicd

```

---

## 🐞 Dépannage

### Pipeline bloqué en Running

Vérifier le PVC :

```bash
kubectl get pvc -n cicd

```

Le volume doit être dans l'état **Bound**.

---

### Erreur Git

Host key verification failed

Mettre à jour le fichier **known\_hosts**.

```bash
ssh-keyscan github.com

```

---

### OOMKilled

Augmenter les ressources mémoire de la Task concernée.

---

## 🧹 Nettoyage

Supprimer tous les anciens PipelineRuns.

```bash
tkn pr delete --keep 5 -n cicd

```

---

## 📁 Emplacement des Pipelines

```
infra/kubernetes/cicd/
├── pipelines/
├── tasks/
├── triggers/
├── cronjobs/
└── resources/

```

---

## 💡 Bonnes pratiques

- Ne jamais exécuter un pipeline directement en production sans validation.
- Consulter les logs avant de relancer un PipelineRun.
- Utiliser les CronJobs pour les tâches récurrentes.
- Nettoyer régulièrement les anciens PipelineRuns.
- Versionner les pipelines dans Git.
- Laisser ArgoCD synchroniser les ressources Tekton.

---

## 📚 Documentation associée

- GitOps
- ArgoCD
- Kubernetes
- Helm
- Ansible
- Docker Registry