# 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 `` par le nom que vous voulez donner à votre dépôt localement et `` par l'URL où votre chart est hébergé (par exemple, une page GitHub Pages). ```bash helm repo add 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 `` 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 . # Installation dans un namespace spécifique (recommandé) helm install . --namespace gitea --create-namespace # Installation avec des valeurs personnalisées helm install . -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 ` 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 | `` | | `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!) | `` | | `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 /gitea --namespace -f nouvelles-valeurs.yaml # Ou depuis le dépôt local: helm upgrade . --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 ;)