chart-helm-gitea/README.md

94 lines
6.4 KiB
Markdown

# Chart Helm pour Gitea
Ce dépôt contient un Chart Helm pour déployer [Gitea](https://gitea.io/), un service Git auto-hébergé simple et léger, sur un cluster Kubernetes.
## Description
Gitea offre une solution similaire à GitHub, GitLab ou Bitbucket, mais avec des besoins en ressources beaucoup plus faibles. Ce chart Helm facilite son déploiement et sa configuration dans un environnement Kubernetes.
**Note:** Il s'agit d'un chart communautaire / personnel et non du chart officiel maintenu par l'équipe Gitea (s'il en existe un que vous n'utilisez pas).
## Prérequis
* Cluster Kubernetes (v1.19+ recommandé)
* [Helm](https://helm.sh/) v3.0+ installé et configuré
* `kubectl` configuré pour interagir avec votre cluster
* Un provisionneur de volumes persistants (StorageClass) si vous souhaitez activer la persistance des données (fortement recommandé).
## Installation du Chart
1. **Ajouter le dépôt Helm (si vous en hébergez un) :**
Remplacez `<nom-du-repo>` par le nom que vous voulez donner à votre dépôt localement et `<url-du-repo>` par l'URL où votre chart est hébergé (par exemple, une page GitHub Pages).
```bash
helm repo add <nom-du-repo> <url-du-repo>
helm repo update
```
Si vous utilisez le chart directement depuis ce dépôt Git cloné, vous pouvez sauter cette étape.
2. **Installer le Chart :**
Remplacez `<nom-release>` par le nom que vous souhaitez donner à cette instance de Gitea (par exemple `my-gitea`).
* **Depuis le dépôt Git local :**
Naviguez jusqu'au répertoire où se trouve ce README.md.
```bash
# Installation simple dans le namespace 'default'
helm install <nom-release> .
# Installation dans un namespace spécifique (recommandé)
helm install <nom-release> . --namespace gitea --create-namespace
# Installation avec des valeurs personnalisées
helm install <nom-release> . -f mes-valeurs.yaml --namespace gitea --create-namespace
```
Après l'installation, Gitea devrait être accessible via le Service Kubernetes créé (ClusterIP, NodePort, ou LoadBalancer) ou via l'Ingress si configuré. Utilisez `kubectl get svc,ing -n <namespace>` pour vérifier.
## Configuration
Les paramètres de configuration principaux sont disponibles dans le fichier `values.yaml`. Vous pouvez les surcharger en utilisant l'option `-f` lors de l'installation ou `--set` pour des valeurs spécifiques.
Voici quelques paramètres clés :
| Paramètre | Description | Défaut |
| :------------------------------- | :-------------------------------------------------------------------------- |:---------------------------|
| `image.repository` | Image Docker Gitea à utiliser | `gitea/gitea` |
| `image.tag` | Tag de l'image Gitea | `<dernière_version>` |
| `service.type` | Type de service Kubernetes (ClusterIP, NodePort, LoadBalancer) | `ClusterIP` |
| `service.port` | Port HTTP du service | `3000` |
| `ingress.enabled` | Activer/désactiver la création d'une ressource Ingress | `true` |
| `ingress.className` | Classe Ingress à utiliser (si nécessaire, ex: `nginx`, `traefik`) | `""` |
| `ingress.hosts[0].host` | Nom d'hôte pour l'accès via Ingress (ex: `gitea.mondomaine.com`) | `chart-example.local` |
| `ingress.hosts[0].paths[0].path`| Chemin pour l'Ingress | `/` |
| `ingress.tls` | Configuration TLS pour l'Ingress (voir `values.yaml` pour la structure) | `[]` |
| `persistence.enabled` | Activer/désactiver la persistance des données Gitea | `true` |
| `persistence.storageClass` | StorageClass à utiliser pour le PVC (si `"-"`, utilise la classe par défaut) | `"-"` |
| `persistence.size` | Taille du volume persistant (ex: `10Gi`) | `10Gi` |
| `gitea.admin.username` | Nom d'utilisateur de l'administrateur initial Gitea | `gitea_admin` |
| `gitea.admin.password` | Mot de passe de l'administrateur initial Gitea ( **IMPORTANT:** à changer!) | `<mot_de_passe_aléatoire>` |
| `gitea.config` | Permet de surcharger des clés de configuration `app.ini` de Gitea | `{}` |
| `database.type` | Type de base de données (`sqlite3`, `postgres`, `mysql`) | `postgresql` |
| `database.host` | Hôte de la base de données (si externe) | `""` |
| `database.name` | Nom de la base de données (si externe) | `gitea` |
| `database.user` | Utilisateur de la base de données (si externe) | `gitea` |
| `database.password` | Mot de passe de la base de données (si externe, utiliser un secret !) | `""` |
| `database.existingSecret` | Nom d'un secret Kubernetes existant contenant les identifiants DB | `""` |
**Note sur la base de données :** Par défaut, le chart utilise PostgreSql avec les données stockées sur le volume persistant. Configurez les paramètres `database.*` en conséquence et assurez-vous que Gitea puisse y accéder depuis le cluster.
Consultez le fichier `values.yaml` pour voir toutes les options de configuration disponibles.
## Mise à jour
Pour mettre à jour une release existante avec une nouvelle version du chart ou de nouvelles valeurs :
```bash
# Mettre à jour le dépôt (si utilisé)
helm repo update
# Mettre à jour la release
helm upgrade <nom-release> <nom-du-repo>/gitea --namespace <namespace> -f nouvelles-valeurs.yaml
# Ou depuis le dépôt local:
# helm upgrade <nom-release> . --namespace <namespace> -f nouvelles-valeurs.yaml