97 lines
6.5 KiB
Markdown
97 lines
6.5 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
|
|
```
|
|
|
|
PS : Pour l'instant je n'ai pas déposer ce chart sur un repo helm, peut-être un jour ;) |